最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

低能耗的計算機系統(tǒng)的制作方法

文檔序號:6476491閱讀:340來源:國知局
專利名稱:低能耗的計算機系統(tǒng)的制作方法
技術(shù)領(lǐng)域
一般說來,本發(fā)明涉及計算機系統(tǒng),更確切地說,涉及低能耗的計算機系統(tǒng)。
背景技術(shù)
近年來,普及設(shè)備(PvD)已經(jīng)變得越來越流行。這些設(shè)備的無線性能一直在增強,同時某些任務(wù)所需的計算復(fù)雜性也在增加。制約普及設(shè)備成功的一個主要障礙是能耗,因為典型情況下普及設(shè)備都是由電池供電。一般來說,普及設(shè)備中的電池可能支持的時間從一小時到一年,這取決于該普及設(shè)備的使用。如果普及設(shè)備用于語音識別和/或支持高速無線連接,能耗將必然會顯著上升。其原因在于,要支持這種任務(wù)所需的百萬指令每秒(MIPS),需要中高性能的處理單元。遺憾的是,隨著性能上升,能效下降。如同在本文中,詞語“能效”是指每項任務(wù)的焦耳數(shù)(JPT)(和其它等價量)。
盡管當(dāng)前的普及設(shè)備能夠執(zhí)行高性能的復(fù)雜任務(wù),但是典型的普及設(shè)備在大多數(shù)時間里是用于執(zhí)行低性能的任務(wù),比如更新時間寄存器、與無線基站定期交換位置信息、對環(huán)境溫度進行采樣、登錄一個GPS位置標記、取回一個地址簿條目、更新屏幕緩沖區(qū)、探測小鍵盤輸入等等。以JPT而論,在高性能的處理器上執(zhí)行這種簡單的任務(wù)是極為低效的。
因此,為了使處理單元運行在有能源意識的方式下,已經(jīng)作出了若干努力。例如,某些處理器制造商(參見例如T.R.Halfhill,“Transmeta Breaks x86 Low-Power Barrier”,Microprocesor Report,p.1,F(xiàn)eb.2000和S.Liebson,“Xscale(StrongARM-2)Muscles In”,Microprocesor Report,p.1,F(xiàn)eb.2000)已經(jīng)生產(chǎn)出了能效更高的處理單元,其中通過協(xié)同地改變供電電壓和頻率,能夠調(diào)節(jié)每個周期的能耗,這也被稱為電壓縮放(參見例如Brodersen et al.,“Low PowerDigital CMOS Design”,Kluwer Academic Publishers,1995)。不過,對于能夠使這些處理單元的運行慢到何種程度,或者更準確地說,能夠使供電電壓降低到何種程度,存在著若干限制。所以,如果這些處理單元主要是用于執(zhí)行簡單的低性能任務(wù),那么與專門為了執(zhí)行這些簡單任務(wù)而設(shè)計的處理單元相比,它們?nèi)匀粫速M相當(dāng)多的能源。
另外,某些移動電話和便攜無線電制造商(參見例如5,487,181號和5,058,203號美國專利)已經(jīng)提出,在執(zhí)行頻繁發(fā)生的和例行的功能時,使用能效高的專用集成電路(ASIC),使能效較低的主處理器減輕負擔(dān)。不過,這種降低能耗的方法不適于更一般的和更可配置的、致力為用戶提供高度靈活性的計算平臺。在高度靈活的計算系統(tǒng)中,用戶可以實時改變功能和安裝新的特性(如桌面用戶范例)。相反,它們是具有特定和有限功能的系統(tǒng)。
所以,無論用戶對系統(tǒng)功能的要求如何,對于一般的可配置的計算平臺,低能耗仍然是需要的。用戶可以下載新的應(yīng)用程序代碼進行評價,隨后以能效最高的方式執(zhí)行。

