專(zhuān)利名稱(chēng):關(guān)注功率的自適應(yīng)輪詢(xún)方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及計(jì)算機(jī)系統(tǒng),特別涉及設(shè)備請(qǐng)求的處理,更確切地說(shuō),涉及通過(guò)既能節(jié)省功耗又能保持性能和響應(yīng)的自適應(yīng)輪詢(xún)技術(shù)處理這些請(qǐng)求的方法和系統(tǒng)。
背景技術(shù):
圖1表示通用客戶(hù)機(jī)-服務(wù)器計(jì)算網(wǎng)絡(luò)2。網(wǎng)絡(luò)2具有多臺(tái)服務(wù)器4、6、8、9,其中直接互連上述服務(wù)器或通過(guò)其他服務(wù)器間接互連上述服務(wù)器。每臺(tái)服務(wù)器實(shí)質(zhì)上是一個(gè)獨(dú)立的計(jì)算機(jī)系統(tǒng)(具有一個(gè)或多個(gè)處理器,存儲(chǔ)設(shè)備和通信設(shè)備),但是適合于某個(gè)主要目的(為某個(gè)主要目的編程),亦即,為工作站客戶(hù)機(jī)10的各用戶(hù)提供信息。客戶(hù)機(jī)10也可以為一個(gè)獨(dú)立的計(jì)算機(jī)系統(tǒng)(如個(gè)人計(jì)算機(jī),即PC),或適合于與網(wǎng)絡(luò)2一起使用的“啞”系統(tǒng)(如網(wǎng)絡(luò)計(jì)算機(jī),即NC)。正如本文使用的那樣,“PC”通常指適合各用戶(hù)使用的多用途計(jì)算機(jī),而不考慮其制造商、硬件平臺(tái)、操作系統(tǒng)等。一臺(tái)物理計(jì)算機(jī)可同時(shí)作為服務(wù)器和客戶(hù)機(jī),盡管此種實(shí)現(xiàn)很少發(fā)生。
服務(wù)器提供的信息或者為在指定客戶(hù)機(jī)10上運(yùn)行的程序,或者為其他程序使用的數(shù)據(jù)(如文件)。用戶(hù)能夠以實(shí)時(shí)方式進(jìn)行通信,或者通過(guò)延時(shí)文件傳送進(jìn)行通信,例如,與同一服務(wù)器相連的用戶(hù)無(wú)需網(wǎng)絡(luò)2就能彼此進(jìn)行通信,而位于不同服務(wù)器(如服務(wù)器4和6)的用戶(hù)經(jīng)由網(wǎng)絡(luò)2也能彼此進(jìn)行通信。實(shí)際上網(wǎng)絡(luò)可以為局部的(如LAN),或者進(jìn)一步連接到其他系統(tǒng)(未示出),如服務(wù)器8和9。網(wǎng)絡(luò)2的結(jié)構(gòu)一般也適用于因特網(wǎng)。
傳統(tǒng)上,通用系統(tǒng)由其性能來(lái)表征。一般說(shuō)來(lái),根據(jù)給定系統(tǒng)處理特定操作的速率來(lái)評(píng)價(jià)該系統(tǒng)。這樣的實(shí)例包括每秒處理的事務(wù)、每秒處理的Web請(qǐng)求等。近來(lái),由于商業(yè)、國(guó)家標(biāo)準(zhǔn)和環(huán)境方面的因素,功耗變得越來(lái)越重要。據(jù)估計(jì),計(jì)算機(jī)系統(tǒng)消耗的功率占北美地區(qū)發(fā)電量的十分之一。因此,越來(lái)越需要不會(huì)損害其性能的高效計(jì)算機(jī)系統(tǒng)。
通用計(jì)算機(jī)系統(tǒng)(客戶(hù)機(jī)、服務(wù)器或啞設(shè)備)包括一個(gè)處理器、主存儲(chǔ)器和許多設(shè)備。通常,眾多總線根據(jù)眾所周知的協(xié)議連接上述設(shè)備。此類(lèi)協(xié)議的實(shí)例如外圍部件互連(PCI)。在典型通用計(jì)算機(jī)系統(tǒng)中,處理器以中斷方式處理所有外圍設(shè)備請(qǐng)求,其中,中斷是由設(shè)備發(fā)起的。發(fā)生中斷時(shí),處理器中出現(xiàn)上下文切換,從而將處理器狀態(tài)保存到主存儲(chǔ)器中,然后初始化一個(gè)新?tīng)顟B(tài)以處理該設(shè)備請(qǐng)求。由于不同存儲(chǔ)器高速緩存上的狀態(tài)轉(zhuǎn)移和破壞效果,以及由此產(chǎn)生的存儲(chǔ)器引用地址的混亂,所以每個(gè)上下文切換均會(huì)招致額外的系統(tǒng)開(kāi)銷(xiāo)。特別地,由于處理器速度和存儲(chǔ)器存取時(shí)間之間的差距越來(lái)越大,現(xiàn)代處理器對(duì)此類(lèi)系統(tǒng)開(kāi)銷(xiāo)非常敏感。因此,系統(tǒng)設(shè)備產(chǎn)生高速中斷對(duì)性能是非常有害的。
輪詢(xún)是另一種中斷方法,處理器(CPU)利用輪詢(xún)處理設(shè)備請(qǐng)求。例如,CPU輪詢(xún)網(wǎng)絡(luò)設(shè)備,以確定是否有需要處理的數(shù)據(jù)包。包括基于軟件的交換機(jī)、防火墻、代理服務(wù)器、甚至第一層Web服務(wù)器在內(nèi)的網(wǎng)絡(luò)裝置,越來(lái)越傾向于使用輪詢(xún)輸入/輸出(I/O)來(lái)主動(dòng)聚合中斷,并且通過(guò)降低與中斷處理期間的上下文切換有關(guān)的等待時(shí)間,全面提高系統(tǒng)性能。當(dāng)諸如網(wǎng)絡(luò)通信量之類(lèi)的設(shè)備活動(dòng)速度較低時(shí),由于毫無(wú)必要地連續(xù)檢查設(shè)備狀態(tài),所以輪詢(xún)處理的效率較差。另外,由于輪詢(xún)處理經(jīng)常出現(xiàn),不論是否有需要處理的操作,總是阻止系統(tǒng)進(jìn)入“睡眠”狀態(tài),因此對(duì)功耗是有害的,其中在睡眠狀態(tài)中,通過(guò)發(fā)布適當(dāng)指令來(lái)節(jié)省CPU消耗的功率。因此,輪詢(xún)處理使最基本的功率節(jié)省策略無(wú)效。
考慮到上述問(wèn)題,需要發(fā)明一種管理設(shè)備服務(wù)請(qǐng)求的改進(jìn)方法,該方法能夠全面提高系統(tǒng)性能和響應(yīng),同時(shí)節(jié)省電力并支持復(fù)雜電源管理機(jī)制。
發(fā)明內(nèi)容
因此,本發(fā)明的目的在于提供一種處理計(jì)算機(jī)系統(tǒng)中的設(shè)備服務(wù)請(qǐng)求的改進(jìn)方法。
本發(fā)明的另一目的在于提供使用輪詢(xún)技術(shù)以便更有效地處理高性能設(shè)備服務(wù)請(qǐng)求的方法。
本發(fā)明的又一目的在于提供一種經(jīng)過(guò)改進(jìn)的數(shù)據(jù)處理系統(tǒng),該系統(tǒng)能夠在不違反系統(tǒng)響應(yīng)約束的條件下自適應(yīng)輪詢(xún)?cè)O(shè)備,以降低功耗。
利用使輪詢(xún)周期適合于未決服務(wù)請(qǐng)求的方法可以實(shí)現(xiàn)上述目的,該方法通常包括以下步驟針對(duì)未決服務(wù)請(qǐng)求輪詢(xún)系統(tǒng)設(shè)備,記錄是否有未決服務(wù)請(qǐng)求,根據(jù)積累數(shù)據(jù)確定系統(tǒng)設(shè)備是否足夠空閑。根據(jù)上述判斷,系統(tǒng)選擇進(jìn)入省電模式,直至收到設(shè)備活動(dòng)信號(hào),或經(jīng)過(guò)某個(gè)可調(diào)時(shí)限。這樣,該系統(tǒng)能夠在保持系統(tǒng)性能和響應(yīng)的情況下節(jié)省電力??梢宰赃m應(yīng)設(shè)置空閑時(shí)間的最小百分比,例如,設(shè)置為最小等待時(shí)間限制和定時(shí)器中斷的周期。然后響應(yīng)中斷,如定時(shí)器中斷或設(shè)備中斷,重新恢復(fù)處于省電模式的處理器的操作。
通過(guò)閱讀以下詳細(xì)說(shuō)明書(shū),將更加了解本發(fā)明的上述目的和其他目的,其特征以及其優(yōu)點(diǎn)。
通過(guò)參照附圖,熟練技術(shù)人員將更容易理解本發(fā)明,其目的、特征和優(yōu)點(diǎn)。
圖1表示包括互連服務(wù)器和工作站客戶(hù)機(jī)在內(nèi)的常規(guī)計(jì)算機(jī)網(wǎng)絡(luò);圖2是根據(jù)本發(fā)明的一實(shí)施方式的數(shù)據(jù)處理系統(tǒng)的框圖,對(duì)該系統(tǒng)進(jìn)行編程以執(zhí)行網(wǎng)絡(luò)通信功能;圖3為狀態(tài)圖,表示根據(jù)本發(fā)明的一實(shí)施方式與圖2所示的數(shù)據(jù)處理系統(tǒng)一起使用的狀態(tài)轉(zhuǎn)移;圖4表示本發(fā)明之輪詢(xún)機(jī)制的一實(shí)施方式的邏輯流程;圖5為狀態(tài)圖,表示傳統(tǒng)中斷驅(qū)動(dòng)系統(tǒng)中的狀態(tài)轉(zhuǎn)移;以及圖6為狀態(tài)圖,表示傳統(tǒng)輪詢(xún)I/O系統(tǒng)中的狀態(tài)轉(zhuǎn)移。
在不同附圖中使用的相同參考符號(hào)表示相似或相同部件。
具體實(shí)施例方式
現(xiàn)在參照附圖,特別參照?qǐng)D2,該圖表示根據(jù)本發(fā)明一實(shí)施方式編程為執(zhí)行網(wǎng)絡(luò)通信功能的數(shù)據(jù)處理系統(tǒng)的實(shí)施方式11??梢詫⒈景l(fā)明應(yīng)用于許多不同類(lèi)型的網(wǎng)絡(luò)裝置,如路由器、防火墻或服務(wù)器,并且系統(tǒng)11的以下說(shuō)明是通用的,目的是覆蓋所有網(wǎng)絡(luò)設(shè)備。根據(jù)特定應(yīng)用,系統(tǒng)11的附加細(xì)節(jié)對(duì)熟練技術(shù)人員是顯而易見(jiàn)的。
系統(tǒng)11包括一個(gè)中央處理器(CPU)12,用于執(zhí)行程序指令;固件或只讀存儲(chǔ)器(ROM)14,用于存儲(chǔ)系統(tǒng)的基本輸入/輸出邏輯;以及動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)16,用于臨時(shí)存儲(chǔ)CPU12使用的程序指令和操作數(shù)據(jù)。將CPU12、ROM14和DRAM16全部連接到系統(tǒng)總線18。存儲(chǔ)器層次結(jié)構(gòu)中可能有附加結(jié)構(gòu)(未示出),如板上(L1)高速緩存和二級(jí)(L2)高速緩存。
通過(guò)使用PCI主橋22,將CPU12、ROM14和DRAM16連接到外圍部件互連(PCI)局部總線20。PCI主橋22提供低等待時(shí)間的通路,處理器12經(jīng)由該通路訪問(wèn)映射到總線存儲(chǔ)器或輸入/輸出(I/O)地址空間內(nèi)的PCI設(shè)備。同時(shí),PCI主橋22提供高帶寬通路,供PCI設(shè)備訪問(wèn)DRAM16。網(wǎng)絡(luò)接口適配器24和小型計(jì)算機(jī)系統(tǒng)接口(SCSI)適配器26與PCI局部總線20相連。利用網(wǎng)絡(luò)接口適配器24將數(shù)據(jù)處理系統(tǒng)11連接到外部計(jì)算機(jī)網(wǎng)絡(luò)34,如局域網(wǎng)(LAN)或因特網(wǎng)。利用SCSI適配器26控制高速SCSI盤(pán)驅(qū)動(dòng)器36。盤(pán)驅(qū)動(dòng)器36采用永久狀態(tài)存儲(chǔ)程序指令和數(shù)據(jù),包括以下說(shuō)明的體現(xiàn)本發(fā)明的程序。系統(tǒng)11可以使用多個(gè)網(wǎng)絡(luò)接口適配器或存儲(chǔ)設(shè)備。正如適配器30表示的那樣,也可根據(jù)應(yīng)用將其他設(shè)備連接到PCI總線20。例如,適配器30提供對(duì)系統(tǒng)11進(jìn)行編程的串行接口。
盡管所示實(shí)施方式在盤(pán)驅(qū)動(dòng)器36(存儲(chǔ)介質(zhì))上提供體現(xiàn)本發(fā)明的程序指令,但是熟練技術(shù)人員可以理解,也可以將本發(fā)明表現(xiàn)為采用其他計(jì)算機(jī)可讀介質(zhì)(包括傳輸介質(zhì))的程序產(chǎn)品。在一種實(shí)施方式中,通過(guò)使用諸如C語(yǔ)言之類(lèi)的編程語(yǔ)言,利用程序代碼實(shí)現(xiàn)本發(fā)明的計(jì)算步驟。
在所示實(shí)施方式中,數(shù)據(jù)處理系統(tǒng)11執(zhí)行用于網(wǎng)絡(luò)通信的程序指令,特別地,使用全新技術(shù)輪詢(xún)I/O設(shè)備(如SCSI適配器26或網(wǎng)絡(luò)接口24),以便以省電方式管理中斷。因此,程序指令包括常規(guī)網(wǎng)絡(luò)通信功能的各個(gè)方面,并且通過(guò)參考本公開(kāi)熟練技術(shù)人員容易了解其細(xì)節(jié)。
本發(fā)明提供設(shè)備的自適應(yīng)輪詢(xún)機(jī)制,并且在不違反系統(tǒng)響應(yīng)限制的情況下,在待用期間選擇性地使CPU12處于省電狀態(tài),以提高功效。在所示實(shí)施方式中,使用四種信息作為輪詢(xún)基礎(chǔ)設(shè)施的一部分,以實(shí)現(xiàn)上述機(jī)制輪詢(xún)函數(shù)調(diào)用是否產(chǎn)生作業(yè);輪詢(xún)?cè)O(shè)備不具備未決服務(wù)請(qǐng)求的次數(shù);到下一個(gè)定時(shí)器中斷時(shí)的剩余時(shí)間;以及CPU定時(shí)器時(shí)限。提供函數(shù)的目的是啟用或禁用特定設(shè)備(如網(wǎng)絡(luò)接口24或SCSI適配器26)的中斷。自適應(yīng)算法規(guī)定用于修改CPU定時(shí)器時(shí)限以及閾值的機(jī)制,其中閾值確定何時(shí)系統(tǒng)足夠空閑以進(jìn)入省電模式。
圖5表示與現(xiàn)有數(shù)據(jù)處理系統(tǒng)關(guān)聯(lián)的各種狀態(tài),其中該系統(tǒng)為中斷驅(qū)動(dòng)系統(tǒng)。當(dāng)該系統(tǒng)運(yùn)行應(yīng)用程序或執(zhí)行操作系統(tǒng)的任務(wù)時(shí),認(rèn)為該系統(tǒng)為運(yùn)行狀態(tài)101。按照正常間隔(定義為時(shí)限),發(fā)送定時(shí)器中斷信號(hào)。系統(tǒng)執(zhí)行上下文切換,然后進(jìn)入定時(shí)器中斷服務(wù)例程(ISR)102。定時(shí)器ISR102負(fù)責(zé)執(zhí)行周期函數(shù),并在多任務(wù)操作系統(tǒng)上執(zhí)行時(shí)序安排。在定時(shí)器ISR102完成其任務(wù)后,恢復(fù)系統(tǒng)上下文,并將控制返回到運(yùn)行狀態(tài)101。
當(dāng)諸如網(wǎng)絡(luò)接口或磁盤(pán)之類(lèi)的系統(tǒng)設(shè)備發(fā)現(xiàn)其活動(dòng)需要引起系統(tǒng)注意時(shí),觸發(fā)設(shè)備中斷111。通過(guò)完成先前請(qǐng)求的操作,如磁盤(pán)寫(xiě)入操作或網(wǎng)絡(luò)發(fā)送操作,觸發(fā)上述中斷,或者通過(guò)接收新數(shù)據(jù),如接收網(wǎng)絡(luò)上的新數(shù)據(jù)包,觸發(fā)上述中斷。在收到此類(lèi)中斷時(shí),系統(tǒng)執(zhí)行上下文切換,然后執(zhí)行該設(shè)備的中斷服務(wù)例程(設(shè)備ISR103)。該例程檢查設(shè)備狀態(tài),并執(zhí)行所需操作,此后恢復(fù)系統(tǒng)上下文,并將控制返回到運(yùn)行狀態(tài)101。
如果沒(méi)有準(zhǔn)備運(yùn)行的應(yīng)用程序或操作系統(tǒng)任務(wù),或者如果因等待系統(tǒng)事件或設(shè)備I/O而阻塞所有上述任務(wù),則認(rèn)為該系統(tǒng)處于“空閑”112,并使大部分系統(tǒng)轉(zhuǎn)到省電模式,即睡眠狀態(tài)104。該系統(tǒng)保持上述狀態(tài),直至收到中斷(定時(shí)器120或設(shè)備121),此后將控制轉(zhuǎn)到相應(yīng)ISR(102或103)。通常,ISR的結(jié)果將創(chuàng)建新的應(yīng)用程序或操作系統(tǒng)任務(wù),然后返回到運(yùn)行狀態(tài)101。否則,如果該系統(tǒng)仍然保持空閑,則返回到省電模式,即睡眠狀態(tài)104。
在輪詢(xún)系統(tǒng)(圖6)中,不會(huì)使用中斷發(fā)送設(shè)備活動(dòng)信號(hào)。而是周期檢查設(shè)備狀態(tài)—或者在定時(shí)器ISR102期間或者在空閑輪詢(xún)循環(huán)105期間。當(dāng)輪詢(xún)循環(huán)105檢測(cè)到新的設(shè)備活動(dòng)時(shí),調(diào)用該設(shè)備的ISR。由于該系統(tǒng)經(jīng)常檢查設(shè)備狀態(tài)或正在運(yùn)行的應(yīng)用程序抑或系統(tǒng)任務(wù)—因此不可能進(jìn)入省電模式或轉(zhuǎn)到睡眠狀態(tài)104。在沒(méi)有應(yīng)用程序或系統(tǒng)任務(wù)需要運(yùn)行時(shí)直接進(jìn)入睡眠可能違反有關(guān)設(shè)備服務(wù)請(qǐng)求的等待時(shí)間限制,并引起系統(tǒng)性能降級(jí)。
圖3表示兩個(gè)現(xiàn)有系統(tǒng)的混合,上述系統(tǒng)具有自適應(yīng)機(jī)制,以便在不降低系統(tǒng)性能或響應(yīng)的情況下控制系統(tǒng)省電。該系統(tǒng)開(kāi)始于運(yùn)行狀態(tài)101,當(dāng)該系統(tǒng)沒(méi)有應(yīng)用程序或系統(tǒng)任務(wù)需要運(yùn)行,或者當(dāng)定時(shí)器中斷出現(xiàn)時(shí),該系統(tǒng)轉(zhuǎn)到輪詢(xún)狀態(tài)105。如果輪詢(xún)?cè)O(shè)備狀態(tài)檢測(cè)到服務(wù)請(qǐng)求,則將控制轉(zhuǎn)到相應(yīng)設(shè)備的ISR103。當(dāng)ISR完成時(shí),將活動(dòng)計(jì)數(shù)器加1,然后將控制轉(zhuǎn)到自適應(yīng)例程106。如果沒(méi)有檢測(cè)到設(shè)備活動(dòng),則將不活動(dòng)計(jì)數(shù)器加1,然后將控制轉(zhuǎn)到自適應(yīng)例程106。
自適應(yīng)例程106可以檢查系統(tǒng)狀態(tài),包括不活動(dòng)和活動(dòng)計(jì)數(shù)器(用于記錄輪詢(xún)?cè)O(shè)備沒(méi)有作業(yè)的次數(shù)或具有未決服務(wù)請(qǐng)求的次數(shù)),并修改系統(tǒng)參數(shù),以在保持系統(tǒng)響應(yīng)限制的情況下增加/減少省電時(shí)限。雖然不同系統(tǒng)之間的自適應(yīng)處理各不相同,但是某個(gè)特定實(shí)施方式可以選擇宣布設(shè)備“空閑”,因此在設(shè)備狀態(tài)輪詢(xún)返回某個(gè)次數(shù)的不活動(dòng)狀態(tài)后,該系統(tǒng)有資格進(jìn)入省電模式。另外,也可以選擇調(diào)整空閑閾值,或認(rèn)為系統(tǒng)“空閑”之前連續(xù)不斷的不活動(dòng)輪詢(xún)的次數(shù)。
在延時(shí)空閑期間(在整個(gè)定時(shí)器時(shí)限內(nèi)未檢測(cè)到設(shè)備活動(dòng)),自適應(yīng)例程106選擇禁用輪詢(xún),其方法是降低閾值,從而只要輪詢(xún)?cè)O(shè)備狀態(tài)一次就能確定設(shè)備是否空閑,并重新啟用設(shè)備中斷。該方法的目的是使該系統(tǒng)盡可能保持睡眠狀態(tài),只有設(shè)備活動(dòng)或定時(shí)器中斷才能中斷。此類(lèi)設(shè)備活動(dòng)將觸發(fā)自適應(yīng)例程106禁用設(shè)備中斷,并增加不活動(dòng)的閾值。
其他實(shí)施方式可以選擇調(diào)整定時(shí)器中斷的周期(時(shí)限),從而以更低頻率出現(xiàn)。考慮到系統(tǒng)時(shí)序安排策略和周期任務(wù),可能對(duì)上述調(diào)整規(guī)定上限。
為了保證成批處理服務(wù)請(qǐng)求,自適應(yīng)例程106可以決定在達(dá)到不活動(dòng)閾值前宣布系統(tǒng)空閑,其前提是到達(dá)定時(shí)器時(shí)限的時(shí)間小于某個(gè)服務(wù)請(qǐng)求的最小等待時(shí)間閾值。在簡(jiǎn)化示例中,將Web服務(wù)器片的定時(shí)器時(shí)限設(shè)置為10毫秒。自上一個(gè)時(shí)鐘報(bào)時(shí)信號(hào)以來(lái)經(jīng)過(guò)了8毫秒的輪詢(xún)和活動(dòng)。如果將最小等待時(shí)間限制設(shè)置為3毫秒,則在下一個(gè)定時(shí)器報(bào)時(shí)信號(hào)前的剩余2毫秒內(nèi),使CPU處于睡眠狀態(tài)。
在自適應(yīng)例程106運(yùn)行之后,系統(tǒng)檢查是否有準(zhǔn)備運(yùn)行的系統(tǒng)或應(yīng)用程序任務(wù)。如果有的話(huà),則將控制轉(zhuǎn)到運(yùn)行狀態(tài)101以執(zhí)行任務(wù)。如果沒(méi)有準(zhǔn)備運(yùn)行的任務(wù),則該系統(tǒng)檢查自適應(yīng)參數(shù)以確定系統(tǒng)是否“空閑”。如果認(rèn)為該系統(tǒng)不空閑,則重新進(jìn)入輪詢(xún)狀態(tài)105檢查設(shè)備狀態(tài)。如果認(rèn)為系統(tǒng)空閑并且省電模式不會(huì)降低響應(yīng),則系統(tǒng)進(jìn)入睡眠狀態(tài)104。中斷(設(shè)備或定時(shí)器)使系統(tǒng)退出省電睡眠狀態(tài)104,然后進(jìn)入輪詢(xún)狀態(tài)105。
最小等待時(shí)間限制可以由系統(tǒng)設(shè)計(jì)員進(jìn)行硬編碼,或者隨時(shí)間推移根據(jù)反饋進(jìn)行修改,以滿(mǎn)足系統(tǒng)的端到端響應(yīng)時(shí)間限制。端到端響應(yīng)時(shí)間的推導(dǎo)是應(yīng)用程序規(guī)范,并且可以根據(jù)用戶(hù)需求改變。例如,具有5秒傳輸延遲的長(zhǎng)距離網(wǎng)絡(luò)上的Web服務(wù)器能夠忍受由省電模式引起的4毫秒的延遲。建模結(jié)果表示當(dāng)在Web服務(wù)器片上使用英特爾CPU體系結(jié)構(gòu)時(shí)可能省電30%-40%。
通過(guò)參考圖4所示的流程圖,能夠更好地理解本發(fā)明,其中圖4表示示例性實(shí)施方式。圖4中的某些步驟包括圓括號(hào)中的第二參考號(hào)碼,后者表示圖3所示的相應(yīng)功能的操作狀態(tài)。首先,該過(guò)程運(yùn)行用戶(hù)應(yīng)用程序(50)。系統(tǒng)等待中斷(54)或等待沒(méi)有準(zhǔn)備運(yùn)行的應(yīng)用程序或系統(tǒng)任務(wù)。接著,系統(tǒng)輪詢(xún)?cè)O(shè)備以查看是否存在未決的服務(wù)請(qǐng)求(58)。如果有未決的服務(wù)請(qǐng)求(62),則系統(tǒng)考慮活動(dòng)(61),并轉(zhuǎn)到該設(shè)備的中斷服務(wù)例程以處理請(qǐng)求(64)。在處理該設(shè)備的請(qǐng)求后,系統(tǒng)經(jīng)過(guò)自適應(yīng)(68)步驟。如果沒(méi)有檢測(cè)到未決服務(wù)請(qǐng)求,則將系統(tǒng)不活動(dòng)計(jì)數(shù)器加1(63),然后運(yùn)行自適應(yīng)例程(68)。
如上所述,自適應(yīng)例程(68)根據(jù)活動(dòng)、不活動(dòng)和/或時(shí)限中的剩余時(shí)間,調(diào)整系統(tǒng)變量。然后確定是否宣布設(shè)備空閑。如果設(shè)備空閑,則自適應(yīng)例程決定啟用設(shè)備中斷。在自適應(yīng)例程完成后,系統(tǒng)進(jìn)行檢查以確定是否還有準(zhǔn)備運(yùn)行的應(yīng)用程序或系統(tǒng)任務(wù)。如果有的話(huà),則返回到運(yùn)行任務(wù)(50)。否則,系統(tǒng)進(jìn)行檢查以確定應(yīng)用程序是否宣布設(shè)備空閑(72)。不然的話(huà),系統(tǒng)返回到針對(duì)未決服務(wù)請(qǐng)求輪詢(xún)?cè)O(shè)備(58)。如果設(shè)備空閑,則系統(tǒng)進(jìn)入省電狀態(tài)(74),并且在收到定時(shí)器或設(shè)備中斷前保持省電狀態(tài)。
如果設(shè)備中斷負(fù)責(zé)系統(tǒng)退出省電狀態(tài)(69),則禁用設(shè)備中斷(58),并且系統(tǒng)返回到輪詢(xún)未決服務(wù)請(qǐng)求(58)。
盡管參照具體實(shí)施方式
說(shuō)明本發(fā)明,但上述說(shuō)明沒(méi)有任何限制含義。通過(guò)參考本發(fā)明的詳細(xì)說(shuō)明書(shū),熟練技術(shù)人員容易想到所述實(shí)施方式的各種修改,以及本發(fā)明的其他實(shí)施方式。因此,所有此類(lèi)修改均不背離附屬權(quán)利要求書(shū)定義的本發(fā)明的實(shí)質(zhì)和范圍。
權(quán)利要求
1.一種對(duì)輪詢(xún)數(shù)據(jù)處理系統(tǒng)中的未決設(shè)備服務(wù)請(qǐng)求的周期進(jìn)行自適應(yīng)控制的方法,所述數(shù)據(jù)處理系統(tǒng)具有一個(gè)處理器以及一個(gè)或多個(gè)輸入/輸出(I/O)設(shè)備,所述方法包括以下步驟針對(duì)未決服務(wù)請(qǐng)求,輪詢(xún)數(shù)據(jù)處理系統(tǒng)的設(shè)備;記錄是否有未決服務(wù)請(qǐng)求;根據(jù)積累數(shù)據(jù),確定設(shè)備是否空閑;以及響應(yīng)所述確定步驟,使處理器進(jìn)入低功耗狀態(tài)。
2.權(quán)利要求1的方法,還包括以下步驟處理所述輪詢(xún)步驟收到的一個(gè)或多個(gè)服務(wù)請(qǐng)求。
3.權(quán)利要求1的方法,還包括以下步驟自適應(yīng)設(shè)置一個(gè)閾值,該閾值為在認(rèn)為設(shè)備空閑前未發(fā)現(xiàn)未決服務(wù)請(qǐng)求的輪詢(xún)的最小次數(shù)。
4.權(quán)利要求1的方法,還包括以下步驟響應(yīng)系統(tǒng)或設(shè)備不活動(dòng),自適應(yīng)設(shè)置與定時(shí)器中斷處理器之頻率相對(duì)應(yīng)的定時(shí)器時(shí)限。
5.權(quán)利要求1的方法,還包括以下步驟響應(yīng)設(shè)備活動(dòng)或不活動(dòng),啟用或禁用設(shè)備中斷。
6.權(quán)利要求1的方法,還包括以下步驟自適應(yīng)設(shè)置一個(gè)最小等待時(shí)間閾值,該最小等待時(shí)間閾值用于說(shuō)明盡管存在未決服務(wù)請(qǐng)求系統(tǒng)仍保持低功耗狀態(tài)的最大時(shí)間量。
7.權(quán)利要求1的方法,還包括以下步驟響應(yīng)稍后的中斷,重新恢復(fù)處于低功耗狀態(tài)的處理器的操作。
8.一個(gè)數(shù)據(jù)處理系統(tǒng),所述系統(tǒng)包括至少一個(gè)處理器;與所述處理器相連的存儲(chǔ)設(shè)備;與所述處理器相連的一個(gè)或多個(gè)輸入/輸出(I/O)設(shè)備;以及所述存儲(chǔ)設(shè)備中存儲(chǔ)的、用于對(duì)輪詢(xún)未決設(shè)備服務(wù)請(qǐng)求的周期進(jìn)行修改的程序指令,其方法是針對(duì)未決服務(wù)請(qǐng)求,輪詢(xún)所述設(shè)備,記錄是否有未決服務(wù)請(qǐng)求,根據(jù)積累數(shù)據(jù)確定設(shè)備是否空閑,以及作為響應(yīng),使所述處理器進(jìn)入低功耗狀態(tài)。
9.權(quán)利要求8的數(shù)據(jù)處理系統(tǒng),其中所述程序指令還處理通過(guò)輪詢(xún)處理收到的一個(gè)或多個(gè)中斷。
10.權(quán)利要求8的數(shù)據(jù)處理系統(tǒng),其中所述程序指令自適應(yīng)設(shè)置一個(gè)閾值,該閾值為在認(rèn)為設(shè)備空閑前未發(fā)現(xiàn)未決服務(wù)請(qǐng)求的輪詢(xún)的最小次數(shù)。
11.權(quán)利要求8的數(shù)據(jù)處理系統(tǒng),其中響應(yīng)系統(tǒng)或設(shè)備不活動(dòng),所述程序指令自適應(yīng)設(shè)置與定時(shí)器中斷所述處理器之頻率相對(duì)應(yīng)的定時(shí)器時(shí)限。
12.權(quán)利要求8的數(shù)據(jù)處理系統(tǒng),其中響應(yīng)設(shè)備活動(dòng)或不活動(dòng),所述程序指令啟用或禁用設(shè)備中斷。
13.權(quán)利要求8的數(shù)據(jù)處理系統(tǒng),其中所述程序指令自適應(yīng)設(shè)置一個(gè)最小等待時(shí)間閾值,該最小等待時(shí)間閾值用于說(shuō)明盡管存在未決服務(wù)請(qǐng)求系統(tǒng)仍保持低功耗狀態(tài)的最大時(shí)間量。
14.權(quán)利要求8的數(shù)據(jù)處理系統(tǒng),其中響應(yīng)稍后的中斷,所述程序指令重新恢復(fù)處于低功耗狀態(tài)的所述處理器的操作。
15.一種對(duì)輪詢(xún)數(shù)據(jù)處理系統(tǒng)中的未決設(shè)備服務(wù)請(qǐng)求的周期進(jìn)行自適應(yīng)控制的計(jì)算機(jī)程序產(chǎn)品,所述數(shù)據(jù)處理系統(tǒng)具有一個(gè)處理器以及一個(gè)或多個(gè)I/O設(shè)備,所述程序產(chǎn)品包括計(jì)算機(jī)可讀介質(zhì);以及駐留在所述介質(zhì)中的程序指令,用于針對(duì)未決服務(wù)請(qǐng)求輪詢(xún)?cè)O(shè)備,記錄是否有未決服務(wù)請(qǐng)求,根據(jù)積累數(shù)據(jù)確定設(shè)備是否空閑,以及作為響應(yīng),使所述處理器進(jìn)入低功耗狀態(tài)。
16.權(quán)利要求15的計(jì)算機(jī)程序產(chǎn)品,其中所述程序指令還處理通過(guò)輪詢(xún)處理收到的一個(gè)或多個(gè)中斷。
17.權(quán)利要求15的計(jì)算機(jī)程序產(chǎn)品,其中所述程序指令自適應(yīng)設(shè)置一個(gè)閾值,該閾值為在認(rèn)為設(shè)備空閑前未發(fā)現(xiàn)未決服務(wù)請(qǐng)求的輪詢(xún)的最小次數(shù)。
18.權(quán)利要求15的計(jì)算機(jī)程序產(chǎn)品,其中響應(yīng)系統(tǒng)或設(shè)備不活動(dòng),所述程序指令自適應(yīng)設(shè)置與定時(shí)器中斷處理器之頻率相對(duì)應(yīng)的定時(shí)器時(shí)限。
19.權(quán)利要求15的計(jì)算機(jī)程序產(chǎn)品,其中響應(yīng)設(shè)備活動(dòng)或不活動(dòng),所述程序指令啟用或禁用設(shè)備中斷。
20.權(quán)利要求15的計(jì)算機(jī)程序產(chǎn)品,其中所述程序指令自適應(yīng)設(shè)置一個(gè)最小等待時(shí)間閾值,該最小等待時(shí)間閾值用于說(shuō)明盡管存在未決服務(wù)請(qǐng)求系統(tǒng)仍保持低功耗狀態(tài)的最大時(shí)間量。
21.權(quán)利要求15的計(jì)算機(jī)程序產(chǎn)品,其中響應(yīng)稍后的中斷,所述程序指令重新恢復(fù)處于低功耗狀態(tài)的處理器的操作。
全文摘要
一種對(duì)輪詢(xún)未決服務(wù)請(qǐng)求的周期進(jìn)行自適應(yīng)控制的方法,其方法是針對(duì)未決服務(wù)請(qǐng)求輪詢(xún)系統(tǒng)設(shè)備,記錄是否有未決服務(wù)請(qǐng)求,以及根據(jù)積累數(shù)據(jù)確定設(shè)備是否空閑。根據(jù)上述判定,系統(tǒng)選擇進(jìn)入省電模式,直至發(fā)出設(shè)備活動(dòng)信號(hào),或經(jīng)過(guò)某個(gè)可調(diào)時(shí)限。自適應(yīng)機(jī)制可以改變定時(shí)器中斷的周期,禁用或啟用設(shè)備中斷,并修改確定系統(tǒng)空閑所使用的變量(包括最小等待時(shí)間和最小空閑閾值)。這樣,系統(tǒng)能夠在保持系統(tǒng)性能和響應(yīng)的情況下節(jié)省電力。
文檔編號(hào)H04N1/32GK1508652SQ20031012128
公開(kāi)日2004年6月30日 申請(qǐng)日期2003年12月17日 優(yōu)先權(quán)日2002年12月18日
發(fā)明者E·N·埃爾諾扎伊, E·V·亨斯貝根, E N 埃爾諾扎伊, 亨斯貝根 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司