專利名稱::具有多個硬件塊的系統(tǒng)和操作該系統(tǒng)的方法具有多個硬件塊的系統(tǒng)和操作該系統(tǒng)的方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種具有多個硬件塊(hardwareblock)的系統(tǒng)以及操作該系統(tǒng)的方法,特別地,所述系統(tǒng)和方法適用于電源消耗被關(guān)注的情形,例如數(shù)字電視接收機的解調(diào)器中。已知,在例如用于數(shù)字電視接收機的解調(diào)器的系統(tǒng)中需要操作多個硬件塊。該系統(tǒng)可以運行多個不同任務(wù),這些任務(wù)會在不同時間使用這些硬件塊。特別地,如果在電池供電的設(shè)備、例如在符合手持式數(shù)字廣播(DVB-H)標(biāo)準(zhǔn)的數(shù)字電視接收機中提供該系統(tǒng),那么電量消耗將會是非常重要的。本申請基于這樣一種認(rèn)識,那就是通過控制硬件塊,可以有助于節(jié)電。根據(jù)本發(fā)明,在這里提供了一種用于操作系統(tǒng)的方法,其中該系統(tǒng)具有多個硬件塊,該方法包括根據(jù)是否需要使用相應(yīng)塊來獨立控制至每一個》更件塊的電源。根據(jù)本發(fā)明,在這里還提供了一種具有多個硬件塊的系統(tǒng),該系統(tǒng)被配置成根據(jù)是否需要使用相應(yīng)硬件塊來獨立控制至每一個硬件塊的電源。由此,只有在特定硬件塊作為特定服務(wù)或在系統(tǒng)中運行的任務(wù)的一部分被使用的時候,所述硬件塊才會通電。而在其他任何時間,該硬件塊可被斷電,從而降低系統(tǒng)的電量消耗。優(yōu)選地,該系統(tǒng)包括用于相應(yīng)硬件塊的設(shè)備驅(qū)動器,并且被配置成支持多個任務(wù),其中每一個任務(wù)都通過與相應(yīng)設(shè)備驅(qū)動器進行通信來使用一個或多個硬件塊。利用此方案,要想確定硬件塊應(yīng)該通電還是斷電是相對困難的,并且由此將會需要進行大量處理。在多個任務(wù)、事實上是在供這些任務(wù)使用的服務(wù)中,任何一個任務(wù)或服務(wù)都有可能在某個時間使用特定硬件塊。當(dāng)某一個特定任務(wù)不再需要使用某個硬件塊時,這時并不意味著所述硬件塊可以斷電,因為別的任務(wù)同樣有可能需要使用該硬件塊。優(yōu)選地,在每一個相應(yīng)設(shè)備驅(qū)動器中都會實施計數(shù)器,該計數(shù)器被配置成在多個任務(wù)之一每次請求使用相應(yīng)硬件塊時遞增,并且被配置成4在多個任務(wù)之一每次停止使用相應(yīng)硬件塊時遞減。這樣做提供了一種極為有效和有利的方式來確定應(yīng)該為特定硬件塊加電還是斷電。舉個例子,如果計數(shù)器的初始值為0,那么當(dāng)計數(shù)器是非零值時,很容易就可以確定應(yīng)該為相應(yīng)硬件塊加電。優(yōu)選地,該計數(shù)器是作為應(yīng)用編程接口實施的。這樣做提供了一種簡單的實施方式,否則它將是一個非常復(fù)雜的處理。優(yōu)選地,該計數(shù)器提供了一個輸出,以便在計數(shù)器指示沒有要求使用相應(yīng)硬件塊的未完成請求的時候?qū)⑾鄳?yīng)硬件塊斷電。由此,其言外之意是計數(shù)器類似地可以提供一個輸出,以便在計數(shù)器指示需要使用相應(yīng)硬件塊的時候為相應(yīng)硬件塊通電。優(yōu)選地,該計數(shù)器具有初始值零,以使該輸出能夠只在計數(shù)器具有非零值時為相應(yīng)的硬件塊通電。該系統(tǒng)還可以包括一個硬件時鐘塊,其中該塊具有用于系統(tǒng)時鐘信號的時鐘輸出,用于接收所述計數(shù)器的相應(yīng)輸出的電源輸入,用于相應(yīng)硬件塊的時鐘輸出,以及多個相應(yīng)的邏輯門。每一個相應(yīng)邏輯門都與時鐘輸入、相應(yīng)的電源輸入以及相應(yīng)的時鐘輸出相連,并且被配置成根據(jù)電源輸入來有選擇地向相應(yīng)時鐘輸出提供時鐘信號。由此應(yīng)該理解,硬件塊是通過將其從系統(tǒng)時鐘信號中移除而被斷電的。關(guān)于這一點,應(yīng)該了解的是,大多數(shù)能量消耗是因為時鐘轉(zhuǎn)變產(chǎn)生的。計數(shù)器的輸出可以容易地被用來控制是否將系統(tǒng)時鐘信號提供給相應(yīng)的硬件塊。硬件塊可以包括定時器、UART、SPI、SDIO、調(diào)諧器、解調(diào)器、濾波器以及MPE-FEC中的至少一個。定時器提供系統(tǒng)時間的指示,并且允許將警報配置成在經(jīng)過預(yù)定時間量之后消失。UART(通用異步接收機/發(fā)射機)是標(biāo)準(zhǔn)串行通信數(shù)據(jù)鏈路,所述串行通信數(shù)據(jù)鏈路用于在DVB-H接收機中將活動的日志跟蹤到例如用于調(diào)試的計算機。SPI(串行外圍接口)是一個用于將集成電路這類在DVB-H接收機中使用的設(shè)備相互連接來與主機應(yīng)用處理器進行通信并受其控制(也就是接收命令以及發(fā)送包含命令結(jié)果的響應(yīng))的標(biāo)準(zhǔn)同步通信數(shù)據(jù)鏈路。作為SPI的可行替換方案,SDIO(安全數(shù)字輸入/輸出)是一種用于將附屬設(shè)備連接到DVB-H接收機中使用的主機應(yīng)用處理器的標(biāo)準(zhǔn)。調(diào)諧器是用于提取和隔離頻譜中的特定射頻信道并將其向下變換到基帶(也就是將載頻帶到0HZ)的模擬集成電路。解調(diào)器是用于解調(diào)DVB-H信號的數(shù)字集成電路。濾波器是用于提取作為MPEG-2傳輸流的子集或是來自該傳輸流的特定數(shù)據(jù)分組的數(shù)字集成電路,其中這些數(shù)據(jù)分組是用其分組ID(PID)和表格ID表示的。MPE-FEC(多協(xié)議封裝-前向糾錯)是一種在MPEG-2傳輸流中封裝任何類型的數(shù)據(jù)(例如就DVB-H來說的IP分組)的標(biāo)準(zhǔn)方式。FEC是一種包含下列處理的方法在發(fā)射機側(cè)將額外的代碼封裝在MPEG-2傳輸流中,以及在接收機側(cè)使用這些代碼來檢測和糾正MPE數(shù)據(jù)中的傳輸差錯。該系統(tǒng)可以作為解調(diào)器、例如作為集成電路的可互換式模塊來提供。同樣,在數(shù)字電視接收機中也可以提供該系統(tǒng),例如將其作為接收機內(nèi)部的解調(diào)器來加以提供。優(yōu)選地,所述解調(diào)器和/或接收機符合DVB-H標(biāo)準(zhǔn)。本發(fā)明還提供了一種用于實施所述處理的計算機程序。例如應(yīng)用程序接口的計算機程序可以被提供來用在所描述的設(shè)備驅(qū)動器中。從以下參考附圖并且只作為實例給出的描述中可以更清楚地了解本發(fā)明,其中圖1描述的是可以實現(xiàn)本發(fā)明的設(shè)備的實例;圖2示意性描述了一個使用本發(fā)明的系統(tǒng);圖3提供了本申請實施例的備選示意圖4描述的是用于圖3裝置的復(fù)位處理;圖5描述的是用于圖3裝置的取消(abort)處理;圖6示意性描述了在圖3裝置中工作的任務(wù)、服務(wù)和設(shè)備驅(qū)動器的實例;圖7示意性描述了一個設(shè)備驅(qū)動器;圖8示意性描述了硬件設(shè)備的功率控制;圖9描述了各種通電和斷電狀態(tài);圖IO描述了帶有附加時間片任務(wù)的、圖6的方案;以及圖11描述了各種任務(wù)的相對優(yōu)先級。本發(fā)明旨在應(yīng)用于移動電視接收機(2)中,例如圖1所示的移動電話設(shè)備(2)。這種移動電視接收才幾可以依照歐洲使用的DVB-H(手持式數(shù)字視頻廣播)標(biāo)準(zhǔn)來工作。圖示接收機(2)包括用于顯示接收到的電視節(jié)目圖像的顯示器(4),以及允許用戶操作或控制接收機(2)的用戶接口(6),其中該用戶接口例如包含多個按鍵(8)。接收到的電視節(jié)目的音頻部分的音頻再現(xiàn)可以借助一對耳機(10)而被提供給用戶。圖2示意性描述了在接收數(shù)字電視信號的過程中使用的接收機(2)的一部分。在圖示實施例中,接收機(2)包括它自己的應(yīng)用處理器或主機(12),其中所述應(yīng)用處理器或主機可以用于操作接收機(2)的電視功能和其他功能、例如在將接收機(2)也當(dāng)作電話時的電話操作。就此而論,該應(yīng)用處理器(12)可以包括多種中間件(14)以及用于存儲此類中間件的相關(guān)存儲器。同樣,如所示,接收機(2)包括專門被配置成處理電視功能的模塊(16)。該模塊(16)可以單獨制造和銷售,并且被提供在眾多不同的接收機中使用。雖然沒有描述,但是該模塊(16)被配置成輸出用于在顯示器(4)上顯示的視頻數(shù)據(jù)以及由耳機(10)再現(xiàn)的音頻數(shù)據(jù)。在用戶接口(6)的控制下,借助應(yīng)用處理器(12)可以對模塊(16)進行控制,例如改變電一見頻道。提供了天線(18),以便接收調(diào)制在各種射頻載波上的多個電視信號。在模塊(16)內(nèi)部,調(diào)諧器(20)被配置成調(diào)諧特定的載波頻率,并且將接收到的調(diào)制信號提供給解調(diào)器(22)。該解調(diào)器(22)包括多個硬件單元(24)(除了調(diào)諧器(20)之外),例如解調(diào)器和濾波器塊。這些部件是在先前從應(yīng)用處理器(12)下載的固件(26)的控制下工作的,由此可以提供針對模塊(16)的完整操作并且根據(jù)需要來輸出音頻/視頻信號。圖3提供的是模塊(16)的結(jié)構(gòu)的代替的示意圖??偩€(28)允許在模塊(16)的塊之間進行通信。調(diào)諧器(20)和其他硬件塊(24)則被連接,以便與處理器(30)進行通信。在這里還提供了串行外圍接口(32),以便與接收機(2)的應(yīng)用處理器(12)進行通信。此外,在這里還提供了ROM(34)和RAM(36)。圖4是示意性描述在模塊(16)的啟動過程中在圖3的裝置中發(fā)生的過程的流程圖。在步驟S10,其中為模塊(16)和處理器(30)提供了一個復(fù)位信號。這樣則會導(dǎo)致處理器(30)開始執(zhí)行位于地址0x0000的指令,其中該地址在物理上映射到ROM(34),并且所述ROM自身包含了用于從接收機(2)的應(yīng)用處理器(12)下載代碼的引導(dǎo)裝載器。在步驟S12,通過使用串行外圍接口(32),引導(dǎo)裝載器從應(yīng)用處理器(12)接收引導(dǎo)配置參數(shù)并且將其存入RAM(36)。舉例來說,這些參數(shù)可以包括設(shè)備的帶寬(例如5、6、7或8MHz)以及接收機源時鐘的頻率。然后,在步驟S14,引導(dǎo)裝載器從應(yīng)用處理器(12)下載固件(26)并且將其保存在RAM(36)中。保存在RAM(36)中的下栽圖像將包括用于該模塊(16)的操作系統(tǒng)。很明顯,出于所論述的原因,這個處理將會占用明顯的時間量,例如大約200ms。在步驟S16,ROM引導(dǎo)裝載器重新映射存儲器,使得地址0x0000現(xiàn)在在物理上是指向RAM(36)而不是ROM(34)的。在步驟S18,使得處理器(30)再次開始執(zhí)行位于地址0x0000的指令,該指令現(xiàn)在(由于步驟S16)在物理上將會映射到RAM(36),而所述RAM(36)自身則包含了固件(26)。在步驟S20,保存在RAM(36)中的固件促使處理器(30)啟動同樣保存在RAM(36)中的操作系統(tǒng)。在步驟S22,固件(26)收回那些在步驟S12中存儲的配置參數(shù)值。優(yōu)選地,這些參數(shù)值是保存在RAM(36)中的預(yù)定或固定位置的。然后,這些值將會根據(jù)需要而被輸入存儲器,由此在步驟S24中可以對包括調(diào)諧器和濾波器等等的硬件塊進行初始化。特別地,該固件在硬件初始化中使用這些配置參數(shù)。最后,在步驟S26中創(chuàng)建用于執(zhí)行各種任務(wù)的恰當(dāng)線程(在下文中將會進一步論述)。這時,模塊(16)仍舊會等待來自應(yīng)用處理器(12)的、關(guān)于為恰當(dāng)電視節(jié)目等等調(diào)諧或創(chuàng)建濾波器的命令。在使用接收機(2)的過程中,如果需要重新初始化大量的硬件元件或塊(20,24),那么將會耗費時間。例如,有可能決定改變RF信道,也就是改變載波。實際上,如果接收信號丟失,那么應(yīng)用處理器(12)可以決定移動到一個不同載波,而不是僅僅等待恢復(fù)接收。對處理器(30)來說,還可以安排來釋放并且隨后單獨地重啟每一個硬件塊(20,24)。但是,本申請首次認(rèn)定這種處理是非常復(fù)雜和耗時的。本申請還考慮到了重新應(yīng)用參考圖4所描述的復(fù)位處理的可能性。這個處理是一個非常簡單和有效的處理。但是,這個處理有可能會很耗時,此外,參考如上所述的步驟S14,將固件下載到RAM(36)是需要耗費時間的。本申請首次考慮使用取消命令,其中與操作圖4的整個復(fù)位處理不同,該命令將會促使模塊(16)停止任何的和所有當(dāng)前操作,并且釋放所有資源,而不需要處理器(30)單獨停止每一個單個操作。就此而論,控制處理器(30)的固件(26)并沒有單獨停止操作和釋放資源,而是單純地重新初始化了操作系統(tǒng)核心。圖5是示意性描述在接收取消命令時發(fā)生的處理的流程圖。在步驟S30,從應(yīng)用處理器(12)向模塊(16)發(fā)送取消命令。作為響應(yīng),在步驟(S32),固件不但會終止(kill)所有線程、定時器和事件,而且還會終止互斥體,借助于此,由兩個線程執(zhí)行的同時操作被阻止。這樣一來,模塊(16)執(zhí)行的所有進程都會停止其正在執(zhí)行的工作,并且所有的操作系統(tǒng)存儲器結(jié)構(gòu)都會被清空。在實踐中,一部分存儲器包含了用于激活線程的操作系統(tǒng)數(shù)據(jù),由此操作系統(tǒng)將會知道那些活動的線程。當(dāng)固件終止所有線程時,沒有必要刪除所有已存儲線程,而是僅僅清除操作系統(tǒng)用以存儲活動線程列表的存儲塊。由此,操作系統(tǒng)不會看到曾經(jīng)存在的任何線程。很明顯,這個處理幾乎是即時的。在步驟S34,固件再次啟動操作系統(tǒng)。換句話說,它會重新初始化引導(dǎo)功能,并且執(zhí)行與圖4中的S20相似的處理。然后,與圖4相比,則沒有必要執(zhí)行步驟S22,這是因為在這里沒有必要重新存儲配置參數(shù);這些配置參數(shù)已經(jīng)被正確保存在了存儲器中。這時,值得一提的是,如果需要使用不同的配置參數(shù),例如使用不同的帶寬,那么一個全復(fù)位處理是需要的。然后,該處理跳轉(zhuǎn)到步驟S36,在那里,固件將會初始化硬件。與復(fù)位處理的步驟S24相比,取消處理的步驟S36更簡單。尤其是,并未重新初始化那些涉及通信的硬件,尤其是串行外圍接口(32)。在優(yōu)選實施例中,由于串行外圍接口(32)處理的是與應(yīng)用處理器(12)進行且涉及取消處理的通信,因此串行外圍接口(32)并未重新初始化。另一方面,如果在存儲器中保持了處理狀態(tài)并且在初始化之后將其恢復(fù)至串行外圍接口(32),那么將可以執(zhí)行與復(fù)位處理中的步驟S24相類似的完整的硬件重新初始化。在步驟S38,以與復(fù)位處理中的步驟S26相類似的方式來創(chuàng)建恰當(dāng)?shù)木€程。此外,在步驟S40中,固件借助串行外圍接口(32)來向應(yīng)用處理器(12)發(fā)送一個取消響應(yīng),由此向應(yīng)用處理器(12)確認(rèn)該取消處理已經(jīng)完成。以下各項并未重新初始化模塊配置(在步驟S22中進行了),VIC(矢量化中斷控制器)。某些其他塊僅僅被部分地重新初始化解調(diào)器,SPI和SDIO控制器(用于主機協(xié)議通信),以及DMA(直接存儲器存取)控制器。由此,在這里可以提供一種解調(diào)器設(shè)備以及一種用于操作該解調(diào)器設(shè)備的方法,其中為了通過釋放單個資源來避免關(guān)機,引導(dǎo)(bootstrap)操作系統(tǒng)核心來停止接收機。模塊(16)可以作為解調(diào)器芯片來提供,例如DVB-H解調(diào)器芯片??梢詾镈VB-H解調(diào)器芯片提供嵌入式固件。對執(zhí)行單個基本操作的任何軟件系統(tǒng)來說,無論該軟件系統(tǒng)是否為嵌入式,這種通用方法都是適用的;如果在取消或停止當(dāng)前操作之后系統(tǒng)狀態(tài)與通電之后的初始狀態(tài)等價,那么這種通用方法尤其是適用的。如從上文中可以清楚了解的一樣,接收機(16)實施使能主機應(yīng)用處理器(12)對其進行控制的通信協(xié)議。這個協(xié)議包含了用于配置和啟動接收機U6)的主要功能的命令,例如掃描頻譜來發(fā)現(xiàn)DVB-H信號,調(diào)諧到特定頻率并且設(shè)置SI和MPE濾波器,以及接收凈荷數(shù)據(jù)。與任何控制系統(tǒng)一樣,該協(xié)議還包括用于停止操作的命令,例如停止正在執(zhí)行的頻譜掃描處理,以及停止和釋放(清除)SI和MPE濾波器。但是,接收機(2)實施的是這樣一種通信協(xié)議,其中該通信協(xié)議的新穎之處在于1)定義了一個附加的弁ABORT命令,該命令促使接收機停止任何的和所有當(dāng)前操作并釋放所有資源,而不需要主機應(yīng)用處理器單獨停止每一個單個的任務(wù),以及2)提供弁ABORT命令自身的固件實施方式,它不會單獨停止操作和釋放資源,但取而代之的是,它會重新初始化#:作系統(tǒng)核心。例如在調(diào)諧到不同頻率或是創(chuàng)建SI和MPE濾波器的不同集合的預(yù)備中,弁ABORT命令為主機應(yīng)用處理器(12)提供了一種將接收機(16)返回到干凈狀態(tài)的快速簡單的方式。此外,如果不必循環(huán)經(jīng)過所有操作來將其停止以及不需要釋放所有資源,那么將會減少代碼數(shù)量,并且將會使嵌入式固件更小,由此節(jié)約嵌入式存儲器。在一個特定實施例中,接收機軟件(先前被描述成是固件)實施方式在來自ExpressLogic,Inc.的嵌入式實時核心操作系統(tǒng)ThreadX上運行。在ThreadX系統(tǒng)的初始化過程中,可以區(qū)別多個步驟初始化過程0.系統(tǒng)復(fù)位(中斷被禁用)1.跳轉(zhuǎn)到圖像輸入點2.開發(fā)工具初始化(包括全局變量初始化)(在某些實施例中可以移除該步驟)。3.main():執(zhí)行預(yù)備處理(這包括設(shè)置定時器之類的硬件初始化)(該步驟作為圖像輸入點的可以組合地完成,由此將不存在main()函數(shù))。4.通過調(diào)用tx—kernel—enter()來啟動ThreadX。5.由ThreadX"i周用tx—application—define()來a.創(chuàng)建系統(tǒng)資源(應(yīng)用線程,互斥體,事件標(biāo)志,定時器)b.I丸行i殳備初始化,以及c.調(diào)用軟件模塊的初始化方法。6.進入線程調(diào)度循環(huán)(中斷被使能)。在這個初始化處理之后,系統(tǒng)處于已知狀態(tài)X,其中,它可以開始接收來自主機的命令。在接收到弁ABORT命令時,通過重新執(zhí)行上述初始化序列的一部分來迫使系統(tǒng)進入相同的已知狀態(tài)X。取消處理0.主機發(fā)送弁ABORT。1.在定時器線程中a.禁用中斷b.通過將OS資源結(jié)構(gòu)重新初始化到0來廢棄所有OS資源(應(yīng)用線程,互斥體,事件標(biāo)志,定時器)。c.設(shè)置PostABORT標(biāo)志(可供才莫塊實施方式查詢以識別跟隨在弁ABORT之后的初始化處理的全局變量)現(xiàn)在,該狀態(tài)與初始化步驟3之后的狀態(tài)相匹配。2.通過調(diào)用tx—kernel—enter()來重啟ThreadX。3.ThreadX將會調(diào)用tx—application—define()來a.重新創(chuàng)建系統(tǒng)資源(應(yīng)用線程,互斥體,事件標(biāo)志,定時器)b.重新執(zhí)行設(shè)備初始化c.調(diào)用軟件模塊的初始化方法,以及d.向主機發(fā)送關(guān)于存ABORT的響應(yīng)。4.進入線程調(diào)度循環(huán)(啟用中斷)。作為步驟3.c的一部分,軟件模塊的實施應(yīng)該考慮到只在初始化處理的步驟2中對全局和靜態(tài)變量執(zhí)行初始化。如果根據(jù)弁ABORT預(yù)期重新初始化任一全局或靜態(tài)變量,那么應(yīng)該在特定模塊的初始化方法中顯性#1行該處理。圖6示意性描述了數(shù)字電視接收中的軟件端的實例,其中舉例來說,所述數(shù)字電視接收例如可以在如上面所述的模塊(16)的模塊中工作。在頂層,正在由模塊(16)執(zhí)行的多個功能被圖示為線程或任務(wù)(40)。這些線程和任務(wù)中的每一個都使用了可以從處于其下方的層中得到的一個或多個服務(wù)(42)。至少在某些環(huán)境中,為了執(zhí)行用于這些任務(wù)的服務(wù)(42)的功能,這些服務(wù)(42)將需要使用模塊(16)中的硬件(20,24)。為此目的,每一個服務(wù)都可以使用與相應(yīng)設(shè)備或硬件塊(20,24)相對應(yīng)的一個或多個設(shè)備驅(qū)動器(44)。本申請首次考慮到了不同設(shè)備或硬件塊(20,24)的電量消耗問題。當(dāng)開啟這些設(shè)備或硬件塊(20,24)時,它們將會消耗電量,而本申請認(rèn)為,在不使用這些設(shè)備或硬件塊(20,24)時,將其關(guān)閉,那么將會是有益的,對電池供電的設(shè)備來說尤其如此。例如,對于數(shù)字電視接收機來說,接收和處理突發(fā)(burst)中的數(shù)據(jù)塊是相當(dāng)常見的。因此,在接收和處理這些突發(fā)的過程中,在不同時間,各種硬件塊或設(shè)備既有可能處于使用之中,也有可能未被使用。再次參考圖6,應(yīng)該理解的是,對同時運行的不同任務(wù)和服務(wù)來說,不同的任務(wù)和服務(wù)有可能會在同一時間需要設(shè)備和設(shè)備驅(qū)動器。這樣則很難在任一時間確定是否應(yīng)該為特定設(shè)備或硬件塊(20,24)通電還是斷電。特別地,單個的任務(wù)會以彼此獨立的方式工作,同樣,單獨的服12務(wù)也會以彼此獨立的方式工作,由此一般來說,一個任務(wù)或一個服務(wù)將不知道其他任務(wù)或服務(wù)正在使用哪些設(shè)備或硬件。作為該問題的解決方案,本申請?zhí)岢隽藶槊恳粋€驅(qū)動器(44)使用電源管理應(yīng)用編程接口(API)(46)。在圖7中對此進行了示意性描述。實際上,電源管理API包括計數(shù)器,該計數(shù)器在服務(wù)(42)每次請求使用相應(yīng)設(shè)備或硬件塊(20,24)的時候遞增,并且會在每次停止使用設(shè)備或硬件塊(20,24)的時候遞減。對該裝置來說,應(yīng)該了解的是,只要計數(shù)器具有遞增或非零狀態(tài),那么將會存在一個指示,該指示表明至少一個服務(wù)需要使用相應(yīng)的設(shè)備或硬件時鐘(20,24),由此應(yīng)該保持通電。只有當(dāng)計數(shù)器處于零值或者未遞增時,相應(yīng)設(shè)備或硬件塊(20,24)才可以斷電。如圖7示意性描述的那樣,電源管理API(46)為相應(yīng)設(shè)備或硬件塊(20,24)提供了一個電源信號(48)。響應(yīng)于這個電源信號(48),相應(yīng)的設(shè)備或硬件塊(20,24)可以通電或斷電。該電源信號(48)可以用多種不同方式來使用,以便控制相應(yīng)設(shè)備或硬件塊(20,24)的電源。圖8示意性描述了一種裝置,在該裝置中,電源信號(48)是與主時鐘信號(50)和時鐘塊(52)結(jié)合使用的。在設(shè)備或硬件塊(20,24)中存在兩個主要的電量消耗源。首先,依照時鐘信號的每一次轉(zhuǎn)換都具有相對顯著的電量消耗。其次,在不考慮時鐘信號的情況下也是存在泄露的。例如依照如圖8所示的優(yōu)選實施例,至特定設(shè)備或硬件塊(20,24)的所有電源可以被關(guān)閉,但是僅僅停止用于相應(yīng)設(shè)備或硬件塊(20,24)的時鐘來阻止因為轉(zhuǎn)換所導(dǎo)致的電源損失,這是不能滿足需要的。在圖8所示的實施例中,時鐘信號(50)借助時鐘塊(52)被提供給硬件塊(20,24)。這可以作為一個包含了分別與硬件塊(20,24)相對應(yīng)的多個門(54)的硬件塊來實現(xiàn)。每一個門根據(jù)相應(yīng)的電源信號(48)而被使能或禁用。這樣,驅(qū)動器(44)的電源管理API(46)對是否將時鐘信號(50)提供給相應(yīng)的硬件塊(20,24)進行控制。可以使用"或"或"與"門。對"與"門來說,如果將電源信號(48)設(shè)置成1,那么將會為硬件通電;如果將其設(shè)置為"零",則會將硬件斷電。對"或,,門來說,如果將電源信號(48)設(shè)置成"1",那么會將時鐘塊保持在"1",由此凍結(jié)時鐘并且由此將該塊斷電;如果將電源信號(48)設(shè)置成零,那么將會使得塊時鐘與系統(tǒng)時鐘等價,由此將會為該塊通電。優(yōu)選地,該硬件使用"或"門,并且由此必須反轉(zhuǎn)電源信號(l表示切斷,o表示接通)。應(yīng)該了解的是,這種裝置可以使用在任何一種其中存在多個單獨硬件塊的電路中,其中這些硬件塊可以有選擇地通電或斷電。這種裝置在數(shù)字電視接收機、例如DVB-H接收機或模塊中是尤其有用的,其中所述模塊例如是在此類接收機中使用的模塊(16)。但是,它還具有其他應(yīng)用,例如在移動電話或個人計算才幾中應(yīng)用。由此可以提供一種系統(tǒng)和操作系統(tǒng)的方法,尤其是所述系統(tǒng)和方法使用了參考計數(shù),以便通過禁用那些不需要的單獨硬件塊的時鐘來節(jié)約電量。對于任何在其中能夠單獨控制硬件塊的電源狀態(tài)并且由多個軟件任務(wù)或線程異步使用硬件塊的系統(tǒng),該方法都是適用的。對電源管理來說,與具有單獨的主電源狀態(tài)(接通或切斷)不同,接收才幾硬件(20,24,52)將會允許單獨控制每一個塊(20,24)的電源,以便節(jié)約更多的電力。例如,一旦接收到突發(fā)并且將其存入MPE-FEC存儲器(24),則可以在對突發(fā)糾錯以及將其傳送到主機或應(yīng)用處理器(12)的時候關(guān)閉調(diào)諧器(20)、解調(diào)器(24)以及濾波器塊(24)。只有在此之后,MPE-FEC塊才會關(guān)閉。如上所述,嵌入式固件實施方式中的難題源于這樣一個事實,即單個硬件塊(20,24)的電源狀態(tài)有可能依賴于多個任務(wù)(40)的活動。例如,調(diào)諧器可以供接口處理機(或接口處理機任務(wù)(40))使用,以便執(zhí)行SCAN命令,此外它也可以由時間切片器(或時間切片器(40))使用,以便接收突發(fā)?;蛘?,所述MPE-FEC可能要處理并行的IP服務(wù)。為了簡化實施方式,每一個設(shè)備驅(qū)動器(44)都可以獨立管理受其控制的硬件塊的電源狀態(tài)。就此而論,同步電源管理API的實例如下請求設(shè)備將其電源狀態(tài)保持在POWERED—ON上Err—tDrvXXX—PowerUp()放棄保持在該電源狀態(tài)上Err—tDrvXXX—PowerDown()客戶機或服務(wù)(42)將會調(diào)用PowerUp()函數(shù)來表明其需要將設(shè)備的電源狀態(tài)保持在POWERED—ON。如果設(shè)備(20,24)尚未開啟,那么驅(qū)動器(44)將會立即開啟該設(shè)備。然后,在可以放棄所述保持時,客戶機或服務(wù)(42)將會調(diào)用PowerDown()。但是,實際上,只有在沒有其他客戶機或服務(wù)(42)保持通電的時候,該設(shè)備的電源狀態(tài)才會切換到POWERED—OFF。這種處理是通過讓驅(qū)動器(44)保持一個電源狀態(tài)計數(shù)器來實現(xiàn)的。該狀態(tài)被初始化為O,并且會在每一次調(diào)用PowerUp()的時候遞增,以及在每次調(diào)用PowerDown()的時候遞減。當(dāng)計數(shù)器值為零時,設(shè)備(20,24)將會關(guān)閉。一些服務(wù)(42)(調(diào)諧,SI提取和IP提取)將實施相同的API。每一個設(shè)備驅(qū)動器實施電源管理API,并且服務(wù)或任務(wù)可以通過使用所述API來控制相應(yīng)硬件塊的電源狀態(tài)。只有系統(tǒng)任務(wù)才需要具有例如何時需要為調(diào)諧器和解調(diào)器通電的觀點。例如,調(diào)諧服務(wù)知道必須將調(diào)諧器和解調(diào)器塊通電來執(zhí)行調(diào)諧操作。但是,它不知道何時可以將這些塊斷電,其中該時間有可能處于接收當(dāng)前突發(fā)(也就是時間片)的末期,只有IP接收任務(wù)才知道這個時間。在優(yōu)選的固件架構(gòu)中,任務(wù)并未直接訪問設(shè)備驅(qū)動器及其API,而是僅僅通過服務(wù)層中的中間服務(wù)塊來對其進行訪問。優(yōu)選地,在這里應(yīng)該存在一種可供服務(wù)將來自任務(wù)的電源管理請求轉(zhuǎn)發(fā)到設(shè)備驅(qū)動器的方法。這通過讓服務(wù)與設(shè)備驅(qū)動器實施相同的電源管理API來實現(xiàn)。在服務(wù)中,電源管理API是以一種與其在設(shè)備驅(qū)動器中相同的方式來實施的,也就是說,它借助參考計數(shù)來實施。這其中的唯一區(qū)別在于代替控制電源信號,當(dāng)參考計數(shù)分別是非零或零時,服務(wù)調(diào)用底層設(shè)備驅(qū)動器的PowerUp()和PowerDown()函數(shù)。舉個例子,借助上述API,圖6所示的時間切片器任務(wù)很容易就可以如以下偽4戈碼顯示的那樣實施永遠重復(fù)SrvTune—PowerUp()SrvTune一AcquireSignalLock()/*異步的*/SrvSi—PowerUpO15Srvlp—PowerUp()SrvIp一ReceiveBurstO/*異步的*/SrvTune—PowerDown()SrvSi—PowerDown()Srvlp—ProcessBurst()/*異步的*/Srvlp—PowerDown()RT〇SsleepuntilSrvlp—GetNextTimeSlice()/*阻止*/本申請?zhí)岢隽艘环N新的系統(tǒng),在該系統(tǒng)中,由多個軟件任務(wù)組合使用的單獨硬件塊(20,24)的電源狀態(tài),可以通過禁用單獨硬件塊(20,24)的單獨時鐘信號來獨立控制。在最低的軟件層(設(shè)備驅(qū)動器)(44)中,當(dāng)1)有多個軟件任務(wù)共享相同的硬件資源時;以及2)當(dāng)多個軟件任務(wù)異步使用所述硬件資源(并且需要將其通電)的時候,可以使用參考計數(shù)來確定何時可以為硬件塊通電或斷電。標(biāo)準(zhǔn)的電源控制參考計數(shù)API不但可以在驅(qū)動器層中實施,而且可以在其上的所有軟件層中實施,以使得頂層不必知道哪些硬件塊通過對于中間層的函數(shù)調(diào)用被間接使用。這樣,在多任務(wù)多線程系統(tǒng)中可以節(jié)約電力。此外,由于某全局狀態(tài)不需要被利用受電源控制的硬件塊的所有軟件元件查詢或修改,因此,該系統(tǒng)的架構(gòu)和實施方式可以:故簡化。以下實例是以圖2和6的實施例為基礎(chǔ)的,該實例假設(shè)IP提取主要需要的是使用三個主硬件元件,即調(diào)諧器/解調(diào)器塊、傳輸濾波器塊以及FEC幀控制器塊。軟件架構(gòu)包括處于服務(wù)頂層之上的任務(wù),其中所述服務(wù)處于驅(qū)動器之上。如上所述,每一個硬件塊(20,24)都是由驅(qū)動器(44)控制的。實施電源管理功能的硬件塊(20,24)具有其PowerUp()和PowerDown()函數(shù)對。每一個PowerUp()函數(shù)都會對其被調(diào)用的次數(shù)進行計數(shù),在其首次被調(diào)用時,硬件塊將會通電,并且計數(shù)器使用將會遞增。而針對該PowerUp()的所有后續(xù)調(diào)用將只會遞增該使用計數(shù)器。PowerDown()是以相同的方式工作的,但是它會遞減其使用計數(shù)器,直至該計數(shù)器達到O,這時,硬件(20,24)實際是斷電的。舉個例子,硬件塊及其電源控制功能是如下給出的。調(diào)諧器塊需要在任何其他塊之前被通電。解調(diào)器塊同樣需要在可以提取數(shù)據(jù)之前活動。在本實例中,為了簡化說明,假設(shè)調(diào)諧器和解調(diào)器塊是耦合在一起的。但是,調(diào)諧器和解調(diào)器塊可以具有它們自己的PowerUp()和PowerDown()函數(shù),以便節(jié)約電力。通過使用DrvDemux—PowerUp()和DrvDemux—PowerDown()函數(shù),可以激活或去激活傳輸過濾器時鐘,以便節(jié)約電力。通過使用DrvFec—PowerUp()和DrvFec—PowerDown()函數(shù),可以激活或去激活FEC幀控制器時鐘,以便節(jié)約電力。FEC塊需要傳輸濾波器塊處于活動狀態(tài),以便實際接收數(shù)據(jù),由此DrvFec—PowerUp()及DrvFec—PowerDown()函數(shù)同樣在內(nèi)部分別調(diào)用DrvDemux—PowerUp()和DrvDemux—PowerDown()函數(shù)。如上所述,軟件功能(非特定于硬件的功能)是在使用驅(qū)動器(44)的服務(wù)(42)中實施的。這些服務(wù)(42)也可以具有PowerUp()和PowerDown()函數(shù),這些函數(shù)是由任務(wù)使用這些服務(wù)來調(diào)用的。通常,它們同樣使用一個使用計數(shù)器以及針對驅(qū)動器電源控制函數(shù)的調(diào)用來實施。對與SI提取一起工作的多個IP提取處理來說,借助這種架構(gòu),可容易地實現(xiàn)精密的電源控制。對從一個任務(wù)開始運行的每一個IP濾波提取處理來說,只要其需要特定資源,它就會為所述資源通電,當(dāng)不再需要這些資源時,它會將這些資源斷電,在這里,關(guān)鍵的架構(gòu)點在于每一個IP或SI濾波器都是獨立地被對待的,并且每一個IP或SI濾波器都使用了每一個共享資源的電源控制功能。以下是調(diào)諧器/解調(diào)器、解復(fù)用器以及FEC幀控制器的電源使用實例,其中假設(shè)兩個IP濾波器同時工作并且在某段時間共享硬件資源的情形。圖9描繪的是三個主驅(qū)動器的電源計數(shù)器使用值,并且下面示出的是用于兩個獨立服務(wù)的偽代碼,其中這兩個獨立服務(wù)是同時運行的,并且括號中的值代表每一個驅(qū)動器的電源使用計數(shù)器。<table>tableseeoriginaldocumentpage18</column></row><table>正如將要針對下文中的特定實施例所論述的那樣,在諸如圖2的模塊(16)這樣的設(shè)備中,多個任務(wù)要求被同時執(zhí)行或者至少以重疊的方式4皮執(zhí)行。例如,在圖6之后,如圖10所示,有可能存在多個時間切片器任務(wù),其中每一個時間切片器任務(wù)都會操作相應(yīng)的IP(因特網(wǎng)協(xié)議)接收程。每一個時間切片器任務(wù)可以具有處于使用中的、其自身的相應(yīng)服務(wù)集合(例如調(diào)諧、S/PSI:提取和IP:提取服務(wù)),并且如所示,更為優(yōu)選的是共享相同的服務(wù)集合。但是,不管怎樣,有必要提供某個系統(tǒng),其允許所有任務(wù)在同一時間在模塊(16)內(nèi)部工作。眾所周知,如果實時操作系統(tǒng)可用,那么可以將單獨的任務(wù)映射為相應(yīng)的線程。用于每一個相應(yīng)線程的堆棧都被提供了一個存儲器區(qū)域,并且每一個線程都是以與所有其他線程獨立的方式處理的,其中所述堆棧允許操作系統(tǒng)在模塊(16)中提供資源的時間共享。特別地,該堆棧允許在任何便利時間以優(yōu)先于別的線程的方式脫離某個線程,以及在可能的時候返回該線程。這樣,圖10所示的任務(wù)可以被提供單獨的相應(yīng)線程,即空閑線程、接口處理機、信號鎖定器以及四個時間切片器。遺憾的是,以這種方式來使用線程,會同樣要求使用那些需要存儲器的相應(yīng)堆棧。在使用實時操作系統(tǒng)的大多數(shù)設(shè)備中,其中往往具有足夠的存儲器而使堆棧的需求變得無關(guān)緊要。然而,對那些如為手持式電視接收所考慮的設(shè)備、例如圖2中的模塊(16)來說,可以預(yù)期的是,其在存儲器方面的資源是非常有限的。作為替換,可能的是任務(wù)的所有單獨部分可以組合在一起作為單個的狀態(tài)機。這樣做將不具有相同的存儲器需求,但是其靈活性很低。舉個例子,就需要步驟Al和A2的任務(wù)A以及需要步驟Bl、B2和B3的任務(wù)B而言,可以構(gòu)造一個單獨的狀態(tài)機,其中該狀態(tài)機例如始終按照如下順序運行步驟Al、Bl、B2、A2、B3。應(yīng)該了解的是,這種固定裝置具有非常有限的靈活性,當(dāng)出現(xiàn)非預(yù)期狀況時,這種裝置有可能會很不適合。特別地,一種這樣的非預(yù)期狀況可能是必須在實時制約所規(guī)定的時間范圍中處理的事件。對固定狀態(tài)機來說,在該事件被處理之前的等待時間可直至通過該狀態(tài)機的一個完整循環(huán)。關(guān)于協(xié)同例程的概念同樣是已知的。在協(xié)同例程中的預(yù)定步驟之后,協(xié)同例程會屈讓(yield),由此在返回到第一協(xié)同例程屈讓的點之前允許系統(tǒng)選擇有可能來自別的協(xié)同例程的步驟。這樣,對上文中給出的實例來說,第一協(xié)同例程可以在步驟Al和步驟A2之后用屈服點來構(gòu)造,同樣,協(xié)同例程可以在步驟B1、在步驟B2以及在步驟B3之后用屈服點來構(gòu)造??傮w處理將會以一種已知的方式繼續(xù)進行,例如通過以步驟Al為開始,并且在步驟Al末端的屈服點,檢查來了解是否系統(tǒng)預(yù)備執(zhí)行步驟B1。如果該系統(tǒng)準(zhǔn)備就緒,那么該處理移動到步驟Bl,否則該處理移動到A2。這種裝置提供了某種靈活度,而沒有用于每一個處理的堆棧的存儲器需要。本申請首次提出了一種裝置,在該裝置中,協(xié)同例程是內(nèi)置在單獨線程內(nèi)部的。特別地,具有相同或相似優(yōu)先級的進程(在這里以另外的方式被描述成是任務(wù))可以被安排成單個線程內(nèi)部的協(xié)同例程,由此允的實施例來說,這意味著對數(shù)據(jù)突發(fā)的濾波進行操作的時間切片器任務(wù)全都可以作為單個線程內(nèi)部的協(xié)同例程來工作。因此,對多個時間切片器任務(wù)來說,所需要的僅僅是一個單獨的存儲器堆棧。另一方面,如下所述,如果接口處理機或信號鎖定器有可能需要中斷時間切片器任務(wù),那么這是可以完成的,這是因為它們是以具有相應(yīng)存儲器堆棧的單獨線程來工作的。如果有多個調(diào)諧器可用,那么相似的方法也是可以使用的。在這種情況下,多個接口處理機或信號鎖定器任務(wù)可能經(jīng)由相應(yīng)線程內(nèi)部的協(xié)同例程而共存。由此,在這里可以提供一種系統(tǒng)和優(yōu)先化方法,尤其是在例如使用實時操作系統(tǒng)的數(shù)字電視接收機中優(yōu)先化那些具有時間重要性的例程。對具有關(guān)于所執(zhí)行的任務(wù)子集的硬實時制約的軟件系統(tǒng)來說,該建議都是適用的。在上述模塊(16)以及圖6和IO的處理的上下文中,由優(yōu)選實施例的軟件執(zhí)行的任務(wù)是1)配置和控制調(diào)諧器以及解調(diào)器,調(diào)度時間片和提取SI/PSI表格及IP服務(wù),以及與主機應(yīng)用處理器(12)進行通信。該架構(gòu)的目標(biāo)是可以在優(yōu)化定時、電量消耗以及存儲器使用的同時執(zhí)行所有軟件任務(wù)。假設(shè)圖3的處理器(30)具有足夠電力來執(zhí)行所有軟件任務(wù)。但是,也存在因為所施加的實時制約而需要特殊關(guān)注的特定事件。一個此類事件是信號鎖定丟失中斷。為這種中斷提供的服務(wù)以及自動恢復(fù)過程的啟動應(yīng)該盡可能快地進行,如有必要還會暫停其他活動,因為任何延遲都有可能導(dǎo)致IP分組丟失。這意味著在需要運行信號獲取任務(wù)時,該任務(wù)必須先占任何一個正在處理SI/PSI表或MPE-FEC幀(例如通過執(zhí)行糾錯來提取IP數(shù)據(jù))的任務(wù)。另一方面,與處理MPE-FEC幀和提取IP服務(wù)相比,諸如提取SI/PSI表、執(zhí)行軟件AGC或是向UART發(fā)調(diào)試消息的任務(wù)都具有較小的時間重要性。它們可能必須成為可由IP服務(wù)任務(wù)來先占的。如上所述,在這里設(shè)想的是該存儲器是多個設(shè)備例如DVB-H接收機中的極度稀缺的資源。在某些實施例,可以使用的RAM有可能不超過64kiB。由此,該架構(gòu)應(yīng)該以最小化下列各項為目標(biāo)代碼大??;數(shù)據(jù)大??;以及堆??臻g。如上所述,用于實現(xiàn)實時制約的典型方式是使用實時操作系統(tǒng)(RTOS),以及為每一個軟件任務(wù)(40)指定一個單獨的RTOS先占(pre-emptible)線程和優(yōu)先級。但是,每一個RTOS線程都需要單獨的運行堆棧,這樣做將會提升系統(tǒng)的總的存儲器需求。依照本申請的建議,可以提供一種DVB-H接收機(2),其中該接收機會將軟件任務(wù)指定給下列各項的組合l)RTOS先占線程,用于為具有這些線程的任務(wù)(40)實現(xiàn)實時制約,以及2)用于不具有相對實時優(yōu)先級的任務(wù)(40)的典型協(xié)作式協(xié)同例程。協(xié)同例程的群組是在單個RTOS先占線程內(nèi)部運行的,并且由此將會共享相同的運行堆棧。多任務(wù)是借助協(xié)作式調(diào)度實現(xiàn)的,這意味著每一個任務(wù)(即協(xié)同例程)協(xié)作都會產(chǎn)生隨時間變化的控制,以便允許運行其他任務(wù)(即協(xié)同例程)。這樣,使用RTOS先占線程,使得在實時制約非常重要的時候?qū)崿F(xiàn)實時制約,與此同時,協(xié)作式的協(xié)同例程將會節(jié)約存儲器。參考圖6和10,應(yīng)該指出的是,頂層塊(40)被稱為任務(wù),但是它們也可以被視為線程。在現(xiàn)實中,時間切片器線程運行了若干個協(xié)同例程,其中每一個協(xié)同例程都會執(zhí)行一個相應(yīng)的IP接收任務(wù)。為了限制堆棧空間,系統(tǒng)中的RTOS線程數(shù)量應(yīng)該保持在一個嚴(yán)格的最小值。但是如先前所述,某些任務(wù)應(yīng)該在低定時制約內(nèi)部以異步方式運行。在圖11中顯示了實時任務(wù)調(diào)度的一個實例。雖然在上文中已經(jīng)述及了所涉及的任務(wù),但是在下文中還是給出了關(guān)于每一個任務(wù)的簡要概述。時間切片器任務(wù)是一個控制系統(tǒng)心跳的低優(yōu)先級任務(wù)。對每一個(例如DVB-H)時間片來說,它1)請求調(diào)諧設(shè)備喚醒硬件并且重新獲取信號鎖定,2)等待SI/PSI或IP事件并對其進行處理,3)請求調(diào)諧服務(wù)關(guān)閉硬件,以及4)在下一個時間片之前一直休眠。通過使用本申請的建議,這個線程實際運行了若干個協(xié)同例程。每一個協(xié)同例程都會執(zhí)行如上列舉的接收單個IP服務(wù)的任務(wù),其中允許使用協(xié)作式調(diào)度來處理其他IP服務(wù)。接口處理機是一個處理主機處理器命令的介質(zhì)優(yōu)先級任務(wù),本質(zhì)上它與流處理是異步的。它對接收機狀態(tài)進行管理,并且使用調(diào)諧服務(wù)來實施SCAN和TUNE命令。由于SPI主機接口是一個性能瓶頸,因此,與時間切片器任務(wù)相比,該任務(wù)必須具有更高的優(yōu)先級。21信號鎖定器是一個對信號鎖定丟失事件或是其他任何需要快速處理的事件做出響應(yīng)的高優(yōu)先級任務(wù)。在信號鎖定丟失情況中,它會啟動恢復(fù)過程??臻e任務(wù)是系統(tǒng)中優(yōu)先級最低的任務(wù)。只有在所有其他任務(wù)全都休眠和或等待處理某個事件時,該任務(wù)才會被調(diào)度。其唯一的功能是將處理器(30)設(shè)置在低電源狀態(tài)。圖11描述的是典型的調(diào)度方案,并且論證了RTOS如何幫助構(gòu)造滿足低等待時間定時和功率制約的簡單設(shè)計。部分(a)示出在時間片之間調(diào)度的空閑任務(wù)。該任務(wù)執(zhí)行的唯一處理是將處理器(30)置于低電源狀態(tài)。處理器(30)會在下一個時間片(由時間切片器任務(wù)設(shè)置的定時器)醒來,或者在接收到主機命令(SPI/SDIO中斷)并由接口處理機進行處理的時候醒來部分(b)描述的是實時調(diào)度屬性如何快速使能服務(wù)主機命令,即使在時間切片器處于運行的時候。例如,如果主機在時間切片器處理SI表格時發(fā)送了SEND—STAT—DATA命令,那么在為該請求提供服務(wù)之前,唯一的延遲基本上是上下文切換。部分(c)描述的是多級先占。它顯示了RTOS如何有助于處理幾乎沒有延遲的信號鎖定丟失中斷。上述部分中描述的管理單個IP服務(wù)是足夠簡單的。但是,如圖10所示,接收機將會支持同時接收多達四個IP服務(wù),其中每一個IP服務(wù)都具有自己的delta-t值以及自己的通電周期,該周期可與其他IP服務(wù)的通電周期相重疊。用于實施這種處理的簡單方法是為每一個IP服務(wù)創(chuàng)建一個線程,但是如上所述,可取的是限制存儲器使用。由于不同屬性并不是IP服務(wù)的需求,因此,使用協(xié)作式多任務(wù)。這可以借助狀態(tài)機來實施,但是優(yōu)選實施例使用的是更精致、更易于讀取以及更易于保持的協(xié)同例程。如上所述,協(xié)同例程允許在一個函數(shù)中具有多個退出點,同時保持執(zhí)行狀態(tài),與基于切換的狀態(tài)機相比,這樣做會使控制流更為明確。實際上,協(xié)同例程允許以一種與其他任務(wù)相獨立的方式來實施協(xié)作式任務(wù)。權(quán)利要求1.一種具有多個硬件塊的系統(tǒng),該系統(tǒng)被配置成根據(jù)是否需要使用相應(yīng)的硬件塊來獨立控制至每一個硬件塊的電源。2.根據(jù)權(quán)利要求l的系統(tǒng),包括用于相應(yīng)硬件塊的設(shè)備驅(qū)動器,該系統(tǒng)被配置成支持多個任務(wù),其中每一個任務(wù)都通過與相應(yīng)的設(shè)備驅(qū)動器進行通信而使用了一個或多個硬件塊。3.根據(jù)權(quán)利要求2的系統(tǒng),其中在每一個相應(yīng)設(shè)備驅(qū)動器中實施了計數(shù)器,該計數(shù)器被配置成在多個任務(wù)之一每次請求使用相應(yīng)硬件塊時遞增,以及在多個任務(wù)之一每次停止使用相應(yīng)硬件塊時遞減。4.根據(jù)權(quán)利要求3的系統(tǒng),其中該計數(shù)器被實施為應(yīng)用編程接口。5.根據(jù)權(quán)利要求3或4的系統(tǒng),其中該計數(shù)器提供了一個輸出,以便當(dāng)計數(shù)器指示沒有要求使用相應(yīng)的硬件塊的未完成請求的時候?qū)⑺鱿鄳?yīng)的硬件塊斷電。6.根據(jù)權(quán)利要求5的系統(tǒng),其中該計數(shù)器具有初始值O,并且只有當(dāng)該計數(shù)器具有非零值時,該輸出才能夠使相應(yīng)的硬件塊通電。7.根據(jù)權(quán)利要求5或6的系統(tǒng),還包括硬件時鐘塊,它具有用于該系統(tǒng)的時鐘信號的時鐘輸入,用于接收所述計數(shù)器的相應(yīng)輸出的電源輸入,用于相應(yīng)硬件塊的時鐘輸出,以及多個相應(yīng)的邏輯門,其中每一個相應(yīng)的邏輯門都與時鐘輸入、相應(yīng)的電源輸入以及相應(yīng)的時鐘輸出相連,并且被配置成根據(jù)電源輸入來將時鐘信號有選擇地提供給相應(yīng)的時鐘輸出。8.根據(jù)前述任一權(quán)利要求的系統(tǒng),其中所述多個硬件塊包括定時器、UART、SPI、SDIO、調(diào)諧器、解調(diào)器、濾波器以及MPE-FEC中的至少一個。9.根據(jù)前述任一權(quán)利要求的系統(tǒng),其中該系統(tǒng)是解調(diào)器。10.根據(jù)前述任一權(quán)利要求的系統(tǒng),其中該系統(tǒng)是可互換式模塊。11.根據(jù)前述任一權(quán)利要求的系統(tǒng),其中該系統(tǒng)是集成電路。12.根據(jù)前述任一權(quán)利要求的系統(tǒng),其中該系統(tǒng)是數(shù)字電視接收機。13.根據(jù)前述任一權(quán)利要求的系統(tǒng),其中該系統(tǒng)符合DVB-H標(biāo)準(zhǔn)。14.一種用于操作系統(tǒng)的方法,其中該系統(tǒng)具有多個硬件塊,該方法包括根據(jù)是否需要使用相應(yīng)塊來獨立控制至每一個硬件塊的電源。15.根據(jù)權(quán)利要求14的方法,還包括通過有選擇地禁用相應(yīng)的硬件塊的時鐘來控制單獨的硬件塊的電源。16.根據(jù)權(quán)利要求14或15的方法,還包括使用最低軟件層中的參考計數(shù)來確定何時可以將硬件塊通電或斷電。17.根據(jù)權(quán)利要求14、15或16的方法,還包括為每一個硬件塊提供計數(shù)器;遞增所述計數(shù)器;'''',''在每次接收到停止使用相應(yīng)的硬件塊并且由此將其斷電的請求的時候,遞減該計數(shù)器;以及當(dāng)計數(shù)器指示沒有要求為硬件塊通電的未完成請求的時候,提供將相應(yīng)硬件塊斷電的信號。18.根據(jù)權(quán)利要求17的方法,還包括當(dāng)所述計數(shù)器指示沒有要求將硬件塊通電的未完成請求的時候,將相應(yīng)的^/f牛塊斷電。19.根據(jù)權(quán)利要求17或18的方法,還包括為每一個硬件塊提供設(shè)備驅(qū)動器,以及在相應(yīng)的設(shè)備驅(qū)動器中實施所述計數(shù)器。20.—種計算機程序,該程序包含了程序代碼裝置,當(dāng)在計算機上運行所述程序時,所述程序代碼裝置用于執(zhí)行權(quán)利要求1419中任一權(quán)利要求的所有步驟。21.根據(jù)權(quán)利要求20的計算機程序,其中所述計算機程序作為在設(shè)備驅(qū)動器中使用的應(yīng)用編程接口被實施。22.—種計算機程序產(chǎn)品,其中該產(chǎn)品包含了保存在計算機可讀介質(zhì)上的程序代碼裝置,當(dāng)在計算機上運行所述程序產(chǎn)品時,所述程序代碼裝置用于執(zhí)行權(quán)利要求1419中任一權(quán)利要求的方法。全文摘要本發(fā)明涉及一種具有多個硬件塊的系統(tǒng)以及一種操作該系統(tǒng)的方法,其中通往每一個硬件塊的電源是根據(jù)是否需要使用相應(yīng)硬件塊而被獨立控制的。在每一個硬件塊的相應(yīng)設(shè)備驅(qū)動器中提供了計數(shù)器,該計數(shù)器被配置成在任務(wù)每次請求使用相應(yīng)硬件塊的時候遞增,并且在任務(wù)每次停止使用相應(yīng)硬件塊時遞減。計數(shù)器的值則被用于對將相應(yīng)硬件塊通電還是斷電進行控制。文檔編號G06F1/32GK101495940SQ200780027744公開日2009年7月29日申請日期2007年7月9日優(yōu)先權(quán)日2006年7月21日發(fā)明者J·格拉德,J·霍恩斯比,O·埃爾斯霍赫特,P·阿庫多普洛斯,P·馬里維特,T·阿佩蒙特申請人:索尼服務(wù)中心(歐洲)股份有限公司