發(fā)明內(nèi)容
所以,本發(fā)明在一般的、高度可配置的計算系統(tǒng)中,降低了能耗。會從本發(fā)明受益的某些目標計算系統(tǒng)的實例包括,例如,個人數(shù)字助理(PDA)、手持電腦、袖珍電腦、便攜電話、膝上電腦、可穿戴電腦等等。另外,本發(fā)明尤其適用于為了高度的用戶靈活性而設(shè)計的計算系統(tǒng)(如用戶能夠下載新的應(yīng)用程序、產(chǎn)生其自己的應(yīng)用程序和/或按其需要定制系統(tǒng)的系統(tǒng))。
依據(jù)本發(fā)明的第一方面,提供了一種計算機系統(tǒng)。該計算機系統(tǒng)包括至少兩個處理單元,它們具有不同的能效,并且適于至少根據(jù)任務(wù)的處理需求以及相應(yīng)的處理能力來執(zhí)行任務(wù)。一種調(diào)度器適于調(diào)度一項給定的任務(wù),使至少兩個處理單元中的一個來執(zhí)行,使得能耗最小,并且根據(jù)給定任務(wù)的處理需求以及相應(yīng)的處理能力,判斷出至少兩個處理單元中的這一個不能適當(dāng)?shù)貓?zhí)行時,再次調(diào)度該給定任務(wù),使至少兩個處理單元中的另一個來執(zhí)行。
優(yōu)選情況下,處理需求包括給定任務(wù)要完成的一個結(jié)束時間。更理想的情況是,該調(diào)度器是在這至少兩個處理單元以外的一個硬件部件之內(nèi)包含的一種功能。在一個優(yōu)選實施例中,這至少兩個處理單元中的一個包括該調(diào)度器。適當(dāng)?shù)那闆r下,該調(diào)度器進一步適于截取這至少兩個處理單元和外圍設(shè)備發(fā)出的中斷信號。
依據(jù)本發(fā)明的一個優(yōu)選實施例,這至少兩個處理單元共享存儲器空間。適當(dāng)?shù)那闆r下,這至少兩個處理單元共享輸入/輸出空間。更適當(dāng)?shù)那闆r下,這至少兩個處理單元共享輸入/輸出空間,并且該調(diào)度器和這至少兩個處理單元共享存儲器空間。
在一個優(yōu)選實施例中,計算系統(tǒng)進一步包括一種任務(wù)屬性存儲器,適于存放至少某些計劃任務(wù)的至少某些處理需求。在一個優(yōu)選實施例中,或者是由該調(diào)度器,或者是由這至少兩個處理單元中的一個作出判斷。適當(dāng)?shù)那闆r下,這至少兩個處理單元進一步適于在接受和拒絕要執(zhí)行的任務(wù)二者中作出一項。更適當(dāng)?shù)那闆r下,處理需求包括執(zhí)行給定的任務(wù)所需的處理能力。
依據(jù)本發(fā)明的第二方面,提供了一種計算機系統(tǒng)。該計算機系統(tǒng)包括多個處理單元。這多個處理單元中的每一個都適于執(zhí)行它們的任務(wù)。這多個處理單元中的至少兩個具有不同的能效。一種調(diào)度器適于調(diào)度一項給定的任務(wù),通過以能效下降的部分次序詢問多個處理單元,在接受和拒絕執(zhí)行給定的任務(wù)二者中作出一項,直到下列兩種情況之一,即給定任務(wù)被所述多個處理單元中的一個接受和執(zhí)行二者之一,給定任務(wù)被多個處理單元拒絕,從而使多個處理單元中的一個來執(zhí)行給定的任務(wù)。
優(yōu)選情況下,所述調(diào)度器進一步適于根據(jù)至少一種預(yù)定的條件,從部分次序中排除所述多個處理單元中的任何一個。
依據(jù)本發(fā)明的第三方面,提供了一種計算機系統(tǒng)。該計算機系統(tǒng)至少包括兩個處理單元,它們具有不同的能效,并且適于根據(jù)計劃任務(wù)的處理需求以及相應(yīng)的處理能力,在接受和拒絕計劃任務(wù)二者中作出一項。這至少兩個處理單元也適于至少執(zhí)行接受的計劃任務(wù)。一種調(diào)度器適于調(diào)度一項給定的任務(wù),使至少兩個處理單元中的一個來執(zhí)行,使得能耗最小,并且當(dāng)這至少兩個處理單元中的這一個拒絕執(zhí)行給定的任務(wù)時,再次調(diào)度該給定任務(wù),使至少兩個處理單元中的另一個來執(zhí)行。
依據(jù)本發(fā)明的第四方面,提供了一種計算機系統(tǒng)。該計算機系統(tǒng)包括多個處理單元。這多個處理單元中的每一個都適于執(zhí)行它們的任務(wù)。這多個處理單元中的至少兩個具有不同的能效。一個處理器屬性表適于存放至少這多個處理器中某一些的處理能力信息,并且適于在處理能力信息改變時動態(tài)地更新處理能力信息。一種調(diào)度器適于對于一項給定的任務(wù),以能效下降的一種部分次序和一種嚴格次序二者中的一種,從處理器屬性表中檢索至少某些處理能力信息,直到發(fā)現(xiàn)多個處理器中的一個,對于給定任務(wù)的任務(wù)處理需求具有適當(dāng)?shù)奶幚砟芰ΑT撜{(diào)度器也適于調(diào)度給定的任務(wù),由多個處理器中的一個執(zhí)行。
更適宜的情況下,所述計算機系統(tǒng)進一步包括至少一個功能塊,適于執(zhí)行與一個中斷相關(guān)聯(lián)的至少一種功能。
優(yōu)選情況下,所述計算機系統(tǒng)進一步包括至少一個功能塊,適于執(zhí)行一項任務(wù)使用的至少一種功能。
附圖簡要說明現(xiàn)在將參考本發(fā)明的優(yōu)選實施例,僅僅通過實例介紹本發(fā)明,如以下的附圖所示,其中

圖1是一幅框圖,展示了依據(jù)本發(fā)明的一個展示性實施例,一個低能耗的計算機系統(tǒng)100;圖2是一個表格,展示了依據(jù)本發(fā)明的一個展示性實施例的一個任務(wù)屬性列表;圖3是一個表格,展示了依據(jù)本發(fā)明的一個展示性實施例的一個處理器屬性列表;圖4是一幅流程圖,展示了依據(jù)本發(fā)明的一個展示性實施例的一個調(diào)度單元SCH進行的任務(wù)調(diào)度;以及圖5是一幅流程圖,展示了依據(jù)本發(fā)明的一個展示性實施例,由Pj(即處理單元P1或P2)進行的任務(wù)處理。
具體實施例方式
本發(fā)明旨在具有低能耗的計算機系統(tǒng)。應(yīng)當(dāng)理解,在多種形式的硬件、軟件、固件、專用處理單元或者它們的組合中,都可以實施本發(fā)明。優(yōu)選情況下,本發(fā)明實施為以既有硬件又有軟件的組合。軟件可以實施為一臺程序存儲設(shè)備中確實地包含的一個應(yīng)用程序。該應(yīng)用程序可以上傳到一臺包括任何適宜架構(gòu)的機器,并由該機器執(zhí)行。優(yōu)選情況下,該機器是在一個電腦平臺上實現(xiàn)的,該平臺具有的硬件如中央處理器(CPU)、隨機采取存儲器(RAM)和輸入/輸出(I/O)接口。該電腦平臺也可以包括一種操作系統(tǒng)和/或微指令代碼。本文介紹的多種過程和功能,可以或者是微指令代碼的一部分,或者是應(yīng)用程序的一部分(或者是它們的一種組合),通過操作系統(tǒng)來執(zhí)行。此外,多種其它的外圍設(shè)備可以連接到該電腦平臺,比如附加的數(shù)據(jù)存儲設(shè)備和一臺打印設(shè)備。
應(yīng)當(dāng)進一步理解,因為附圖中描述的某些系統(tǒng)組成部件和方法步驟可以在軟件中實現(xiàn),所以系統(tǒng)部件(或過程步驟)之間的實際連接可能不同,這取決于對本發(fā)明編程的方式。
為了便于清楚地理解本發(fā)明,現(xiàn)在將要給出本文中使用的術(shù)語的定義。術(shù)語“處理單元”定義為一個微處理器、一個微控制器、一個數(shù)字信號處理器或者能夠執(zhí)行指令的其它器件。也可以使用上述元件的任何組合。同樣,術(shù)語“功能塊”定義為數(shù)字或混合信號電路,能夠執(zhí)行一種或多種功能,但是不能執(zhí)行指令;不僅如此,功能塊的功能也不能改變。專用集成電路(ASIC)、快速富氏變換(FFT)或組合電路都被視為本發(fā)明所用的功能塊。應(yīng)當(dāng)承認,一個處理單元不能是一個功能單元,一個功能單元也不能是一個處理單元。另外,術(shù)語“任務(wù)”定義為一個代碼段,它與其它任務(wù)同時或者單獨地獨立執(zhí)行。使用這種定義,例如應(yīng)用程序、線程、中斷服務(wù)例程和操作系統(tǒng)核心都可以視為任務(wù)。
圖1是一幅框圖,展示了低能耗的一個計算機系統(tǒng)100,依據(jù)本發(fā)明的一個展示性實施例。計算機系統(tǒng)100包括兩個處理單元P1和P2(后文中也一般地稱為“處理單元Pj),以及一個調(diào)度單元SCH。P1和P2執(zhí)行任務(wù)。P1是能效最大的處理單元,但是計算性能低。P2是能效最小的處理單元,但是計算性能高。來自I/O空間和來自這兩個處理單元的所有中斷信號都送到SCH。MEM是存儲器空間,I/O是I/O空間。BUSP1、BUSP2、BUSMEM和BUSI/O分別是調(diào)度器至P1的總線、調(diào)度器至P2的總線、存儲器總線和I/O總線。BCMEM和BCI/O分別是存儲器總線控制器和I/O總線控制器。在本發(fā)明的一個優(yōu)選實施例中,處理單元P1和P2同時執(zhí)行,在每個處理單元上都有一個多任務(wù)操作系統(tǒng)在運行。
雖然在圖1的展示性實施例中SCH實現(xiàn)為一個單獨的功能塊,但是應(yīng)當(dāng)承認,SCH的功能也可以實現(xiàn)為其它處理單元(如P1和/或P2)的一部分、軟件程序或者它們的一種組合。例如,SCH可以實現(xiàn)為一個硬件組件(如任何功能塊或者處理單元)之內(nèi)的一個函數(shù)(軟件、邏輯組件的系列等等)。
現(xiàn)在將簡要介紹計算機系統(tǒng)100的操作。SCH截取所有的中斷信號,對中斷決定一個任務(wù)標識號(TID),然后與處理單元P1和P2協(xié)商任務(wù)的執(zhí)行——選擇能耗最低的處理單元來執(zhí)行,并以及時的方式完成任務(wù)。為了使SCH和Pj之間進行這樣一種協(xié)商,應(yīng)當(dāng)知曉當(dāng)前任務(wù)有關(guān)的某些特定的特征。在一個任務(wù)屬性列表中,提供了這些特征以及與任務(wù)相關(guān)的其它信息。圖2是一個表格,展示了一個依據(jù)本發(fā)明的任務(wù)屬性列表。在中斷時檢索特定的任務(wù)屬性,是SCH的責(zé)任。下面將參考圖2,進一步詳細介紹所示的展示性任務(wù)屬性。
TID是當(dāng)前任務(wù)的任務(wù)標識號。NP是能夠執(zhí)行該任務(wù)的處理單元數(shù)目。PTID,1是能夠執(zhí)行該任務(wù)的、能效最大的處理單元的ID。CPSTID,1是在最不利的情況下,以及時的方式運行該任務(wù)所需的處理單元的周期數(shù)目。ADDRTID,1是該任務(wù)的位置地址。PTID,i是能夠執(zhí)行該任務(wù)的、能效第i大的處理單元,其中1≤i≤NP。CPSTID,i是在最不利的情況下,以及時的方式運行該任務(wù)所需的處理單元的周期數(shù)目。ADDRTID,i是該任務(wù)的位置地址。PTID,NP是能夠執(zhí)行該任務(wù)的NP個處理單元中,能效最小的處理單元。CPSTID,NP是在最不利的情況下,以及時的方式運行該任務(wù)所需的處理單元的周期數(shù)目。ADDRTID,NP是該任務(wù)的位置地址。注意,如果處理單元并非同樣的架構(gòu),對于每個處理單元,原則上ADDR可以不同。例如,兩個不同的處理單元具有不同的指令集,以及/或者一個處理單元具有32位架構(gòu)而另一個處理單元具有8位架構(gòu),這樣的情況并非罕見。
應(yīng)當(dāng)強調(diào),CPS表示了最不利情況下的一個數(shù)值。例如,假設(shè)用戶啟動了一個DateBook應(yīng)用程序,它列出了許多DateBook條目。相應(yīng)的任務(wù)將會忙碌一秒左右,然后它將處于空閑模式,此時在顯示屏幕上可見到條目的DateBook列表。然后,用戶選擇一個條目,以獲得更詳細的信息。然后該任務(wù)從數(shù)據(jù)庫取回信息,在顯示屏幕上顯示該信息,并且返回空閑模式。所以,能夠介紹CPS與這樣一項任務(wù)的關(guān)系如下CPS表示了對于該任務(wù),響應(yīng)用戶的輸入請求、從數(shù)據(jù)庫取回信息以及最后在顯示屏幕上顯示該信息的過程中,處理單元的必要速度性能。不過,對于大多數(shù)時間,該任務(wù)處于空閑模式。
按照屬性列表中列出的處理單元的次序,SCH將與處理單元P1和P2協(xié)商。因此,對于圖2中的展示性任務(wù)屬性列表,SCH將與能效最大的處理單元PTID,1協(xié)商。然后PTID,1將快速確定,在給定的所需周期每秒CPS的約束下,它是否能夠處理當(dāng)前的任務(wù)。然后PTID,1將或者接受或者拒絕該任務(wù)。如果PTID,1拒絕了該任務(wù),或者在一段時間之后,PTID,1確定它將不能按時完成該任務(wù),那么PTID,1將向SCH發(fā)出中斷信號。然后,SCH將嘗試屬性列表中的下一個處理單元(與之協(xié)商),直到列出的處理單元之一接受該任務(wù),或者直到所有列出的處理單元都已經(jīng)嘗試過。
應(yīng)當(dāng)承認,任務(wù)屬性列表旨在使接受/拒絕的判斷,能夠基于要執(zhí)行的給定任務(wù)的處理需求,以及要執(zhí)行該給定任務(wù)之處理器的處理性能。處理需求可能包括例如執(zhí)行該任務(wù)所需的最小處理能力、必須完成該任務(wù)的截止時間、數(shù)據(jù)路徑的特定數(shù)位寬度等等。處理能力可能包括當(dāng)前可用的處理能力、數(shù)據(jù)路徑的當(dāng)前數(shù)位寬度等等。
進一步應(yīng)當(dāng)承認,一個給定處理器是否能夠執(zhí)行一項給定任務(wù)的實際判斷,可能由向其詢問以接受該任務(wù)的處理器作出,或者由SCH作出。作出這種判斷,最好是基于該任務(wù)的處理需求和該處理器的處理能力,處理需求在任務(wù)屬性列表中描述,處理能力或者是僅僅由處理器才可訪問,或者也可以由調(diào)度器從共享的處理器屬性列表訪問。圖3是一個表格,展示了適于SCH訪問的一個處理器屬性列表。在圖3中,N是處理單元的數(shù)目,CPSj是處理器j的當(dāng)前可用最大處理能力,其中1≤j≤N?;蛘咴谔幚砥鹘邮芤豁椥氯蝿?wù)之時,或者在它們停止一項任務(wù)之時,處理器屬性列表必須由各個處理器動態(tài)更新,使得屬性列表中的數(shù)值表示各個處理器的接近瞬時處理能力。當(dāng)然,某些處理需求和/或處理能力也可以存儲在任務(wù)屬性列表和處理器屬性列表以外的存儲結(jié)構(gòu)中,以便將來引用。
為了便于理解,對中斷信號施加以下的假定/條件。SCH每次處理一個I/O中斷信號。一個I/O中斷信號不能先占另一個I/O中斷信號的處理過程,一個I/O中斷信號也不能先占一個處理器中斷信號的處理過程。I/O中斷信號按收到的次序排隊。處理器中斷信號比I/O中斷信號的優(yōu)先級高。
圖4是一幅流程圖,展示了依據(jù)本發(fā)明的、SCH進行的任務(wù)調(diào)度。收到一個中斷信號之后,就確定其種類(步驟310)。如果該中斷信號是一個I/O中斷信號,那么它就按照其到達的次序排隊(步驟315)。
然后確定SCH的狀態(tài)是否空閑(步驟316)。如果不是(也就是如果SCH的狀態(tài)是忙碌),那么SCH進入等待模式(步驟317)。在等待模式下,SCH不能服務(wù)于其它的I/O中斷信號,盡管SCH確實允許I/O中斷信號排隊,如同以上對于步驟315的介紹。不過,如果SCH處于空閑狀態(tài),那么SCH就進而檢索隊列中的下一個中斷信號(步驟318),默認情況下它將是剛剛收到的I/O中斷信號。下一步,進入忙碌狀態(tài)(步驟319)。
SCH通過詢問一個中斷矢量表,確定該中斷信號的任務(wù)屬性列表地址(步驟320)。然后檢索該任務(wù)的任務(wù)屬性(步驟325)。然后,SCH向?qū)傩粤斜碇辛谐龅牡谝粋€處理單元發(fā)出一個請求,接受或者拒絕與當(dāng)前I/O中斷信號相關(guān)聯(lián)的任務(wù)(帶有任務(wù)的IDTID)(步驟330)。在步驟319至330期間,SCH處于忙碌狀態(tài)。執(zhí)行了步驟330之后,SCH進入等待模式(步驟317)?;旧希琒CH處于等待模式時,SCH就是等待當(dāng)前的處理單元回答它是要接受還是要拒絕與當(dāng)前I/O中斷信號相關(guān)聯(lián)的任務(wù)(帶有任務(wù)的IDTID)。
通過產(chǎn)生一個處理器中斷信號,如上所述,它的優(yōu)先級高于I/O中斷信號,當(dāng)前的處理單元回答SCH。因此,確定了收到的中斷信號的種類是處理器中斷信號(步驟310)之后,就立即處理這個處理器中斷信號。SCH詢問處理單元PTID,i的中斷信號函數(shù)IF_Accept(步驟340)。如果該處理單元已經(jīng)接受了該任務(wù),中斷信號函數(shù)IF_Accept就返回布爾值“真”,如果該處理單元已經(jīng)拒絕了該任務(wù),就返回布爾值“假”。然后確定中斷信號函數(shù)IF_Accept返回的布爾值是“真”還是“假”。
如果IF_Accept是“真”,那么SCH返回空閑狀態(tài)(步驟352)。下一步,SCH檢驗隊列中是否還有更多的I/O中斷信號(步驟360)。如果隊列中沒有更多的I/O中斷信號,那么SCH就進入就緒模式——它僅僅是等待另一個I/O中斷信號(步驟361)。否則,如果有更多的中斷信號,那么本方法就返回步驟318——檢索隊列中的下一個I/O中斷信號。
如果IF_Accept是“假”,那么i的值增加1(步驟355),并且本方法返回步驟330(所以SCH能夠向?qū)傩粤斜碇辛谐龅南乱粋€處理單元發(fā)出一個請求,接受或者拒絕與當(dāng)前I/O中斷信號相關(guān)聯(lián)的任務(wù)(帶有任務(wù)的IDTID))。
圖5是一幅流程圖,展示了Pj(即處理單元P1或P2)進行的任務(wù)處理。為了便于理解,作出某些特定的假設(shè)如下。一個處理單元可以由兩種方式被中斷由SCH和由處理器的本機OS計時器。來自SCH的中斷信號始終是立即得到服務(wù)。計時器中斷信號也是始終是立即得到服務(wù),除非處理單元Pj正在服務(wù)于來自SCH的一個中斷信號。SCH中斷信號的服務(wù)時間比OS計時器的中斷間隔T快得多。OS代碼是本地存放的,也就是OS不在共享存儲器空間MEM中。
回頭參考圖4,可見SCH每次處理一個I/O中斷信號源,而且該中斷信號使SCH以順序方式,與一個或多個處理單元協(xié)商。因此,SCH每次與一個處理單元協(xié)商,所以在任何給定的時刻,最多有一個來自SCH的中斷信號由處理單元之一進行服務(wù)。來自SCH的中斷信號絕不可能在一個處理單元中排隊,因為在一個處理單元已經(jīng)完成了來自SCH的當(dāng)前中斷信號的服務(wù)之前,SCH不能發(fā)出另一個中斷信號。
現(xiàn)在將簡要介紹Pj中的任務(wù)接納,然后是針對圖5的更詳細的介紹。處理單元Pj收到一個中斷信號時,處理單元Pj首先確定該中斷信號的來源(換句話說,是來自SCH還是來自處理單元Pj的的本機OS計時器)。如果該中斷信號是SCH中斷信號,那么處理單元Pj在本地存儲器中保存當(dāng)前的狀態(tài),并為該中斷信號服務(wù)。因此,來自SCH的中斷信號可以先占任何其它的當(dāng)前正在執(zhí)行的任務(wù)。從SCH中斷任務(wù)返回之后,處理單元Pj恢復(fù)被先占任務(wù)的執(zhí)行。處理單元Pj正在對一個SCH中斷信號服務(wù)時,中斷信號被禁用。如果正在對該SCH中斷信號服務(wù)時確實出現(xiàn)了一個計時器中斷信號,那么在該SCH中斷信號的服務(wù)完成之前,不會對計時器中斷信號服務(wù)。
返回圖5,處理單元Pj收到一個中斷信號時,它首先確定該中斷信號的來源(步驟410)。收到一個SCH中斷信號之后,處理單元Pj禁用中斷信號,并且保存當(dāng)前的程序環(huán)境(步驟415)。然后,處理單元Pj將檢索TID接納檢驗所需的有關(guān)TID屬性(步驟420)。有關(guān)的TID屬性包括與Pj相關(guān)聯(lián)的CPS處理需求。SCH可以通過一個共享的緩沖區(qū),把任務(wù)屬性表的地址傳遞給該處理單元(如圖4中的步驟325)。然后進行TID接納檢驗(步驟425)。通過例如使用下文中詳細介紹的公式1,就可以進行TID接納檢驗。然后確定接納檢驗的結(jié)果是拒絕該TID還是接受(步驟430)。如果結(jié)果是接受,那么對該TID進行登記,把任務(wù)指針ADDR插入計時器鏈,為該TID分配一個時間片(步驟435),本方法進至步驟440。否則,本方法直接進至步驟440。
在步驟440,通過中斷SCH并把布爾結(jié)果放在一個SCH能夠訪問的共享緩沖區(qū)中,通知SCH接納檢驗的結(jié)果(即處理單元Pj的判斷)。然后,處理單元Pj使中斷再次可用,并且恢復(fù)任務(wù)環(huán)境(步驟445)。
對于在步驟435中分配一個時間片,同樣是基于(在步驟420中檢索的)任務(wù)所需的計算能力(CPS)以及基于處理單元Pj的當(dāng)前負載來計算。為了展示的目的,計算時間片的一種方法顯示在后文中將介紹的公式2中。
如果在步驟410確定了收到的中斷信號是一個計時器中斷信號,那么就保存當(dāng)前任務(wù)的環(huán)境(步驟450),加載計時器鏈中的下一項任務(wù)(步驟475),并且本機計時器編程為按照下一項任務(wù)分配的時間片進行中斷(步驟480)。因此,以順序的方式執(zhí)行登記的任務(wù)。已經(jīng)執(zhí)行了計時器鏈中最后一項任務(wù)時,計時器編程為在下一個主計時器間隔T進行中斷,任務(wù)是以該間隔定期地加載執(zhí)行。注意,如果需要,任何登記的任務(wù)都可以放入休眠模式(例如假若用戶不在使用一個應(yīng)用程序),因此從計時器鏈中暫時取出,以便使處理器盡可能多地進入睡眠模式以節(jié)省能源。
CPSTIDK+1≤CPSCLK-CPSOS-CPSSCH-Σk≤KCPSTIDk---(1)]]>對于步驟425的接納檢驗,考慮一個處理單元Pj,它當(dāng)前有K項任務(wù)在其中執(zhí)行。現(xiàn)在考慮一個新的任務(wù)TIDK+1,SCH把它發(fā)送到Pj來執(zhí)行。從新的任務(wù)屬性列表可以看到,TIDK+1需要至少CPSTIDK+1的計算能力。因此,對于Pj要接納的新任務(wù)TIDK+1,公式1中的表達式必須滿足,其中TIDCLK是該處理單元的時鐘頻率,CPSOS是為該操作系統(tǒng)分配的CPS,CPSSCH是為了與SCH交互而分配的CPS(也就是接納例程消耗這項分配的一部分),CPSTIDk是為當(dāng)前在Pj上執(zhí)行的第k項任務(wù)分配的CPS。注意,公式1中的所有參數(shù)都是特定于Pj的,已經(jīng)省去了“Pj”下標。
應(yīng)當(dāng)注意,在許多情況下,確定一項任務(wù)所需的CPS將是基于規(guī)劃者的經(jīng)驗。確定一項任務(wù)所需的CPS的一種方法,是在目標處理單元上啟動該任務(wù),其中也有一個所謂的節(jié)流閥任務(wù)在運行,其CPS能夠調(diào)節(jié)。首先,對該任務(wù)提供最大的CPS,換句話說,CPSmax=CPSCLK-CPSOS-CPSSCH-CPSTHROTTLE(=0)。然后,規(guī)劃者逐漸增加節(jié)流閥CPS,因此減小當(dāng)前任務(wù)可用的CPS。以這種方式,規(guī)劃者就能夠確定何時新任務(wù)不再以令人滿意的方式運行。
對于任務(wù)時間片,再次考慮一個處理單元Pj,它有K項任務(wù)在其中執(zhí)行。現(xiàn)在考慮一個新的任務(wù)TIDK+1,SCH把它發(fā)送到Pj來執(zhí)行。進一步假設(shè)每項任務(wù)TIDk都是以主計時間隔T執(zhí)行,該間隔是由本機OS管理,由本機計時器的恰當(dāng)安排而提供?,F(xiàn)在假設(shè)Pj接納了該任務(wù),就將按照公式2,為新的任務(wù)TIDK+1分配時間片ΔTIDK+1。
ΔTK+1=CPSTIDK+1CPSCLK·T----(2)]]>應(yīng)當(dāng)承認,本發(fā)明的實施方式可以是被調(diào)度以執(zhí)行一項任務(wù)的處理單元并不是耗能最少的處理單元,而是第二少、第三少等等。換句話說,雖然最終目標確實是選擇能效最大的處理單元,但是為了多種原因也可以選擇能效“鄰近”的其它處理單元,正如相關(guān)領(lǐng)域中的普通技術(shù)人員之一所易于確定的。例如,能效最大的處理單元正忙于處理另一項任務(wù),或者由于調(diào)度的原因,值得使用能效第二、第三或第N的處理單元。因此,可以根據(jù)能效下降的部分次序,詢問處理單元是接受一項給定的任務(wù)以執(zhí)行還是拒絕。部分次序意味著,某些處理單元可以不按能效的次序選擇,可以完全不考慮,或者它們的任何組合。有了本文提供的本發(fā)明的教導(dǎo),相關(guān)領(lǐng)域中的普通技術(shù)人員之一可期待針對低能耗之任務(wù)調(diào)度的這些和其它的變化、修改和延伸,同時保持本發(fā)明的范圍。
進一步應(yīng)當(dāng)承認,本文描述的處理單元可以是例如微處理器、微控制器、數(shù)字信號處理器(DSP)或者能夠執(zhí)行指令的任何其它器件。不僅如此,以上元件的任何組合都可以采用。
更進一步應(yīng)當(dāng)承認,處理單元執(zhí)行調(diào)度器調(diào)度的任務(wù)以及可能不是調(diào)度器調(diào)度的其它任務(wù)。
權(quán)利要求
1.一種計算機系統(tǒng),包括至少兩個處理單元,它們具有不同的能效,并且適于至少根據(jù)任務(wù)的處理需求以及相應(yīng)的處理能力來執(zhí)行任務(wù);以及一種調(diào)度器,適于調(diào)度一項給定的任務(wù),由所述至少兩個處理單元中的一個來執(zhí)行,使得能耗最小,并且根據(jù)給定任務(wù)的處理需求以及相應(yīng)的處理能力,判斷出所述至少兩個處理單元中的所述那一個不能適當(dāng)?shù)貓?zhí)行時,再次調(diào)度該給定任務(wù),使所述至少兩個處理單元中的另一個來執(zhí)行。
2.根據(jù)權(quán)利要求1要求的計算機系統(tǒng),其中所述調(diào)度器適于調(diào)度一項給定的任務(wù),通過以能效下降的部分次序詢問所述至少兩個處理單元,在接受和拒絕執(zhí)行給定的任務(wù)二者中作出一項,直到下列兩種情況之一,即給定任務(wù)被所述至少兩個處理單元中的所述那一個接受和執(zhí)行二者之一,給定任務(wù)被至少兩個處理單元的另一個拒絕,從而使所述至少兩個處理單元中的一個來執(zhí)行給定的任務(wù)。
3.根據(jù)權(quán)利要求2的計算機系統(tǒng),其中所述調(diào)度器進一步適于根據(jù)至少一種預(yù)定的條件,從部分次序中排除所述至少兩個處理單元中的任何一個。
4.根據(jù)以上任何權(quán)利要求的計算機系統(tǒng),進一步包括一個處理器屬性表,適于存放所述至少兩個處理器中至少一個的處理能力信息,并且適于在處理能力信息改變時動態(tài)地更新處理能力信息。
5.根據(jù)權(quán)利要求4的計算機系統(tǒng),其中所述調(diào)度器適于對于一項給定的任務(wù),以能效下降的一種部分次序和一種嚴格次序二者中的一種,從處理器屬性表中檢索至少某些處理能力信息,直到發(fā)現(xiàn)至少兩個處理器中的一個,對于給定任務(wù)的任務(wù)處理需求具有適當(dāng)?shù)奶幚砟芰?,以及調(diào)度給定的任務(wù),由至少兩個處理器中的所述那一個執(zhí)行。
6.根據(jù)以上任何權(quán)利要求的計算機系統(tǒng),其中所述調(diào)度器進一步適于截取來自所述至少兩個處理單元和外圍設(shè)備的中斷信號。
7.根據(jù)以上任何權(quán)利要求的計算機系統(tǒng),進一步包括一個任務(wù)屬性表,適于存放至少某些被調(diào)度任務(wù)的至少某些處理需求。
8.根據(jù)以上任何權(quán)利要求的計算機系統(tǒng),其中處理需求包括一個要完成給定任務(wù)的結(jié)束時間。
9.根據(jù)以上任何權(quán)利要求的計算機系統(tǒng),其中由所述調(diào)度器作出決定。
10.根據(jù)權(quán)利要求1至8中任何一條要求的計算機系統(tǒng),其中由所述至少若干處理單元的所述那一個作出決定。
全文摘要
通過加入兩個或更多不同能效和不同處理能力的處理單元,降低了計算機系統(tǒng)的能耗。一個調(diào)度器截取來自I/O空間的中斷信號,確定該中斷信號至一項任務(wù),對該任務(wù)檢索能耗和性能屬性,并且調(diào)度該任務(wù)在處理單元上執(zhí)行,使得該任務(wù)將消耗最少的能源,同時以及時的方式執(zhí)行。
文檔編號G06F1/32GK1596392SQ01821310
公開日2005年3月16日 申請日期2001年12月21日 優(yōu)先權(quán)日2001年1月5日
發(fā)明者劉易斯·默羅, 克勞斯·奧爾森 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1