專利名稱:處理器利用率的測量裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及處理器利用率的測量技術(shù),具體地,涉及對處理器利用率或負(fù)載進(jìn)行實時測量的裝置及方法,其尤其適用于嵌入式系統(tǒng)處理器的利用率測量。
背景技術(shù):
由于嵌入式系統(tǒng)對硬件成本、功耗有非??量痰囊?,因此處理器的選型及其相關(guān)時鐘頻率、電源電壓的取值成為主要關(guān)注因素,而系統(tǒng)正常運行時處理器的利用率正是決定這些因素的主要參考依據(jù)。并且,一些嵌入式系統(tǒng)可以根據(jù)測量結(jié)果實時地對處理器時鐘頻率或操作電壓進(jìn)行調(diào)節(jié),就可以降低系統(tǒng)功耗。
處理器利用率是相對于一段統(tǒng)計時間而言的,即,這段統(tǒng)計時間內(nèi)處理器實際完成的有效工作與處理器所能完成的滿負(fù)荷工作的比值。因此,用什么指標(biāo)來衡量處理器的工作負(fù)荷,以及該指標(biāo)的測量方法,就成為處理器利用率測量的關(guān)鍵。
目前對處理器利用率的測量的已知方法主要有以下幾種一種方法是利用一個周期性定時器作為對處理器負(fù)荷進(jìn)行采樣的觸發(fā)源,每次定時器到期時由操作系統(tǒng)確定處理器是在執(zhí)行有效代碼還是空閑代碼,并進(jìn)行相應(yīng)的計數(shù)。這樣,在一段統(tǒng)計時間內(nèi),定時器到期次數(shù)作為處理器的滿負(fù)荷指標(biāo),該值減去采樣到的執(zhí)行空閑代碼次數(shù)作為處理器在該時段的有效負(fù)荷指標(biāo),它們的比值就是處理器在這段統(tǒng)計時間的利用率。可見,這種方法首先需要操作系統(tǒng)支持,并且測量的準(zhǔn)確度依賴于定時器的周期,周期越小,精度越高,但對系統(tǒng)性能影響也就越大。
另一種方法是定義一個空閑進(jìn)程,該進(jìn)程對一個全局變量進(jìn)行累加。在某個時段讓操作系統(tǒng)只運行這個空閑進(jìn)程,把得到的全局變量的累加值作為處理器滿負(fù)荷指標(biāo),在后面某個同時長的統(tǒng)計時段內(nèi),全局變量的差值作為處理器有效負(fù)荷指標(biāo),它們的比值作為該時段的處理器利用率。在這種方法中,由于在測量處理器滿負(fù)荷指標(biāo)時,操作系統(tǒng)因素未被考慮并且也無法被準(zhǔn)確測量,因此難免存在誤差,從而會得出比實際情況偏小的處理器利用率。
為了克服上述不利因素,提出了一些不依賴于操作系統(tǒng)而是主要依靠硬件電路來進(jìn)行處理器利用率測量的方法,這些方法要求處理器必須遵循預(yù)定義的性能狀態(tài),比如高級配置和電源接口規(guī)范(Advanced Configuration and Power Interface,簡稱為ACPI),當(dāng)處理器處于空閑狀態(tài)時,送往處理器的時鐘信號就被切斷,相應(yīng)地,處理器核心計數(shù)器(也稱“滴答”計數(shù)器)也停止計數(shù)。這樣,把統(tǒng)計時段的時間作為處理器滿負(fù)荷指標(biāo),把處理器核心計數(shù)器在統(tǒng)計時段的差值乘以計數(shù)時鐘周期,得到的時間作為處理器有效負(fù)荷指標(biāo),兩者的比值就是處理器在該段統(tǒng)計時間的利用率。上述方法的前提是處理器必須遵守某些規(guī)范,這對于嵌入式處理器來說是非常少見的。
因此,通過以上描述可以看出,目前所采用的技術(shù)存在對操作系統(tǒng)的依賴性問題,以及存在測量誤差大、影響系統(tǒng)性能等缺陷,基于這樣的背景,如果能夠提供一種獨立于操作系統(tǒng)、通用的處理器利用率測量裝置,對于處理器利用率測量的獨立性和準(zhǔn)確性以及系統(tǒng)的維護(hù)而言無疑是理想的。
發(fā)明內(nèi)容
考慮到相關(guān)技術(shù)中存在的上述問題而提出本發(fā)明。為此,本發(fā)明旨在提供一種嵌入式系統(tǒng)處理器利用率的測量技術(shù),首先,提供了一種獨立于操作系統(tǒng)的通用處理器利用率測量裝置,之后,在此基礎(chǔ)上提出了一種處理器利用率測量方法,其可以用于單統(tǒng)計時段或多統(tǒng)計時段的測量。
本發(fā)明的技術(shù)方案如下。
一種嵌入式系統(tǒng)處理器利用率的測量裝置,包括系統(tǒng)總線,與總線監(jiān)視器、計數(shù)器、以及處理器相連;總線監(jiān)視器,用于監(jiān)視系統(tǒng)總線,當(dāng)識別出預(yù)期總線特征時,產(chǎn)生計數(shù)器觸發(fā)信號;定時器,通過設(shè)置其定時周期來設(shè)置利用率統(tǒng)計時段的時長;中斷控制器,用于在定時器的定時周期到達(dá)時,產(chǎn)生中斷觸發(fā)信號。
其中,處理器在執(zhí)行預(yù)定測量程序時在系統(tǒng)總線上產(chǎn)生預(yù)期總線特征。而計數(shù)器對預(yù)期總線特征的計數(shù)值用作處理器的工作負(fù)荷指標(biāo)。
一種處理器利用率的測量方法,包括步驟一,預(yù)先設(shè)置處理器滿負(fù)荷指標(biāo)的測量程序;步驟二,在系統(tǒng)引導(dǎo)階段,運行測量程序,在預(yù)定時間內(nèi)對處理器的滿負(fù)荷指標(biāo)進(jìn)行測量,并讀取計數(shù)器的值作為滿負(fù)荷指標(biāo)的原始數(shù)據(jù);步驟三,在系統(tǒng)運行過程中,在測量利用率的統(tǒng)計時段,根據(jù)原始數(shù)據(jù)獲取對應(yīng)于統(tǒng)計時段的當(dāng)前滿負(fù)荷指標(biāo),并根據(jù)當(dāng)前滿負(fù)荷指標(biāo)和計數(shù)器的值獲取處理器的有效負(fù)荷指標(biāo);步驟四,根據(jù)有效負(fù)荷指標(biāo)和當(dāng)前滿負(fù)荷指標(biāo)計算統(tǒng)計時段內(nèi)處理器的利用率。
測量程序為一段處理器可執(zhí)行代碼,當(dāng)執(zhí)行測量程序時,產(chǎn)生預(yù)期總線特征,系統(tǒng)在監(jiān)測到預(yù)期總線特征時觸發(fā)計數(shù)器開始計數(shù)。
其中,在步驟三中,在對一個統(tǒng)計時段進(jìn)行測量的情況下,將定時器設(shè)置為單次定時模式,定時周期為統(tǒng)計時段的時長。
在步驟三中,在對多個統(tǒng)計時段進(jìn)行測量的情況下,將定時器設(shè)置為周期定時模式,定時器在到期后自動重新啟動。這樣,在步驟三中,對于每個統(tǒng)計時段,將其對應(yīng)的有效負(fù)荷指標(biāo)存放在數(shù)據(jù)緩沖區(qū)中。
另外,在步驟三中,有效負(fù)荷指標(biāo)等于當(dāng)前滿負(fù)荷指標(biāo)與計數(shù)器的值的差。在步驟四中,通過計算程序來計算處理器的利用率。
通過本發(fā)明的處理器利用率計算裝置和方法,相比于相關(guān)技術(shù),可以提高測量精度,降低由于實時測量而對系統(tǒng)性能造成的負(fù)面影響,另外,本發(fā)明具有不依賴于操作系統(tǒng)的特性,不對處理器作特殊要求的特點,這使得本發(fā)明可以普遍地應(yīng)用于嵌入式系統(tǒng)。
此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中圖1是根據(jù)本發(fā)明實施例的處理器利用率的測量裝置的功能結(jié)構(gòu)示意圖;圖2是圖1所示的測量裝置的實例1的功能結(jié)構(gòu)示意圖;圖3是圖1所示的測量裝置的實例2的功能結(jié)構(gòu)示意圖;圖4是根據(jù)本發(fā)明方法實施例的處理器利用率的測量方法的操作體系結(jié)構(gòu)圖;
圖5是根據(jù)本發(fā)明方法實施例的處理器利用率的測量方法的流程圖;圖6示出了根據(jù)本發(fā)明方法實施例的方法中系統(tǒng)引導(dǎo)階段測量程序的執(zhí)行情況;圖7示出了根據(jù)本發(fā)明方法實施例的方法中系統(tǒng)正常運行后測量程序的執(zhí)行情況;圖8是根據(jù)本發(fā)明方法實施例的方法中環(huán)形數(shù)據(jù)緩沖區(qū)及各時段有效指標(biāo)存儲的示意圖;以及圖9a-圖9d示出了本發(fā)明技術(shù)方案的主要處理流程;其中,圖9a示出了系統(tǒng)引導(dǎo)階段處理器滿負(fù)荷指標(biāo)測量的處理流程,圖9b示出了系統(tǒng)引導(dǎo)階段處理器滿負(fù)荷指標(biāo)測量的中斷處理流程;圖9c示出了系統(tǒng)正常運行后處理器滿負(fù)荷指標(biāo)測量的處理流程;圖9d示出了系統(tǒng)正常運行后處理器滿負(fù)荷指標(biāo)測量的中斷處理流程。
具體實施例方式
以下將參照附圖來詳細(xì)描述本發(fā)明實施例,其中,給出以下實施例以提供對本發(fā)明的全面和透徹理解,而不是對本發(fā)明進(jìn)行任何限制。其中,對于一些眾所周知的結(jié)構(gòu)、器件、電路以及接口等沒有在細(xì)節(jié)上加以描述,因為對本領(lǐng)域普通技術(shù)人員來說,在沒有這些細(xì)節(jié)描述的情況下也可以很好的實踐本發(fā)明。
裝置實施例在本實施例中,提供了一種處理器利用率的測量裝置。
首先定義一段處理器可執(zhí)行的代碼作為處理器負(fù)荷指標(biāo)測量程序(以下簡稱測量程序),處理器執(zhí)行該測量程序時會在系統(tǒng)總線(或者稱為處理器總線)上產(chǎn)生預(yù)期總線特征,總線監(jiān)視器在監(jiān)測到預(yù)期總線特征時觸發(fā)計數(shù)器開始計數(shù),其中,系統(tǒng)總線可以是不限于一根的控制總線或數(shù)據(jù)總線或地址總線的狀態(tài)組合,將對該總線特征的計數(shù)值作為處理器工作負(fù)荷指標(biāo)。
如圖1所示,該處理器利用率的測量裝置包括處理器101、總線監(jiān)視器102、計數(shù)器103、定時器104、中斷控制器105以及處理器系統(tǒng)總線106。
具體地,系統(tǒng)總線106與總線監(jiān)視器102、計數(shù)器103、以及處理器101相連??偩€監(jiān)視器102一直監(jiān)視系統(tǒng)總線106,當(dāng)識別出預(yù)期總線特征時,產(chǎn)生計數(shù)器觸發(fā)信號107,引起計數(shù)器103開始計數(shù)。通過設(shè)置定時器104的定時周期來設(shè)置利用率統(tǒng)計時段的時長。中斷控制器105在定時器104的定時周期到達(dá)時產(chǎn)生中斷觸發(fā)信號108,通過定時器中斷服務(wù)程序(Interrupt Service Routine,簡稱為ISR)對計數(shù)器的值進(jìn)行處理并保存,在需要時由處理器利用率計算程序(以下簡稱計算程序)使用,進(jìn)而計算出該統(tǒng)計時段的處理器利用率。
其中,處理器101在執(zhí)行預(yù)定測量程序時在系統(tǒng)總線106上產(chǎn)生預(yù)期總線特征。而計數(shù)器103對預(yù)期總線特征的計數(shù)值用作處理器101的工作負(fù)荷指標(biāo)。
實例1圖2示出了作為嵌入式系統(tǒng)核心部分的處理器及其周邊設(shè)備。由于目前嵌入式處理器基本上都是片上系統(tǒng)(System On Chip,簡稱為SOC),它集成了中央處理器(CPU)以及許多功能部件,這些部件就包括定時器、中斷控制器、計數(shù)器等等。如圖2所示,處理器201包含了定時器和中斷控制器,因此只需一片可編程邏輯器件(Programmable Logic Device,簡稱為PLD)202來實現(xiàn)總線監(jiān)視器和計數(shù)器,此外還包括處理器系統(tǒng)總線106以及用來存放程序或執(zhí)行程序的只讀存儲器(ROM)203、隨機(jī)存儲器(RAM)204??刂菩盘?05由定時器產(chǎn)生,用來中止在引導(dǎo)階段對處理器進(jìn)行滿負(fù)荷指標(biāo)的測量,實際上是PLD根據(jù)該信號對測量標(biāo)志進(jìn)行修改,測量程序通過判斷測量標(biāo)志為假而停止執(zhí)行。
實例2本發(fā)明裝置實施例的另外一個實例如圖3所示。處理器301集成了計數(shù)器、定時器和中斷控制器,只需具有預(yù)期特征的一根系統(tǒng)總線作為計數(shù)器的觸發(fā)信號302。與前實例1相似,還包括處理器總線106以及用來存放程序或執(zhí)行程序的只讀存儲器(ROM)203、隨機(jī)存儲器(RAM)204。
本實例與實例2的不同之處在于一方面是硬件上不需要可編程邏輯器件(PLD),另一方面軟件上有所不同,特別是如何中止在系統(tǒng)引導(dǎo)階段對處理器滿負(fù)荷指標(biāo)進(jìn)行的測量。本實例采用了以下方法用定時器超時并產(chǎn)生中斷,并在定時器ISR中發(fā)出終止該測量指示。具體地說,在系統(tǒng)引導(dǎo)階段的恰當(dāng)時機(jī)進(jìn)行處理器滿負(fù)荷指標(biāo)測量,測量前先設(shè)置定時器的周期,比如1秒,然后啟動定時器并開始測量。1秒后定時器到期并產(chǎn)生中斷,在中斷服務(wù)程序中修改測量標(biāo)志為假,測量程序判斷測量標(biāo)志為假后中止執(zhí)行,并將獲取的測試數(shù)據(jù)保存?zhèn)溆?。本實例的其它方面?xì)節(jié)與實例1基本相同。
方法實施例在本實施例中,提供了一種處理器利用率的測量方法,優(yōu)選地,使用上述的測量裝置,當(dāng)然,也可以使用其它合適的裝置來實施本發(fā)明。
圖4是根據(jù)本發(fā)明方法實施例的測量方法的操作體系結(jié)構(gòu)圖。測量程序402、計算程序403以及系統(tǒng)多個應(yīng)用程序401與操作系統(tǒng)404交互,并通過硬件設(shè)備驅(qū)動程序406對硬件進(jìn)行操作,定時器中斷服務(wù)程序405與計數(shù)器交互并完成對數(shù)據(jù)緩沖區(qū)408以及全局變量407的處理。最終通過計算程序403利用經(jīng)過處理的數(shù)據(jù)407計算得出處理器利用率。
如圖5所示,根據(jù)本發(fā)明方法實施例的處理器利用率的測量方法包括以下處理步驟S502(步驟一),預(yù)先設(shè)置處理器滿負(fù)荷指標(biāo)的測量程序,例如,可以定義一段處理器可執(zhí)行代碼作為測量程序;步驟S504(步驟二),在系統(tǒng)引導(dǎo)階段,運行測量程序,在預(yù)定時間內(nèi)對處理器的滿負(fù)荷指標(biāo)進(jìn)行測量,并讀取計數(shù)器的值作為滿負(fù)荷指標(biāo)的原始數(shù)據(jù);步驟S506(步驟三),在系統(tǒng)正常運行后,在測量利用率的統(tǒng)計時段,根據(jù)原始數(shù)據(jù)獲取對應(yīng)于統(tǒng)計時段的當(dāng)前滿負(fù)荷指標(biāo),并根據(jù)當(dāng)前滿負(fù)荷指標(biāo)和計數(shù)器的值獲取處理器的有效負(fù)荷指標(biāo)(等于當(dāng)前滿負(fù)荷指標(biāo)與計數(shù)器的值的差);步驟S508(步驟四),通過計算程序,根據(jù)有效負(fù)荷指標(biāo)和當(dāng)前滿負(fù)荷指標(biāo)計算統(tǒng)計時段內(nèi)處理器的利用率。
在步驟S506中,在對一個統(tǒng)計時段進(jìn)行測量的情況下,將定時器設(shè)置為單次定時模式,定時周期為統(tǒng)計時段的時長;在對多個統(tǒng)計時段進(jìn)行測量的情況下,將定時器設(shè)置為周期定時模式,定時器在到期后自動重新啟動,這樣,在步驟S506中,對于每個統(tǒng)計時段,需要將其對應(yīng)的有效負(fù)荷指標(biāo)存放在數(shù)據(jù)緩沖區(qū)中。
以上概括描述了本發(fā)明的各個處理步驟,以下將結(jié)合具體附圖詳細(xì)描述上述處理中的各個細(xì)節(jié)。
首先,定義一個函數(shù),作為系統(tǒng)引導(dǎo)階段進(jìn)行處理器滿負(fù)荷指標(biāo)測量的執(zhí)行代碼,也把它作為系統(tǒng)正常運行后處理器空閑時由操作系統(tǒng)調(diào)度執(zhí)行的空閑進(jìn)程。該函數(shù)的核心部分是測量程序,并根據(jù)測量標(biāo)志進(jìn)行循環(huán)執(zhí)行,執(zhí)行測量程序會產(chǎn)生預(yù)期總線特征,供總線監(jiān)視器識別并觸發(fā)計數(shù)器計數(shù)(步驟S502)。
設(shè)定一個標(biāo)準(zhǔn)的處理器利用率最小統(tǒng)計時段T,該最小時段也稱為統(tǒng)計周期,比如100毫秒,處理器負(fù)荷指標(biāo)是相對于該時段而言的。在系統(tǒng)引導(dǎo)階段進(jìn)行處理器滿負(fù)荷指標(biāo)測量時,為了獲得更精確的測量結(jié)果,測量時段的時長應(yīng)多倍于T,比如進(jìn)行1秒鐘的測量后得到計數(shù)器的值,那么處理器滿負(fù)荷指標(biāo)Cm(即,上述的當(dāng)前滿負(fù)荷指標(biāo))由這個計數(shù)器的值除以10得到(步驟S504)。
系統(tǒng)正常運行后,當(dāng)測量某個統(tǒng)計周期處理器利用率時,處理器有效負(fù)荷指標(biāo)由Cm減去該統(tǒng)計時段計數(shù)器的值Ci得到(Cm-Ci)(步驟S506)。
處理器利用率計算程序依據(jù)下面的公式(公式一)計算出處理器的利用率U(步驟S508)U=(Cm-Ci)/Cm×100%(步驟S508)
——公式(1)上面公式只是針對于一個統(tǒng)計時段T,當(dāng)需要進(jìn)行多時段n*T統(tǒng)計時,采用以下計算公式(公式2)計算出處理器的利用率UUn=(Cm×n-(Ci1+Ci2+...+Cin))/(Cm×n)×100%——公式(2)具體地,圖6示出了在系統(tǒng)引導(dǎo)階段對處理器滿負(fù)荷指標(biāo)測量時,測量程序602被處理器執(zhí)行的情況。如圖6所示,在引導(dǎo)代碼601被執(zhí)行的某個恰當(dāng)時機(jī),測量程序被執(zhí)行,并測量出處理器滿負(fù)荷指標(biāo)。圖7示出了在系統(tǒng)正常運行時,應(yīng)用程序701及測量程序被處理器執(zhí)行的情況。如圖7所示,在不同統(tǒng)計時段測量出處理器有效負(fù)荷指標(biāo)。
系統(tǒng)正常運行時,當(dāng)需要對當(dāng)前時刻將來某個時段的處理器利用率進(jìn)行測量時,應(yīng)配置定時器的周期等于該時段的時長,將計數(shù)器清零并啟動定時器。當(dāng)定時器到期產(chǎn)生中斷時,定時器ISR讀取計數(shù)器的值,并由計算程序按上述公式(1)進(jìn)行計算,得到該時段的處理器利用率。
在很多情況下,常常需要獲得當(dāng)前時刻過去的某個或多個時段的處理器利用率,這就需要一直對處理器有效負(fù)荷指標(biāo)進(jìn)行測量,并將每個統(tǒng)計周期T的測量數(shù)據(jù)保存在一個數(shù)據(jù)緩沖區(qū)中,供計算程序或定時器ISR使用,并隨著測量的進(jìn)行以先進(jìn)先出方式不斷刷新。如圖8所示,本方法采用一個環(huán)形緩沖區(qū)801,緩沖區(qū)的大小決定了最長統(tǒng)計時段的時長,對于統(tǒng)計周期T是100毫秒,如果想得到過去10分鐘的處理器利用率,則數(shù)據(jù)緩沖區(qū)需要存放6000個數(shù)據(jù)。在這個最長時段內(nèi),可以得到多個更小時段的處理器利用率,比如可以得到過去1秒、10秒、1分鐘、5分鐘、10分鐘等多個時段的處理器利用率U1s、U10s、U1m、U5m和U10m。
為了保持對處理器有效負(fù)荷指標(biāo)一直進(jìn)行測量,系統(tǒng)正常運行后應(yīng)配置定時器為周期定時模式,即,定時器到期后會自動重新啟動,定時周期就設(shè)為統(tǒng)計周期T,即100毫秒,然后將數(shù)據(jù)緩沖區(qū)初始化并啟動定時器。每次定時器到期產(chǎn)生中斷,由定時器ISR讀取計數(shù)器的值,并按時段計算處理器有效負(fù)荷指標(biāo),顯而易見的是,只需對各時段最新與最舊兩個指標(biāo)進(jìn)行差值計算,然后把計數(shù)器的值存放到數(shù)據(jù)緩沖區(qū)的當(dāng)前位置,之后當(dāng)前位置按圖示數(shù)據(jù)填充方向步進(jìn),最后將計數(shù)器清零,退出ISR??梢姡龜?shù)據(jù)緩沖區(qū)外,還需幾個全局變量或一個數(shù)據(jù)結(jié)構(gòu)802來存放各時段的處理器有效負(fù)荷指標(biāo),這樣在需要時計算程序直接用這幾個變量的值就能快速計算出各時段處理器利用率。
接下來,參照圖9a-9d并結(jié)合以上的裝置實施例及方法實施例,進(jìn)一步對本發(fā)明的方案進(jìn)行描述,其中,圖9a-9d示出了本發(fā)明技術(shù)方案的主要處理流程。
圖9a示出了系統(tǒng)引導(dǎo)階段處理器滿負(fù)荷指標(biāo)測量的處理流程(對應(yīng)于實例1);圖9a與圖9b結(jié)合示出了系統(tǒng)引導(dǎo)階段處理器滿負(fù)荷指標(biāo)測量的處理流程(對應(yīng)于實例2)。圖9c示出了系統(tǒng)正常運行時處理器有效負(fù)荷指標(biāo)測量的處理流程(對應(yīng)于實例1),用于統(tǒng)計當(dāng)前時刻將來的某個時段的處理器利用率。圖9c與圖9d結(jié)合示出了系統(tǒng)正常運行時處理器有效負(fù)荷指標(biāo)測量的處理流程,用于統(tǒng)計當(dāng)前時刻過去的多個時段的處理器利用率。
如圖9a所示,開始測量時,首先將定時器配置為單次定時模式,周期為1秒。然后根據(jù)測量標(biāo)志循環(huán)執(zhí)行測量程序,產(chǎn)生總線預(yù)期特征,計數(shù)器對該特征進(jìn)行計數(shù)。當(dāng)定時器到期時,發(fā)送控制信號給PLD,使得測量標(biāo)志被修改,中止本次測量。隨后獲取計數(shù)器的值,導(dǎo)出處理器滿負(fù)荷指標(biāo),并保存?zhèn)溆谩?br>
圖9b示出了實例2在系統(tǒng)引導(dǎo)階段通過ISR來修改測量標(biāo)志的處理流程。
圖9c示出了對處理器利用率一直測量的處理流程,測量之前配置定時器為周期定時模式,定時周期設(shè)為T,即100毫秒,然后啟動定時器,并相當(dāng)于在測量標(biāo)志永遠(yuǎn)為真的條件下循環(huán)執(zhí)行測量程序。
圖9d表明,在每次定時器到期并產(chǎn)生中斷后,定時器ISR獲取計數(shù)器值,然后分別計算出各時段處理器有效負(fù)荷指標(biāo),并保存計數(shù)器值,在對計數(shù)器清零后退出ISR,等待下一次處理。
本發(fā)明所涉及的裝置在嵌入式系統(tǒng)都是很常見的,不需要額外的硬件投資。并且,本發(fā)明提供的多時段測量方法,可以把處理器利用率通過圖形化人機(jī)界面進(jìn)行展示,極大地方便對嵌入式系統(tǒng)尤其是處理器性能進(jìn)行評估,并作為系統(tǒng)設(shè)計、處理器選型、時鐘頻率確定等過程的重要參考依據(jù)。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種處理器利用率的測量裝置,其特征在于,包括系統(tǒng)總線,與總線監(jiān)視器、計數(shù)器、以及處理器相連;所述總線監(jiān)視器,用于監(jiān)視所述系統(tǒng)總線,當(dāng)識別出預(yù)期總線特征時,產(chǎn)生計數(shù)器觸發(fā)信號;所述計數(shù)器,在所述總線監(jiān)視器產(chǎn)生的所述計數(shù)器觸發(fā)信號的觸發(fā)下,開始計數(shù);定時器,通過設(shè)置其定時周期來設(shè)置利用率統(tǒng)計時段的時長;以及中斷控制器,用于在所述定時器的所述定時周期到達(dá)時,產(chǎn)生中斷觸發(fā)信號。
2.根據(jù)權(quán)利要求1所述的處理器利用率的測量裝置,其特征在于,所述處理器在執(zhí)行預(yù)定測量程序時在所述系統(tǒng)總線上產(chǎn)生所述預(yù)期總線特征。
3.根據(jù)權(quán)利要求2所述的嵌入式系統(tǒng)處理器利用率的測量裝置,其特征在于,所述計數(shù)器對所述預(yù)期總線特征的計數(shù)值用作所述處理器的工作負(fù)荷指標(biāo)。
4.一種處理器利用率的測量方法,其特征在于,包括步驟一,預(yù)先設(shè)置處理器滿負(fù)荷指標(biāo)的測量程序;步驟二,在系統(tǒng)引導(dǎo)階段,運行所述測量程序,在預(yù)定時間內(nèi)對處理器的滿負(fù)荷指標(biāo)進(jìn)行測量,并讀取計數(shù)器的值作為所述滿負(fù)荷指標(biāo)的原始數(shù)據(jù);步驟三,在系統(tǒng)運行過程中,在測量利用率的統(tǒng)計時段,根據(jù)所述原始數(shù)據(jù)獲取對應(yīng)于所述統(tǒng)計時段的當(dāng)前滿負(fù)荷指標(biāo),并根據(jù)所述當(dāng)前滿負(fù)荷指標(biāo)和所述計數(shù)器的值獲取所述處理器的有效負(fù)荷指標(biāo);以及步驟四,根據(jù)所述有效負(fù)荷指標(biāo)和所述當(dāng)前滿負(fù)荷指標(biāo)計算所述統(tǒng)計時段內(nèi)所述處理器的利用率。
5.根據(jù)權(quán)利要求4所述的處理器利用率的測量方法,其特征在于,在所述步驟三中,在對一個統(tǒng)計時段進(jìn)行測量的情況下,將定時器設(shè)置為單次定時模式,定時周期為所述統(tǒng)計時段的時長。
6.根據(jù)權(quán)利要求4所述的處理器利用率的測量方法,其特征在于,在所述步驟三中,在對多個統(tǒng)計時段進(jìn)行測量的情況下,將定時器設(shè)置為周期定時模式,所述定時器在到期后自動重新啟動。
7.根據(jù)權(quán)利要求6所述的處理器利用率的測量方法,其特征在于,在所述步驟三中,對于每個統(tǒng)計時段,將其對應(yīng)的有效負(fù)荷指標(biāo)存放在數(shù)據(jù)緩沖區(qū)中。
8.根據(jù)權(quán)利要求4至7中任一項所述的處理器利用率的測量方法,其特征在于,在所述步驟四中,通過計算程序來計算所述處理器的利用率。
9.根據(jù)權(quán)利要求4至7中任一項所述的處理器利用率的測量方法,其特征在于,在所述步驟三中,所述有效負(fù)荷指標(biāo)等于所述當(dāng)前滿負(fù)荷指標(biāo)與所述計數(shù)器的值的差。
10.根據(jù)權(quán)利要求4至7中任一項所述的處理器利用率的測量方法,其特征在于,所述測量程序為一段處理器可執(zhí)行代碼,當(dāng)執(zhí)行所述測量程序時,產(chǎn)生預(yù)期總線特征,系統(tǒng)在監(jiān)測到所述預(yù)期總線特征時觸發(fā)所述計數(shù)器開始計數(shù)。
全文摘要
本發(fā)明公開了一種嵌入式系統(tǒng)處理器利用率的測量裝置,包括系統(tǒng)總線,與總線監(jiān)視器、計數(shù)器、以及處理器相連;總線監(jiān)視器,用于監(jiān)視系統(tǒng)總線,當(dāng)識別出預(yù)期總線特征時,產(chǎn)生計數(shù)器觸發(fā)信號;定時器,通過設(shè)置其定時周期來設(shè)置利用率統(tǒng)計時段的時長;中斷控制器,用于在定時器的定時周期到達(dá)時,產(chǎn)生中斷觸發(fā)信號。在此基礎(chǔ)上本發(fā)明還公開了一種嵌入式系統(tǒng)處理器利用率的測量方法。通過本發(fā)明的方案,可以克服現(xiàn)有技術(shù)中存在的對操作系統(tǒng)的依賴性問題及其存在的測量誤差大、影響系統(tǒng)性能等問題。
文檔編號G06F11/34GK101067797SQ20071010619
公開日2007年11月7日 申請日期2007年6月25日 優(yōu)先權(quán)日2007年6月25日
發(fā)明者劉志強 申請人:中興通訊股份有限公司