專利名稱:監(jiān)控過程性能的方法和裝置的制作方法
背景技術(shù):
如今,諸如計算機和蜂窩電話的許多電子設備,都使用包括控制這些設備操作的指令的軟件。這些指令有時被稱為軟件程序或軟件過程,或者簡單地稱為軟件或過程。
在計算設備中運行的一些過程可能對計算設備的性能有不利影響。這種低效/低產(chǎn)的過程的一個例子就是對輸入/輸出(I/O)設備進行許多次訪問的過程。如果該過程在等待I/O設備響應時將時間花在空閑狀態(tài),則這可能對計算設備的性能有不利影響,因為該過程沒有在有效地使用該設備的硬件資源。
因此,仍需要有在電子設備中執(zhí)行軟件的更好方法。
在本說明書的結(jié)束部分特別指出并清楚聲明了被視為本發(fā)明的主題。然而,通過參考以下結(jié)合附圖的詳細描述,將最好地理解本發(fā)明的機構(gòu)和操作方法以及其目的、特征和優(yōu)點,所述附圖中圖1是根據(jù)本發(fā)明實施例的計算設備的框圖;和圖2是根據(jù)本發(fā)明實施例的監(jiān)控過程的方法的流程圖。
具體實施例方式
在以下的詳細描述中,陳述了大量具體細節(jié)以提供對本發(fā)明的透徹理解。然而,本領(lǐng)域技術(shù)人員應當理解到,沒有這些具體細節(jié)也可以實施本發(fā)明。在其他情況下,為了不混淆本發(fā)明,沒有詳細描述公知的方法、過程、部件和電路。
本發(fā)明的實施例可以包括用于執(zhí)行這里的操作的裝置。該設備可以為所需目的特別構(gòu)造,或者它可以包括通用計算設備,該通用計算設備由設備中存儲的程序選擇性地激活或者重新配置。這樣的程序可以存儲在存儲介質(zhì)上,例如但不限于包括軟盤、光盤、CD-ROM、磁光盤的任何類型的盤、只讀存儲器(ROM)、隨機訪問存儲器(RAM)、電可編程只讀存儲器(EPROM)、電可擦可編程只讀存儲器(EEPROM)、磁或光卡、或者適合于存儲電指令并能夠耦合到計算設備的系統(tǒng)總線上的任何其他介質(zhì)。
此處所說的方法并不固有地與任何特定計算設備或其他裝置相聯(lián)系。根據(jù)本發(fā)明教導的程序可以與各種通用系統(tǒng)一起使用,或者構(gòu)造更專用的裝置來執(zhí)行所需方法也可能是方便的。以下描述將出現(xiàn)用于多種這些系統(tǒng)的所需結(jié)構(gòu)。此外,本發(fā)明的實施例沒有參考任何具體的編程語言進行描述。應當了解到可以使用多種編程語言來實現(xiàn)此處描述的本發(fā)明的教導。
在以下描述和權(quán)利要求中,可以使用術(shù)語“耦合”和“連接”以及它們的派生詞。應當理解到并非想要將這些術(shù)語彼此成為同義詞。相反地,在具體實施例中,“連接”可以用來表示兩個或多個元件是相互直接的物理或電接觸。“耦合”可以指兩個或多個元件是直接的物理或電接觸。然而,“耦合”還可以指兩個或多個元件沒有彼此直接接觸,但仍然彼此配合或相互作用。
參考圖1,描述了根據(jù)本發(fā)明的實施例100。實施例100包括計算設備50。計算設備50可以在多種便攜式通信系統(tǒng)中使用,例如移動通信設備(例如蜂窩電話機)、雙向無線電通信系統(tǒng)、單向?qū)ず魴C、雙向?qū)ず魴C、個人通信系統(tǒng)(PCS)、便攜式計算機、個人數(shù)字助理(PDA)等。然而應當指出本發(fā)明的范圍和應用根本不限于這些示例。例如,可以使用本發(fā)明的其他應用包括非便攜式電子應用,例如在蜂窩基站或視頻裝備中。
在此示例中,計算設備50包括用于執(zhí)行軟件程序的處理單元10、存儲程序的存儲器20、連接到處理單元10的輸入/輸出(I/O)設備30、和連接到處理單元10的監(jiān)控單元40。此外,電源60連接到處理單元10并可以提供工作電壓或工作電勢源,例如標示為VDD的電壓。時鐘70連接到處理單元10并可以提供標示為CLK的時鐘信號。雖然存儲器20、I/O設備30、監(jiān)控單元40、電源60和時鐘70被示出為直接連接到處理單元10,但本發(fā)明的范圍在此方面不受限制。例如,存儲器20可以經(jīng)由存儲器控制器(未示出)耦合到處理單元10。
通過改變信號CLK的頻率可以改變處理單元10的運行速度。通過改變工作電壓VDD或改變信號CLK的頻率,可以改變處理單元10的功率消耗。例如,通過降低VDD或降低信號CLK的頻率,可以減少處理單元10的功率消耗。
處理單元10例如可以包括微處理器、數(shù)字信號處理器、微控制器等。處理單元10可以用來執(zhí)行控制計算設備50操作的軟件。此外,處理單元10可以用來執(zhí)行用于處理從I/O設備30接收的數(shù)據(jù)的程序,雖然本發(fā)明的范圍在此方面不受限制。
被處理單元10執(zhí)行的指令可以存儲在存儲器20中,雖然本發(fā)明的范圍在此方面不受限制。存儲器20可以是易失性的或非易失性的存儲器,雖然本發(fā)明的范圍在此方面不受限制。存儲器20例如可以包括包括軟盤、光盤、CD-ROM、磁光盤的盤、只讀存儲器(ROM)、諸如動態(tài)RAM(DRAM)或靜態(tài)RAM(SRAM)的隨機訪問存儲器(RAM)、電可編程只讀存儲器(EPROM)、電可擦可編程只讀存儲器(EEPROM)、磁或光卡、或者適合于存儲電指令的任何其他類型的介質(zhì)。
I/O設備30可以用來從用戶接收數(shù)據(jù)或者向用戶發(fā)送數(shù)據(jù)。I/O設備30例如可以包括鍵盤、顯示器、打印機,盡管本發(fā)明的范圍在此方面不受限制。
監(jiān)控單元40可以用來監(jiān)控在處理單元10中運行的軟件過程的性能。在本實施例中,監(jiān)控單元40可能適于當過程被執(zhí)行時來監(jiān)控在處理單元10中運行的軟件過程。具體地,監(jiān)控單元40可能適于確定該過程是否運行在預定的性能閾值水平處或之下。
處理單元10和監(jiān)控單元40可以在一個微處理器中實現(xiàn),而不是實現(xiàn)為單獨的設備。例如,處理單元10可以是處理器內(nèi)核而監(jiān)控單元40可以是微處理器中的性能監(jiān)控單元(PMU)?;蛘?,監(jiān)控單元40的功能可以使用軟件而不是硬件來實現(xiàn)。
現(xiàn)在參考圖2,提供了一種根據(jù)本發(fā)明實施例的方法。此實施例可以從執(zhí)行軟件過程開始,即框200。此方法可以使用圖1的設備50來實現(xiàn)。該軟件過程可以使用處理單元10來執(zhí)行,處理單元10可以采用操作系統(tǒng)來控制該軟件過程的執(zhí)行?;蛘?,處理單元10可以不使用操作系統(tǒng)而直接執(zhí)行該軟件過程。
過程可以在執(zhí)行時被監(jiān)控以確定該過程是否有效運行,即框210。舉例來說,監(jiān)控單元40(圖1)可以被用來監(jiān)控在處理單元10內(nèi)運行的過程??梢杂枚喾N方法來定義和確定軟件過程的效率或性能。例如,如果軟件過程沒有產(chǎn)生想要的或希望的效果,或者在比如時間、能量等因素方面很浪費,則該軟件過程可以被定義為低效的。作為例子,軟件過程的性能可以按照執(zhí)行該過程時計算設備50所消耗的功率來測量。在另一個例子中,如果過程在等待I/O設備或存儲器響應上花費了過多的時間,則這可以被定義為對計算設備資源的低效使用,因為時鐘周期被花在等待上而不是執(zhí)行另一個有效的指令。
通過監(jiān)控與性能相關(guān)的事件發(fā)生的次數(shù),可以確定軟件過程的性能。與性能相關(guān)的事件的例子包括與存儲器相關(guān)的處理器延遲、高速緩存丟失(例如指令和/或數(shù)據(jù))、對處理器的繁重使用(例如浮點運算)引起的延遲、等待I/O設備或存儲器響應時處理器處于空閑狀態(tài)的時間量等。應當指出,此與性能相關(guān)的事件的列表不是窮盡性的,并且本發(fā)明可以適于監(jiān)控可以表示關(guān)于例如時間或能量等因素的性能的任何事件或事件的組合。
舉例來說,處理單元10可以將監(jiān)控單元40編程成來尋找已定義的與性能相關(guān)的事件,并且隨后如果已定義事件發(fā)生則通知處理單元10。監(jiān)控單元40可以是被編程來監(jiān)視與存儲器相關(guān)的處理器延遲的PMU。此PMU可以包括用于對與存儲器相關(guān)的處理器延遲計數(shù)的計數(shù)器。在運行過程前,處理單元10可以將監(jiān)控單元40編程成,在與存儲器相關(guān)的處理器延遲被計數(shù)超過10,000次時發(fā)送中斷。在此示例中,預定的性能閾值水平或已定義事件是10,000次與存儲器相關(guān)的處理器延遲。如果已經(jīng)發(fā)生超過30,000個時鐘周期和10,000次與存儲器相關(guān)的處理器延遲,則處理單元10內(nèi)的操作系統(tǒng)可以從此信息確定該過程是“存儲器綁定(memorybound)”的。作為響應,操作系統(tǒng)可以終止或暫停該過程,并進入低功率模式的運行以減少計算設備的功率消耗,由此提高計算設備50的性能。在另一個實施例中,與性能相關(guān)的事件或者閾值水平可以被定義為I/O訪問的最大次數(shù)。監(jiān)控單元40可以通過對I/O設備30被當前執(zhí)行軟件過程所訪問的次數(shù)進行計數(shù),來檢測或識別是否已經(jīng)到達所述閾值水平。如果I/O訪問的次數(shù)大于預定的I/O訪問次數(shù),則監(jiān)控單元40可以通過向處理單元10發(fā)送中斷來通知處理單元10。此中斷可以用作通知處理單元10已定義事件已經(jīng)發(fā)生的警告。
監(jiān)控單元40可以被實現(xiàn)為非侵入性地監(jiān)控軟件過程。換句話說,監(jiān)控單元40可以適于當過程在執(zhí)行的同時監(jiān)控該軟件過程,而不是暫停過程的執(zhí)行。這被稱為監(jiān)控活動過程。活動過程是當前正在運行或執(zhí)行的過程。實現(xiàn)監(jiān)控活動過程的一種方法是監(jiān)控軟件過程的執(zhí)行結(jié)果,而不是直接監(jiān)控該過程。例如,I/O設備30被軟件訪問的次數(shù)可以直接從I/O設備30獲得,而不用通過直接監(jiān)控該軟件或處理單元10。在另一個實施例中,可以通過監(jiān)控處理單元10和I/O設備30之間的數(shù)據(jù)總線上的數(shù)據(jù)來獲得此信息,盡管本發(fā)明的范圍在此方面不受限制。
監(jiān)控單元40可以監(jiān)控在處理單元10中運行的軟件過程,以確定該過程是否有效運行,即框220。如果軟件過程沒有有效運行,則可以改變處理單元10的功率消耗,即框230。通過改變處理單元10的功率消耗,可以提高計算設備50的性能。應當理解到,因為處理單元10是計算設備50的一個部件,因此改變處理單元10的功率消耗也可以改變計算設備50的功率消耗,盡管本發(fā)明的范圍在此方面不受限制。
在圖1所示的示例中,監(jiān)控單元40對來自處理單元10的與性能相關(guān)的事件信息(標記為“事件”)進行評價。如果監(jiān)控單元40確定該軟件過程在預定的性能閾值水平之下運行,則監(jiān)控單元40可以通過向處理單元10發(fā)送中斷信號(標記為“中斷”),來搶占當前在處理單元10中運行的軟件過程。
如果處理單元10采用操作系統(tǒng),則該操作系統(tǒng)可以響應該中斷而終止或暫停該過程。操作系統(tǒng)可以執(zhí)行不同的過程以更有效地使用計算設備50,例如,通過增大或減小計算設備50的功率消耗。在另一個實施例中,響應于來自監(jiān)控單元40的中斷,可以減小信號CLK的頻率以降低計算設備50的功率消耗。在另一個實施例中,可以響應于來自監(jiān)控單元40的中斷而減小處理單元10的工作電壓(VDD)。此外,響應于來自監(jiān)控單元40的中斷,可以采用上述用于改變功率消耗的方法的任何組合。例如,響應于來自監(jiān)控單元40的中斷,可以將工作電壓(VDD)和信號CLK的頻率兩者都減小。應當注意,本發(fā)明的范圍不限于用于改變計算設備50的功率消耗的這些方法??梢皂憫谧R別出低效軟件過程而采用改變功率消耗的其他方法。
在便攜式電子應用中,可能希望減小功率消耗以提高電池壽命。因此,如果軟件過程對功率消耗有不利的影響,則該軟件過程可以被暫停和延遲,直到該便攜式通信設備連接到固定電源(例如插入到墻上電源)。這對節(jié)約與該過程有關(guān)的功率來說是所希望的,否則該過程將耗盡電池。在其他應用中,如果軟件過程沒有產(chǎn)生想要的結(jié)果,則可能希望增大功率消耗。例如,如果過程表現(xiàn)出差的性能,則可以提高計算設備的時鐘速率以在相對更短的時間量內(nèi)完成該過程。通過提高時鐘速率,可能增大計算系統(tǒng)的功率消耗。在執(zhí)行該低效過程后,計算設備可以進入低功率模式的運行。
雖然此處已經(jīng)圖示并描述了本發(fā)明的某些特征,但本領(lǐng)域技術(shù)人員現(xiàn)在將想到許多改進、替代、變化和等價方案。因此,應當理解到,所附權(quán)利要求意于覆蓋落入本發(fā)明真正精神內(nèi)的所有這些改進和變化方案。
權(quán)利要求
1.一種方法,包括如果活動過程在預定性能水平處或之下運行,則改變設備的功率消耗。
2.如權(quán)利要求1所述的方法,其中改變所述設備的功率消耗包括搶占所述活動過程。
3.如權(quán)利要求1所述的方法,其中改變所述設備的功率消耗包括暫停所述活動過程的運行;以及執(zhí)行第二過程。
4.如權(quán)利要求1所述的方法,其中改變所述設備的功率消耗包括降低所述設備的功率消耗。
5.如權(quán)利要求1所述的方法,其中改變所述設備的功率消耗包括增大所述設備的功率消耗。
6.如權(quán)利要求1所述的方法,其中改變所述設備的功率消耗包括降低所述設備的工作電壓。
7.如權(quán)利要求1所述的方法,其中改變所述設備的功率消耗包括降低所述設備的時鐘速度。
8.如權(quán)利要求1所述的方法,還包括監(jiān)控所述活動過程,以確定所述活動過程是否在所述預定性能水平之下運行。
9.如權(quán)利要求8所述的方法,其中監(jiān)控所述活動過程包括對已定義的與性能相關(guān)的事件發(fā)生的次數(shù)進行計數(shù)。
10.如權(quán)利要求9所述的方法,其中對已定義的與性能相關(guān)的事件發(fā)生的次數(shù)進行計數(shù)包括,對輸入/輸出(I/O)設備被所述活動過程訪問的次數(shù)進行計數(shù)。
11.如權(quán)利要求9所述的方法,其中所述監(jiān)控還包括,確定所述已定義的與性能相關(guān)的事件的發(fā)生次數(shù)是否大于預定的發(fā)生次數(shù)。
12.一種方法,包括在過程執(zhí)行的同時,監(jiān)控所述過程以確定是否已經(jīng)發(fā)生已定義事件,其中所述已定義事件指示所述過程的效率;以及在所述已定義事件發(fā)生后減小電壓勢。
13.如權(quán)利要求12所述的方法,其中所述監(jiān)控包括對與性能相關(guān)的事件的發(fā)生次數(shù)進行計數(shù)。
14.如權(quán)利要求13所述的方法,其中當與性能相關(guān)的事件的發(fā)生次數(shù)大于預定的最大發(fā)生次數(shù)時,則確定所述已定義事件發(fā)生。
15.如權(quán)利要求13所述的方法,其中所述與性能相關(guān)的事件是存儲器訪問。
16.如權(quán)利要求12所述的方法,還包括一發(fā)生所述已定義事件就產(chǎn)生中斷信號,其中在產(chǎn)生所述中斷信號后減小所述電壓勢。
17.一種包括存儲介質(zhì)的制品,所述存儲介質(zhì)上存儲有指令,當所述指令被計算平臺執(zhí)行時,如果活動過程在預定性能水平之下運行則所述指令導致改變設備的功率消耗。
18.如權(quán)利要求17所述的制品,其中改變功率消耗包括降低所述設備的工作電壓。
19.如權(quán)利要求17所述的制品,其中改變功率消耗包括降低所述設備的時鐘速度。
20.一種便攜式通信設備,包括靜態(tài)隨機訪問存儲器;耦合到所述靜態(tài)隨機訪問存儲器并適于執(zhí)行過程的處理單元;和監(jiān)控單元,所述監(jiān)控單元適于在所述過程執(zhí)行的同時監(jiān)控所述過程,并且一旦發(fā)生指示所述過程效率的已定義事件時適于通知所述處理單元,其中所述處理單元響應于來自所述監(jiān)控單元的通知,而減小所述便攜式通信設備的功率消耗。
21.如權(quán)利要求20所述的便攜式通信設備,其中所述處理單元是處理器內(nèi)核。
22.如權(quán)利要求20所述的便攜式通信設備,其中所述監(jiān)控單元是性能監(jiān)控單元。
23.如權(quán)利要求20所述的便攜式通信設備,其中所述靜態(tài)隨機訪問存儲器適于存儲所述過程。
24.如權(quán)利要求20所述的便攜式通信設備,還包括耦合到所述處理單元的輸入/輸出設備。
全文摘要
簡單地說,根據(jù)本發(fā)明的一個實施例,一種便攜式通信設備具有處理單元和監(jiān)控單元。所述監(jiān)控單元在軟件過程正在執(zhí)行的同時監(jiān)控該過程的性能。如果該過程低效地執(zhí)行,則該處理單元可以改變便攜式通信設備的功率消耗。
文檔編號G06F1/04GK1605055SQ02819240
公開日2005年4月6日 申請日期2002年9月27日 優(yōu)先權(quán)日2001年9月28日
發(fā)明者邁克爾·W·莫羅 申請人:英特爾公司