專利名稱:在節(jié)省無線適配器功率的同時維持無線網(wǎng)絡(luò)響應(yīng)時間的方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及無線通信技術(shù),更特別地,本發(fā)明涉及一種用于在維持有效無線通信的同時降低無線通信設(shè)備功耗的方法。
背景技術(shù):
隨著無線通信變得更加普遍,許多電子設(shè)備,特別是移動設(shè)備提供用于無線通信的硬件接口。然而,這樣的無線通信硬件常常消耗不成比例的功率量,造成了移動設(shè)備需要頻繁的再充電。例如,當(dāng)使用無線接口時,一些移動設(shè)備的電池壽命可能會減半。通常,為了降低無線通信硬件功耗,已經(jīng)作出了設(shè)法使硬件效率更高或設(shè)法使無線硬件處于全功率狀態(tài)的時間量最小的努力。
無線通信硬件可以使移動設(shè)備能夠以與該設(shè)備通過無線連接通信相同的方式無線地通信。因此,例如電子郵件應(yīng)用程序、web瀏覽器應(yīng)用等等一樣的更高級的通信應(yīng)用能夠使用無線通信,正像它們使用有線通信一樣。然而,設(shè)備驅(qū)動程序和其它與無線通信硬件更直接地接口連接的軟件能夠提供特有的無線功能,以解決無線通信與有線通信之間的差別。在某種程度上,這種特有的無線功能可以是基于被特別設(shè)計以促進(jìn)無線通信的預(yù)定標(biāo)準(zhǔn)的。其它特有的無線功能可以包括監(jiān)控并調(diào)整無線信號強(qiáng)度的能力、提供并使用具體位置信息的能力、和提供節(jié)省功率的能力。
當(dāng)傳送數(shù)據(jù)時,較高級的通信應(yīng)用程序可以向較低級的軟件提供數(shù)據(jù),而不考慮正在使用的是無線通信還是有線通信。然后較低級的軟件可以通過無線連接以最適當(dāng)?shù)膫魉头绞綔?zhǔn)備數(shù)據(jù)。較低級的軟件常常包括多個層。例如,有時被稱為“傳送驅(qū)動程序”或“協(xié)議驅(qū)動程序”的一個層能夠把正在由較高級應(yīng)用程序發(fā)送的數(shù)據(jù)整理為適于特定網(wǎng)絡(luò)傳輸協(xié)議的分組,并能夠如該協(xié)議所要求的把報頭應(yīng)用于這些分組中的每一個。有時被稱為“中間驅(qū)動程序”的另外的層則能夠提供高級設(shè)備驅(qū)動程序功能,例如跨越多個物理接口的分組過濾或負(fù)載平衡。為了在軟件開發(fā)中幫助控制網(wǎng)絡(luò)接口硬件自身,有時被稱為“迷你端口驅(qū)動程序”的另外的層能夠提取公共的功能。這樣的迷你端口驅(qū)動程序能夠提供對特定接口來說公共的功能,這里,特定接口例如是符合特定無線標(biāo)準(zhǔn)的無線接口。該迷你端口驅(qū)動程序與有時被稱為“微端口驅(qū)動程序”的另外的層結(jié)合能夠提供必要的控制指令,物理地控制通信硬件以便傳送由較高級通信應(yīng)用程序發(fā)送的數(shù)據(jù)。
將由較高級通信應(yīng)用程序接收的數(shù)據(jù)可以沿著相似的路徑前進(jìn),反向除外。這樣,朝著較高級通信應(yīng)用程序前進(jìn)的輸入數(shù)據(jù)分組可以由網(wǎng)絡(luò)通信硬件接收,并由迷你端口/微端口驅(qū)動程序組合來檢測。這些數(shù)據(jù)隨后可以傳遞到中間驅(qū)動程序,然后傳遞到傳送驅(qū)動程序,該傳送驅(qū)動程序能夠最終把該數(shù)據(jù)流呈遞給較高級通信應(yīng)用程序。因此,由于特有的硬件功能通常僅僅在迷你端口/微端口驅(qū)動程序?qū)訉崿F(xiàn),降低無線通信硬件功耗的努力通常在這一級實現(xiàn),并且唯一依賴于可在這一級推斷出來的信息。
其它降低無線通信硬件功耗的努力集中在硬件本身。例如,通過產(chǎn)生有效的能夠收聽適當(dāng)?shù)耐ㄐ诺荒馨l(fā)送的“低功率”狀態(tài),從而降低功耗。這兩種方法都具有的一個難點是這兩種方法都沒有從整個通信系統(tǒng)的立場上去設(shè)法使功耗最小化。例如,雖然可以通過使用低功率狀態(tài)來降低無線通信硬件的功耗,但這種狀態(tài)永遠(yuǎn)不如在其中硬件既不發(fā)送信息也不接收信息的休眠狀態(tài)有效。然而,硬件解決辦法自身不能實現(xiàn)這樣的休眠狀態(tài),因為硬件永遠(yuǎn)也不能知道什么時候可能需要接收信息。同樣地,雖然可以通過監(jiān)控能夠起源于最低驅(qū)動程序?qū)拥男畔斫档蜔o線通信硬件的功耗,但這樣的信息通常不提供關(guān)于未來預(yù)期的通信的任何指示,這限制了可以節(jié)省的功耗量。
發(fā)明概述本發(fā)明的實施例允許設(shè)備驅(qū)動程序和其它較低級通信軟件實現(xiàn)調(diào)度,從而控制無線通信硬件,以使硬件不必要的以全功率模式操作的時間量最小。
在一個實施例中,可以在預(yù)定的間隔喚醒無線通信硬件以全功率模式工作,并且也能在期望前一發(fā)送的響應(yīng)時調(diào)度該無線通信硬件以喚醒它。
在另一實施例中,傳送驅(qū)動程序、協(xié)議驅(qū)動程序、或類似的特有協(xié)議軟件能夠提供到迷你端口驅(qū)動程序、或類似的較低級設(shè)備驅(qū)動程序,可使用往返時間來調(diào)度無線通信硬件何時被喚醒。
在另外的實施例中,定時器陣列可用于實現(xiàn)定時器輪,以預(yù)定的時間間隔來跟蹤無線通信硬件被調(diào)度的喚醒周期。
本發(fā)明另外的特征和優(yōu)點將從隨后參考附圖詳細(xì)描述的例證性的實施例中變得明顯。
附圖簡述雖然附帶的權(quán)利要求使用個體特征闡述了本發(fā)明的特征,但是可以從隨后結(jié)合附圖的詳細(xì)描述中最好地理解本發(fā)明連同它的目的和優(yōu)點。附圖如下
圖1是通常圖示本發(fā)明實施例可以在其中實現(xiàn)的典型設(shè)備結(jié)構(gòu)的框圖;圖2是通常圖示可以使用其實現(xiàn)本發(fā)明實施例的典型分層通信系統(tǒng)的框圖;圖3是通常圖示用于根據(jù)本發(fā)明實施例發(fā)送信息的算法的流程圖;圖4是通常圖示用于根據(jù)本發(fā)明實施例設(shè)置定時器索引的算法的流程圖;圖5是通常圖示用于根據(jù)本發(fā)明實施例處理定時器陣列中輸入的算法的流程圖;圖6a至圖6c是通常圖示本發(fā)明實施例的典型實施的時線示意圖。
詳細(xì)描述由于無限制的移動性的好處對移動計算設(shè)備是非常有用的,因此無線通信經(jīng)常由移動計算設(shè)備使用。遺憾的是,移動計算設(shè)備常常最不能提供由無線通信硬件使用的必要功率。此外,由于經(jīng)常使用的移動計算設(shè)備的性質(zhì),減少的無線通信硬件功耗使得移動計算設(shè)備能夠即使在聯(lián)網(wǎng)模式下也能工作較長的一段時間,使得這樣的設(shè)備對用戶更加有用。
雖然以前作出過降低無線通信硬件功耗的嘗試,這樣的嘗試通常僅僅集中無線通信的一方面,例如硬件、或在個體基礎(chǔ)上的設(shè)備驅(qū)動程序。然而,本發(fā)明的實施例尋求通過集中在整個通信系統(tǒng)來降低無線通信硬件的功耗。因此,由較高級的特有協(xié)議軟件確定的往返時間和相似值可以傳遞到較低級設(shè)備驅(qū)動程序,以調(diào)度無線通信硬件可以被喚醒并以全功率狀態(tài)工作的時間。除了這樣的信息之外,規(guī)則地調(diào)度收聽間隔和遞送話務(wù)指示消息(DTIM)間隔也可以用于調(diào)度無線通信硬件可以被喚醒并以全功率狀態(tài)工作的時間。當(dāng)無線通信硬件不處于全功率狀態(tài)時,其可以被置于瞌睡模式,或相似的低功率狀態(tài),在該模式或狀態(tài)期間,僅僅消耗最小的功率,因為硬件通常不能發(fā)送或接收信息。這樣,在保持響應(yīng)連接的同時能夠降低無線通信硬件總的功率消耗,這允許移動設(shè)備用戶更長時間的使用該設(shè)備,而不犧牲通信速度。
雖然不需要,將在由計算設(shè)備正在執(zhí)行的計算機(jī)可執(zhí)行指令,例如程序模塊,的普通環(huán)境下描述本發(fā)明。通常,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例行程序、程序、目標(biāo)、元件、數(shù)據(jù)結(jié)構(gòu)等等。在分布式計算環(huán)境下,任務(wù)可以由通過通信網(wǎng)絡(luò)連接的遠(yuǎn)端處理設(shè)備來執(zhí)行。在分布式計算環(huán)境下,程序模塊可以位于本地的和遠(yuǎn)端的計算機(jī)存儲設(shè)備和/或介質(zhì)上。本領(lǐng)域技術(shù)人員將會理解可以用許多不同的單獨的或者作為分布式計算環(huán)境一部分的計算設(shè)備來實施本發(fā)明,其中,這樣的設(shè)備可以包括手持設(shè)備、多處理器系統(tǒng)、基于微處理器或可編程的用戶電子設(shè)備、網(wǎng)絡(luò)PC、小型計算機(jī)、主計算機(jī)等等。
轉(zhuǎn)到圖1,圖1示出了可以在其上實施本發(fā)明的典型計算設(shè)備100。該計算設(shè)備100僅僅是合適的計算設(shè)備的一個例子,并不旨在建議對本發(fā)明用途或功能范圍的任何限定。此外,計算設(shè)備100不應(yīng)解釋為具有對圖1中圖示的外圍設(shè)備的任何一個或組合的任何依賴或需要。
計算設(shè)備100的部件可以包括,但不局限于,處理單元120、系統(tǒng)存儲器130、把包括系統(tǒng)存儲器的各種系統(tǒng)部件連接到處理單元120的系統(tǒng)總線121。系統(tǒng)總線121可以是若干總線結(jié)構(gòu)類型之一,包括使用多種總線體系結(jié)構(gòu)的存儲器總線或存儲器控制器、外圍總線、和本地總線。為了舉例,而不是限定,這種體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微信道體系結(jié)構(gòu)(MCA)總線、增強(qiáng)型ISA(EISA)總線、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)本地總線、和還被稱為中層總線的外圍部件互聯(lián)(PCI)總線。此外,處理單元120可以包含一個或多個物理處理器。
計算設(shè)備100典型地包括多種計算機(jī)可讀介質(zhì)。計算機(jī)可讀介質(zhì)可以是可由計算設(shè)備100訪問的任何可用的介質(zhì),并包括易失性和非易失性、可以動和不可移動的介質(zhì)。為了舉例,而不是限定,計算機(jī)可讀介質(zhì)可以包括計算機(jī)存儲介質(zhì)和通信介質(zhì)。計算機(jī)存儲介質(zhì)包括以任何一種用于存儲例如計算機(jī)可讀指令、數(shù)據(jù)指令、程序模塊或其它數(shù)據(jù)一樣的信息的方法或技術(shù)實現(xiàn)的易失性和非易失性、可移動和不可移動的介質(zhì)。計算機(jī)存儲介質(zhì)包括,但不局限于RAM、ROM、EEPROM、閃存或其它存儲器技術(shù)、CD-ROM、數(shù)字通用光盤(DVD)或其它光盤存儲器、盒式磁帶、磁帶、磁盤存儲器或其它磁存儲設(shè)備、或任何其它可用于存儲期望信息并能由計算設(shè)備100訪問的介質(zhì)。通信介質(zhì)典型地包括諸如載波、或其他傳輸機(jī)制的調(diào)制的數(shù)據(jù)信號內(nèi)的計算機(jī)可讀指令、數(shù)據(jù)指令、程序模塊,并包括任何信息遞送介質(zhì)。術(shù)語“調(diào)制的數(shù)據(jù)信號”指的是具有一個或多個自己的特征集或以將信息編碼到信號內(nèi)的方式改變的信號。為了舉例,而不是限定,通信介質(zhì)包括例如有線網(wǎng)絡(luò)或直線連接一樣的有線介質(zhì)、和例如聲學(xué)、RF、紅外線和其它無線介質(zhì)一樣的無線介質(zhì)。上述的任意組合也應(yīng)包含在計算機(jī)可讀介質(zhì)的范圍內(nèi)。
系統(tǒng)存儲器130包括例如只讀存儲器(ROM)131和隨機(jī)存取存儲器(RAM)132一樣的易失性和/或非易失性存儲器形式的計算機(jī)存儲介質(zhì)。包括例如在啟動過程中幫助在計算機(jī)110內(nèi)部的元件之間傳送信息的基本例行程序的基本輸入/輸出系統(tǒng)133(BIOS)通常存儲于ROM131中。RAM132典型地包含可立即存取的和/或目前由處理單元120操作的數(shù)據(jù)和/或程序模塊。為了舉例,而不是限定,圖1圖示了操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137。
計算設(shè)備100還可以包括其它的可移動/不可移動、易失性/非易失性的計算機(jī)存儲介質(zhì)。僅僅是為了舉例,而不是限定,圖1圖示了一種從不可移動的非易失性磁介質(zhì)讀取數(shù)據(jù)或把數(shù)據(jù)寫到該磁介質(zhì)的硬盤驅(qū)動器141、從可移動的非易失性磁盤152讀取數(shù)據(jù)或把數(shù)據(jù)寫到該磁盤152的磁盤驅(qū)動器151、和從例如CD-ROM或其它光學(xué)介質(zhì)一樣的可移動的非易失性光盤156讀取數(shù)據(jù)或把數(shù)據(jù)寫到該光盤156的光盤驅(qū)動器155??捎糜谠摰湫筒僮鳝h(huán)境中的其它可移動/不可移動、易失性/非易失性的計算機(jī)存儲介質(zhì)包括,但不局限于,盒式磁帶、閃存卡、數(shù)字通用盤、數(shù)字視頻帶、固態(tài)RAM、固態(tài)ROM等等。硬盤驅(qū)動器141典型地通過例如接口140一樣的不可移動存儲器接口連接到系統(tǒng)總線121,磁盤驅(qū)動器151和光盤驅(qū)動器155典型地通過例如接口150一樣的可移動存儲器接口連接到系統(tǒng)總線121。
上述討論的及圖1中圖示的驅(qū)動器與它們相關(guān)聯(lián)的計算機(jī)存儲介質(zhì)為計算設(shè)備100提供計算機(jī)可讀指令、數(shù)據(jù)指令、程序模塊和其它數(shù)據(jù)的存儲。在圖1中,例如,硬盤驅(qū)動器141被圖示為存儲操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146、和程序數(shù)據(jù)147。要指出的是這些部件可以與操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137相同或不同。在這里,給出不同的標(biāo)號來圖示操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146、和程序數(shù)據(jù)147,這樣,它們至少是不同的樣本。
用戶可以通過例如鍵盤162和通常稱為鼠標(biāo)、跟蹤球或觸墊的定點設(shè)備161一樣的輸入設(shè)備把命令或信息輸入進(jìn)計算設(shè)備100。其它的輸入設(shè)備(未示出)可以包括麥克風(fēng)、游戲桿、游戲板、衛(wèi)星反射器、掃描儀或類似輸入設(shè)備。這些及其它的輸入設(shè)備可以通過耦合到系統(tǒng)總線的用戶輸入接口160連接到處理單元120,或者可以通過例如并行端口、游戲端口或通用串行總線(USB)一樣的其它接口和總線結(jié)構(gòu)連接。監(jiān)視器191或其它類型的顯示設(shè)備經(jīng)由例如視頻接口190一樣的接口也連接到系統(tǒng)總線121。除了該監(jiān)視器之外,計算機(jī)還可以包括其它外圍輸出設(shè)備,例如,可以通過輸出外圍接口195連接的揚聲器197和打印機(jī)196。
計算設(shè)備100可以使用到一個或多個遠(yuǎn)端計算機(jī)的邏輯連接在聯(lián)網(wǎng)環(huán)境下運行。圖1圖示了到遠(yuǎn)端計算設(shè)備180的無線網(wǎng)絡(luò)連接175。無線網(wǎng)絡(luò)連接175可以是各種不同類型的無線網(wǎng)絡(luò)和無線網(wǎng)絡(luò)連接中的任意一種,各種不同類型的無線網(wǎng)絡(luò)和無線網(wǎng)絡(luò)連接包括無線局域網(wǎng)(WLAN)、廣域網(wǎng)(WAN)、符合以太網(wǎng)協(xié)議的網(wǎng)絡(luò)、或包括互聯(lián)網(wǎng)或萬維網(wǎng)的單元的其它邏輯的或物理的無線網(wǎng)絡(luò)。相似地,遠(yuǎn)端計算設(shè)備180可以是與計算設(shè)備100相似的另一計算設(shè)備,或者它可以是無線基站或其它無線接入點,其可以包括上面描述的計算設(shè)備100的部分或所有單元。
當(dāng)在聯(lián)網(wǎng)環(huán)境下使用時。計算設(shè)備100通過例如無線網(wǎng)絡(luò)接口170和無線硬件171一樣的網(wǎng)絡(luò)接口或適配器連接到無線連接175。無線網(wǎng)絡(luò)接口170可以是包括設(shè)備驅(qū)動程序、協(xié)議堆棧等等的軟件部分與應(yīng)用程序的任何集合。無線網(wǎng)絡(luò)接口還可以實現(xiàn)分層的軟件體系結(jié)構(gòu),例如下面詳細(xì)描述的一個。無線硬件171可以是孤立的單元或者可以集成進(jìn)計算設(shè)備100,例如符合許多協(xié)議中任意一個的擴(kuò)充插件卡。在聯(lián)網(wǎng)環(huán)境下,描述的關(guān)于計算設(shè)備100的程序模塊、或它的一部分可以存儲在遠(yuǎn)端的存儲器存儲設(shè)備中。將會理解示出的網(wǎng)絡(luò)連接是典型的,可以使用其它在計算機(jī)之間建立通信鏈路的其它方式。
在隨后的描述中,除非另外指出,將參考由一個或多個計算設(shè)備執(zhí)行的動作和操作的符號表示來描述本發(fā)明。這樣,應(yīng)當(dāng)理解的是,有時被稱為正在由計算機(jī)執(zhí)行的這樣的動作與操作包括由計算設(shè)備的處理單元對以結(jié)構(gòu)形式表示數(shù)據(jù)的電子信號的處理。這個處理轉(zhuǎn)換該數(shù)據(jù)或者在計算設(shè)備的存儲器系統(tǒng)中的位置上保存該數(shù)據(jù),其重配置或者另外以本領(lǐng)域普通技術(shù)人員容易理解的方式改變計算設(shè)備操作。數(shù)據(jù)保存在哪里的數(shù)據(jù)結(jié)構(gòu)是具有由數(shù)據(jù)格式定義的特性的存儲器的物理位置。然而,雖然在上面的環(huán)境下描述本發(fā)明,但這不意味著限制如本領(lǐng)域普通技術(shù)人員將會理解的下文中描述的各種動作與操作也可以以硬件實施。
轉(zhuǎn)到圖2,圖2中示出了圖示本發(fā)明實施例考慮的一個通信結(jié)構(gòu)的分層示意圖。在通信結(jié)構(gòu)200的頂層是通信應(yīng)用程序205,其可以是正在無線網(wǎng)絡(luò)175上傳送的數(shù)據(jù)的最終用戶和產(chǎn)生者。這樣,大多數(shù)的數(shù)據(jù)發(fā)送將由通信應(yīng)用程序205發(fā)起,且大多數(shù)的數(shù)據(jù)接收將在通信應(yīng)用程序205終止。因此,在通信體系結(jié)構(gòu)200的頂部圖示。通信應(yīng)用程序205可以包括web瀏覽器、電子郵件客戶程序、網(wǎng)絡(luò)公用程序、或類似的依靠或可以利用網(wǎng)絡(luò)通信的應(yīng)用程序。
在通信結(jié)構(gòu)200中,在通信應(yīng)用程序205下面的層可以是傳送驅(qū)動程序210。在一些通信結(jié)構(gòu)中,傳送驅(qū)動程序在與協(xié)議驅(qū)動程序一樣的層中被概念化,而在其它的結(jié)構(gòu)中可能分離為這兩個。通常,傳送和/或協(xié)議驅(qū)動程序210可以實現(xiàn)協(xié)議堆棧,例如,舉例來說,無所不在的傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)堆棧、或網(wǎng)間分組交換/序列分組交換(IPX/SPX)堆棧。傳送驅(qū)動程序和協(xié)議驅(qū)動程序能夠分配分組、使用合適的分組報頭信息、把數(shù)據(jù)從發(fā)送應(yīng)用拷貝到分組、并把數(shù)據(jù)發(fā)送到較低層。傳送驅(qū)動程序和協(xié)議驅(qū)動程序還可以提供接口,以從下一次較低層的驅(qū)動程序接收輸入分組,并把接收的數(shù)據(jù)傳送到合適的客戶應(yīng)用程序。
在通信結(jié)構(gòu)200中,在傳送驅(qū)動程序和協(xié)議驅(qū)動程序210下面可以是中間驅(qū)動程序215。中間驅(qū)動程序可以提供高層設(shè)備驅(qū)動程序功能,其可以包括在不同網(wǎng)絡(luò)媒介之間的轉(zhuǎn)換、過濾分組、并平衡跨越不止一個網(wǎng)絡(luò)接口的分組發(fā)送。例如,中間驅(qū)動程序可以允許通信應(yīng)用程序205在層210中使用兼容的協(xié)議,然后能夠把由層210產(chǎn)生的分組轉(zhuǎn)換為適于在計算設(shè)備100實際連接到的特定網(wǎng)絡(luò)上發(fā)送的分組,即使那個網(wǎng)絡(luò)使用不同的協(xié)議。同樣,中間驅(qū)動程序例如通過執(zhí)行分組調(diào)度功能可以過濾分組。分組調(diào)度程序可以讀取分組中的優(yōu)先權(quán)信息,然后能夠基于分組的優(yōu)先權(quán)調(diào)度用于發(fā)送或接收的每個分組。
如圖2所示,中間驅(qū)動程序215可以與迷你端口驅(qū)動程序220交換數(shù)據(jù)。
迷你端口驅(qū)動程序220可以,或者通過他們自身或與微端口驅(qū)動程序221相結(jié)合,擔(dān)當(dāng)通信結(jié)構(gòu)200的最低軟件層。在一些結(jié)構(gòu)中,迷你端口驅(qū)動程序?qū)崿F(xiàn)例如無線通信硬件171一樣的物理聯(lián)網(wǎng)硬件所需要的所有特定的硬件功能。在一些結(jié)構(gòu)中,迷你端口驅(qū)動程序可以提取一些設(shè)備特有的功能,而不是集中在例如所有無線通信設(shè)備一樣的特定類型的通信設(shè)備所共有的功能。在這種情況下,微端口221可以提供設(shè)備特有的功能,以控制特定設(shè)備。為了簡單的目的,圖2的通信結(jié)構(gòu)200把迷你端口驅(qū)動程序220和微端口驅(qū)動程序221圖示為能提供特有的設(shè)備控制的單一層。由迷你端口220或者由迷你端口220與微端口221結(jié)合所提供的功能可以包括把分組轉(zhuǎn)遞到無線通信硬件171以用于發(fā)送、恢復(fù)從無線通信硬件接收的分組、處理中斷、和相似的硬件控制操作。
與上面的通信結(jié)構(gòu)200相似的一個標(biāo)準(zhǔn)化通信結(jié)構(gòu)被稱為網(wǎng)絡(luò)驅(qū)動程序接口規(guī)范(NDIS)。本領(lǐng)域普通技術(shù)人員將會知道,NDIS定義了在圖2中圖示的各個層之間的路徑。這樣,例如,NDIS定義中間驅(qū)動程序可以提供支持以標(biāo)準(zhǔn)化呼叫以致使用那些呼叫的傳送驅(qū)動驅(qū)動程序?qū)⒛軌蚶弥虚g驅(qū)動程序的功能性的功能。
本發(fā)明實施例考慮的一個迷你端口驅(qū)動程序220為無線通信硬件171提供功率節(jié)省調(diào)度。這樣的調(diào)度可以使得無線通信硬件能夠僅僅在預(yù)定的間隔期間保持喚醒模式,并另外允許無線通信硬件以瞌睡模式操作以節(jié)省功率。雖然單獨的無線硬件設(shè)備可以實現(xiàn)不同的功率模式,如本發(fā)明實施例所考慮的喚醒模式可以指的是在其中無線硬件設(shè)備可以發(fā)送和/或接收信息的該設(shè)備的任何功率模式。這樣,例如,一些無線硬件設(shè)備只可以實現(xiàn)幾個功率模式,且喚醒模式可以僅僅是全功率模式。然而,其它無線硬件設(shè)備可以實現(xiàn)不同功率模式的連續(xù)區(qū),且喚醒模式可以不必處于全功率模式,而也可以是任何低功率模式—如果這樣的低功率模式對可靠地發(fā)送和接收信息是足夠的。同樣,如本發(fā)明實施例所考慮的瞌睡模式可以指的是在其中無線硬件設(shè)備通過關(guān)閉或者另外中止它發(fā)送和/或接收信息的能力但仍保留以有效方式恢復(fù)發(fā)送或接收的能力來節(jié)省功率的該設(shè)備的任何功率模式。這樣,例如,一些無線硬件設(shè)備僅僅可以實現(xiàn)幾個功率模式,且瞌睡模式可以僅僅是無功率模式。然而,其它無線硬件設(shè)備可以實現(xiàn)不同功率模式的連續(xù)區(qū),且瞌睡模式可以不必處于無功率模式,而可以是設(shè)計的通過中止該設(shè)備發(fā)送與接收信息的能力來節(jié)省功率的任何功率模式。
對于實現(xiàn)不同功率模式的連續(xù)區(qū)的設(shè)備來說,在各種低功率模式之間的一個區(qū)別可能是設(shè)備能夠恢復(fù)到全功率模式的速率。在這種情況下,本發(fā)明實施例打算使用允許設(shè)備盡可能快地恢復(fù)到全功率模式的功率節(jié)省模式。然而,如上面所指出的,如這里使用的瞌睡模式可以指的是任何在其中無線硬件設(shè)備通過中止它發(fā)送和/或接收信息的能力來節(jié)省功率的該設(shè)備的模式。
為了給迷你端口驅(qū)動程序220提供能夠用于為無線通信硬件171實現(xiàn)有效調(diào)度的信息,本發(fā)明的一個實施例打算例如往返時間一樣的信息可以由協(xié)議和/或傳送驅(qū)動程序210或相似的較高級的通信軟件來確定,并可以傳遞到迷你端口驅(qū)動程序220。如果往返時間和相似的信息是不可用的,則可以使用默認(rèn)值。默認(rèn)值可以進(jìn)一步被配置,使由迷你端口驅(qū)動程序220實現(xiàn)的調(diào)度能夠適合該調(diào)度對通信性能的觀測影響。
信息可以借助于任何已知的消息傳遞算法從協(xié)議和/或傳送驅(qū)動程序210傳遞到迷你端口驅(qū)動程序220。例如,標(biāo)準(zhǔn)化NDIS結(jié)構(gòu)可以擴(kuò)充到提供用于把例如往返時間一樣的調(diào)度信息從協(xié)議和/或傳動驅(qū)動程序210傳遞到迷你端口驅(qū)動程序220的特有接口。在無線通信硬件171和迷你端口驅(qū)動程序220在其中使用已知的IEEE802.11無線通信標(biāo)準(zhǔn)工作的系統(tǒng)中,調(diào)度信息可以作為帶有每個發(fā)送的MAC業(yè)務(wù)數(shù)據(jù)單元(MSDU)的帶外數(shù)據(jù)(OOB)被傳遞到迷你端口驅(qū)動程序。
如上述所指出的,調(diào)度信息可以由迷你端口驅(qū)動程序220使用來實現(xiàn)用于無線通信硬件171的功率節(jié)省調(diào)度。本發(fā)明實施例考慮的一個功率節(jié)省調(diào)度要求在預(yù)定間隔喚醒無線通信硬件以接收DTIM消息。如本領(lǐng)域普通技術(shù)人員將會知道的,DTIM消息能夠為無線通信硬件171提供廣播或組播消息正在例如無線基站一樣的接入點等待它的指示。DTIM消息之間的間隔例如可以通過在無線通信硬件171與和該硬件171通信的無線接入點之間的接續(xù)過程來確定。作為選擇,DTIM間隔可以由用戶手工來確定,或者可以是預(yù)定的默認(rèn)值。DTIM間隔也可以改變以適應(yīng)無線網(wǎng)絡(luò)中的變化。為了準(zhǔn)備功率節(jié)省調(diào)度,迷你端口驅(qū)動程序220可以使用例如下面詳細(xì)描述的一樣的功能,以指定喚醒無線通信硬件171的未來時間并提供喚醒硬件171的原因是接收DTIM消息的指示。
以與上面描述的相似方式,本發(fā)明實施例考慮的另外的功率節(jié)省調(diào)度要求在預(yù)定間隔喚醒無線通信硬件以使用無線通信硬件171來接收可能是特別呈送到計算設(shè)備100的消息。本領(lǐng)域普通技術(shù)人員將會知道,這樣的預(yù)定間隔可以稱為“收聽間隔”。與DTIM間隔一樣,收聽間隔例如可以通過在無線通信硬件171與和該硬件171通信的無線接入點之間的接續(xù)過程來確定。同樣,收聽間隔可以由用戶手工確定,或者它可以是預(yù)定的默認(rèn)值,或者它可以改變以適應(yīng)無線網(wǎng)絡(luò)中的變化。為了準(zhǔn)備功率節(jié)省調(diào)度,迷你端口驅(qū)動程序220可以使用例如下面詳細(xì)描述的一樣的功能,以指定喚醒無線通信硬件171的未來時間并提供喚醒硬件171的原因是由于收聽間隔的指示。
雖然在例如上面描述的DTIM和收聽間隔一樣的重新出現(xiàn)的間隔喚醒無線通信硬件能夠提供功率節(jié)省的措施,本發(fā)明實施例考慮的另外的功率節(jié)省調(diào)度要求及時喚醒無線通信硬件以接收對以前發(fā)送數(shù)據(jù)的期望響應(yīng)。如上面所指出的,例如往返時間一樣的信息可以由協(xié)議和/或傳送驅(qū)動程序210或相似的較高級的通信軟件來確定,并能夠傳遞到迷你端口驅(qū)動程序220。然后例如,舉例來說,通過在往返時間的部分持續(xù)時間內(nèi)把無線通信硬件置于瞌睡模式,這樣的信息可以用于設(shè)置功率節(jié)省調(diào)度。
轉(zhuǎn)到圖3,圖3示出通常圖示本發(fā)明實施例考慮的用于設(shè)定功率節(jié)省調(diào)度的算法300。雖然隨后的描述將參考迷你端口驅(qū)動程序220對算法300的實施,但其它軟件驅(qū)動程序,包括不符合通信結(jié)構(gòu)200的驅(qū)動程序,同樣可以實施算法300。
如所指出的,當(dāng)具有將由無線通信硬件171發(fā)送的接收數(shù)據(jù)的迷你端口驅(qū)動程序220能夠調(diào)度MSDU的發(fā)送時,算法300可以在步驟305開始。本領(lǐng)域普通技術(shù)人員將會知道,MSDU可以是一系列的一個或多個MAC協(xié)議數(shù)據(jù)單元(MPDU)。然后,無線通信硬件171能夠在該調(diào)度時間嘗試發(fā)送該MSDU。如在步驟310中所示的,迷你端口驅(qū)動程序220可以等待來自無線通信硬件171的能夠指示MSDU發(fā)送狀態(tài)的響應(yīng)。如果在步驟315無線通信硬件171指示發(fā)送沒有成功,則執(zhí)行可以跳到步驟325,其能夠指示至少一個MSDU保持將要被發(fā)送,且執(zhí)行可以返回到步驟305,以嘗試再次發(fā)送MSDU。然而,如果在步驟315,無線通信硬件171指示發(fā)送成功,則迷你端口驅(qū)動程序220可以例如基于與MSDU相關(guān)聯(lián)的往返時間來為硬件171調(diào)度下一次喚醒時間。
如上述所解釋的,例如往返時間一樣的信息可以作為連同MSDU的OOB從傳送/協(xié)議驅(qū)動程序210傳遞到迷你端口驅(qū)動程序220。這樣的信息可以由迷你端口驅(qū)動程序220使用來調(diào)度下一次喚醒時間。例如,如果指示往返時間是100毫秒,則迷你端口驅(qū)動程序220可以在100毫秒內(nèi)調(diào)度下一次喚醒時間,以便當(dāng)對當(dāng)前發(fā)送的MSDU的響應(yīng)到達(dá)時可以喚醒無線通信硬件171。作為選擇,除了簡單的往返信息以外的信息可以傳遞到迷你端口驅(qū)動程序220,以在建立功率節(jié)省調(diào)度中使用。例如,網(wǎng)絡(luò)阻塞、硬件狀態(tài)及類似信息的指示也能夠用于設(shè)置下一次喚醒時間或用于基于往返時間調(diào)整下一次喚醒時間。
迷你端口驅(qū)動程序220可以通過例如下面描述的把調(diào)度信息輸入進(jìn)定時器陣列或相似的結(jié)構(gòu)的功能來調(diào)度下一次喚醒時間。一旦迷你端口驅(qū)動程序220完成了下一次喚醒時間的調(diào)度,如在步驟320所指出的,迷你端口驅(qū)動程序能夠在步驟325檢查是否存在任何需要發(fā)送的另外的MSDU。如果存在另外的要發(fā)送的MSDU,執(zhí)行可以返回到步驟305,并且迷你端口驅(qū)動程序220可以嘗試以描述的方式發(fā)送隨后的MSDU。然而,如果不存在另外的用于發(fā)送的MSDU,如在步驟330所指出的,迷你端口驅(qū)動程序220可以把無線通信硬件171設(shè)置為瞌睡模式。
轉(zhuǎn)到圖4,圖4示出本發(fā)明實施例考慮的用于調(diào)度下一次喚醒時間的算法400。算法400可以運行以確定在定時器陣列中的合適輸入,并把信息存儲進(jìn)那個輸入,例如通過使用下面進(jìn)一步詳述的機(jī)制,該輸入可用于喚醒無線通信硬件171。本領(lǐng)域普通技術(shù)人員將會知道,定時器陣列可以是陣列數(shù)據(jù)結(jié)構(gòu),在那里,以預(yù)定的時間間隔從該陣列讀取每一條隨后的輸入。因此,打算在定義的時間間隔之后被訪問的信息可以存儲在該陣列內(nèi)離當(dāng)前輸入足夠遠(yuǎn)的特定陣列輸入中。本領(lǐng)域普通技術(shù)人員還將知道,定時器陣列不是無限的。一旦達(dá)到陣列的末端,讀取的下一條輸入通常是第一條輸入,這能夠允許在延長的一段時間周期使用該陣列。然而,由于訪問輸入的順序最終返回到它自身,因此定時器陣列只能調(diào)度在某個時間幀內(nèi)的事件,且直到較遲的時間才能調(diào)度更遠(yuǎn)的事件。
算法400提供迷你端口驅(qū)動程序220或其它軟件能夠把功率節(jié)省調(diào)度信息輸入進(jìn)定時器陣列的機(jī)制。初始步驟405能夠確定“定時器值”,其可以是考慮到安全界限通過上面描述的方法之一確定的下一次喚醒時間。因為在無線通信硬件已經(jīng)接收了信息之后喚醒該硬件通常是沒有用的,可以在預(yù)期的事件之前功率節(jié)省調(diào)度信息嘗試喚醒硬件。此外,由于確定在執(zhí)行調(diào)度過程中過去的精確時間量是不實際的,安全界限可用于解決任何此種的時間差異。例如,如果指示往返時間是100毫秒,則使用上面描述的方法可確定下一次喚醒時間離無線通信硬件發(fā)送分組時的時間是100毫秒。然而,用于設(shè)置下一次喚醒時間的算法,例如,算法400,可能需要10到15毫秒來執(zhí)行。因此,如果在完成調(diào)度算法之后100毫秒喚醒無線通信硬件,則喚醒很可能會延遲10-15毫秒,且很可能會錯過期望的響應(yīng)。
為了避免監(jiān)控在執(zhí)行調(diào)度過程中過去的精確時間量,在步驟405確定的定時器值可以包括合適的安全界限。例如,同上,如果指示下一次喚醒時間是100毫秒,且調(diào)度算法可能需要10-15毫秒來執(zhí)行,則可以使用20毫秒的安全界限。因此,假定下一次喚醒時間是100毫秒,則定時器值可以確定為離當(dāng)前80毫秒。包括用于執(zhí)行各種算法的時間,無線通信硬件很可能會在發(fā)送分組之后90到95毫秒被喚醒,允許它接收將預(yù)期在最初發(fā)送之后100毫秒到達(dá)的響應(yīng)。
一旦在步驟405例如通過使用上面描述的方法確定了定時器值,則可以證實確定的定時器值在定時器陣列的范圍之內(nèi)。這樣,在步驟410,定時器值可以在時間上與定時器陣列的長度相比較。如果定時器值在時間上超過定時器陣列的長度,則該定時器陣列不能在該定時器值調(diào)度事件,且該算法在步驟450結(jié)束。然而,如果定時器值在時間上小于定時器陣列的長度,則在步驟415可以量化該定時器值,以適于定時器陣列。
本領(lǐng)域技術(shù)人員將會理解,由于定時器陣列不是無限的,因此它只能提供離散-與連續(xù)相反-的時間測量。因此,使用定時器輪的間隔來量化將要調(diào)度的任何事件可能是必要的。因為如上所指出的,在無線通信硬件已經(jīng)接收信息之后喚醒該硬件通常是沒有用的,在步驟415,定時器索引的量化可以確保在調(diào)度時間隨后的時間期間不被調(diào)度。例如,如果用25毫秒的間隔來實施定時器陣列,且同上,定時器值是80毫秒,則量化的定時器值可以是75毫秒,因為那將是在定時器值80毫秒之前由最后一個陣列輸入所表示的時間。
一旦在步驟415獲得量化的定時器值,則可以在步驟420確定定時器索引。如上所指出的,定時器值表示從當(dāng)前時間起事件被調(diào)度的持續(xù)時間。這樣,在上述的例子中,80毫秒的定時器值表示從當(dāng)前時間起的80毫秒中將調(diào)度事件。因此,為了確定定時器索引,量化的定時器值可以轉(zhuǎn)換為適當(dāng)?shù)乃饕?,并能增加到?dāng)前時間索引。例如,如果用25毫秒的間隔實施定時器陣列,且同上,量化的定時器值是75毫秒,則量化的定時器值可以表示為從當(dāng)前時間起的3條輸入(或75毫秒)。如果當(dāng)前時間索引,或正在處理的當(dāng)前陣列輸入是陣列輸入64,那么如在步驟420所計算的,該定時器索引可以是64+3或67。
本領(lǐng)域技術(shù)人員將會理解,可以通過使用DIV函數(shù)以有效方式一起執(zhí)行步驟415和420。特別地是,定時器值可以使用DIV函數(shù)由定時器陣列的間隔來劃分,并且然后能增加到當(dāng)前時間索引,以計算時間索引。使用上述的例子,使用DIV函數(shù)由25毫秒把80毫秒的定時器值劃分,得到值3,然后,值3可以增加到當(dāng)前時間索引64,來計算定時器索引67。
一旦在步驟420確定了定時器索引,步驟425可以保證確定的定時器值不大于定時器陣列的上界。如果定時器索引小于定時器陣列的上界,則在步驟435可以在那個定時器索引存儲合適的信息,這將在下面詳細(xì)描述。然而,如果定時器索引大于定時器陣列的上界,則步驟430能夠適當(dāng)?shù)卣{(diào)整該定時器索引。特別地是,如上面描述的,以循環(huán)方式處理定時器陣列,這樣在處理了定時器陣列的最后一條輸入之后,返回處理第一條輸入。因此,定時器陣列代表一個連續(xù)移動的時間窗口,與靜態(tài)的延遲時間相反。為了解決這樣的循環(huán)處理,可以調(diào)整具有比定時器陣列中最大索引值更大的絕對值的定時器索引,以便在正確的時間處理該定時器索引。例如,如果定時器陣列包含100個元素,由索引編號為0到99,且索引99當(dāng)前正在被處理,則下一個要處理的索引是0。
可以在步驟430用于調(diào)整定時器索引的一個簡單機(jī)制是熟知的MOD函數(shù),其可以返回除法運算的余數(shù)。特別地是,可以使用MOD函數(shù)由定時器陣列的長度來除在步驟420確定的定時器索引結(jié)果可以是調(diào)整的定時器索引。例如,同上,如果定時器陣列具有100個元素,且定時器索引是102,那么使用MOD函數(shù)執(zhí)行除法,得到的結(jié)果是2,其可以作為調(diào)整的定時器索引。如果索引輸入99當(dāng)前正在被處理,調(diào)整的定時器索引2表示調(diào)度的事件將在3個定時器陣列輸入內(nèi)被處理,即,在完成索引輸入99的處理之后,將在處理調(diào)整的索引輸入3之前處理索引輸入0和1。這樣,在當(dāng)前時間索引99和定時器索引102之間的距離與在當(dāng)前時間索引99與調(diào)整的定時器索引2之間的距離相等。
一旦在步驟430調(diào)整了定時器索引,如果有必要,在步驟435調(diào)度信息可以輸入進(jìn)合適的定時器索引。如上所述,可以存在許多類型的調(diào)度的喚醒事件。例如,DTIM喚醒事件、收聽間隔喚醒事件、和期望響應(yīng)喚醒時間都可以使用上面描述的算法來調(diào)度。除了事件類型的指示之外,適當(dāng)?shù)亩〞r器索引也可以指示在由該索引代表的時間期間將喚醒無線通信硬件。這樣的指示僅僅需要單一的比特,其中0可以指示無線通信硬件可以保持瞌睡模式,且1可以指示該硬件可以處于喚醒狀態(tài)。
本領(lǐng)域普通技術(shù)人員將會認(rèn)識到,定時器陣列可以由迷你端口驅(qū)動程序220或其它較低級的通信軟件來維持,并可以以該陣列的長度在時間上大于例如DTIM間隔或收聽間隔一樣的再發(fā)生間隔的方式來實現(xiàn)。到了這種間隔可能改變的程度,能夠同樣動態(tài)地修改定時器陣列以適應(yīng)該改變的間隔。
轉(zhuǎn)到圖5,圖5示出圖示本發(fā)明實施例所考慮的在定時器陣列中每一個輸入的處理的算法500。最初,在步驟505,當(dāng)前陣列輸入值可以加1,以移動到下一個陣列輸入處理。因為如上所解釋的,當(dāng)達(dá)到陣列的末端時,定時器陣列可以返回,步驟510可以檢查以確定是否增加的陣列輸入值超出了陣列長度并應(yīng)該被復(fù)位到該陣列的開頭。如果確實是這樣,則步驟510可以以上面描述的方式使用MOD函數(shù)執(zhí)行除法,以把增加的陣列輸入復(fù)位到該定時器陣列的開頭。
在確定了合適的陣列輸入之后,算法500在步驟515能夠例如通過檢查喚醒比特或標(biāo)記來確定是否認(rèn)為要喚醒無線通信硬件。如果不需要喚醒無線通信硬件,則執(zhí)行可以跳到步驟550,步驟550將在以下更詳細(xì)地描述。然而,如果在當(dāng)前陣列輸入的喚醒比特或標(biāo)記指示不需要喚醒無線通信硬件,那么算法500可以在步驟520檢查該硬件是否已經(jīng)是喚醒的。如果無線通信硬件處于瞌睡模式,并需要被置于喚醒模式,則能夠在步驟525喚醒該硬件。否則,執(zhí)行可以繼續(xù)到步驟530。
一旦無線通信硬件是喚醒的,算法500能夠確定是否需要任何進(jìn)一步的調(diào)度。如上所解釋的,無線通信硬件可以被喚醒有至少三個不同的原因。如果由于指示應(yīng)該接收期望響應(yīng)的例如往返時間一樣的信息而喚醒無線通信硬件,那么可能沒有任何進(jìn)一步的調(diào)度,且該硬件可以簡單地保持喚醒,直到期望響應(yīng)被接收,或直到它被置于瞌睡模式。然而,如果由于需要檢查DTIM消息或由于收聽間隔而喚醒無線通信硬件,由于兩者都可以是以預(yù)定間隔再發(fā)生的事件,那么算法500也可以調(diào)度下一個DTIM消息檢查或下一個收聽間隔。
因此,在步驟530可以執(zhí)行檢查以確定把無線通信硬件置于喚醒模式的指示是否是由于DTIM間隔的終止??梢酝ㄟ^檢查喚醒字段或與當(dāng)前定時器陣列輸入結(jié)合保存的相似的信息存儲來作出這樣的檢查,該字段或類似信息可以指示喚醒是否是由于DTIM間隔、收聽間隔、期望響應(yīng)、或一些其它原因而被調(diào)度。如果確定是由于DTIM間隔的終止而調(diào)度喚醒,則步驟535能夠使用例如圖4中圖示的并在上面詳細(xì)描述的調(diào)度算法基于DTIM間隔來調(diào)度隨后的DTIM喚醒。如果步驟530確定喚醒不是由于DTIM間隔的終止,則執(zhí)行可以前進(jìn)到步驟540,其可以檢查是否喚醒是由于收聽間隔的終止。如果確定喚醒被調(diào)度是由于收聽間隔的終止,則步驟545可以使用例如圖4中圖示的并在上面詳細(xì)描述的調(diào)度算法基于收聽間隔來調(diào)度隨后的收聽間隔喚醒。
如果在步驟540確定喚醒不是由于收聽間隔的終止,則執(zhí)行可以前進(jìn)到步驟550,其可以檢查可能需要發(fā)送的任何剩余的MSDU,包括由圖3中圖示的算法描述的并在上面詳細(xì)描述的發(fā)送。如果任何剩余的MSDU確實需要被發(fā)送,則算法500可以在步驟555等待它們的發(fā)送。然而,如果沒有要發(fā)送的剩余MSDU,則在步驟560無線通信硬件可以被置于瞌睡模式,并且執(zhí)行可以返回到步驟505,以處理隨后的定時器陣列輸入。
轉(zhuǎn)到圖6a,參照時間線610圖示了上面描述算法的典型操作。像上面詳細(xì)描述的那樣的定時器陣列可以指示從當(dāng)前時間起的75毫秒期間設(shè)置喚醒標(biāo)記。因此,無線通信硬件在周期611期間可以處于瞌睡模式。如所圖示的,在離當(dāng)前時間的75毫秒,無線通信硬件可以進(jìn)入喚醒狀態(tài),并能在周期612期間維持喚醒狀態(tài)??梢园―TIM消息、與收聽間隔有關(guān)的消息、或期望響應(yīng)消息的數(shù)據(jù)發(fā)送可以在時間613接收。在這種情況下,無線通信硬件可以簡單地保持喚醒狀態(tài),直到在例如離目前100毫秒的下一個定時器陣列輸入。然而,為了更有效地節(jié)省功率,無線通信硬件立即處理在時間613發(fā)生的數(shù)據(jù)發(fā)送的接收,可以在周期614期間返回瞌睡模式。從圖6a中示出的時間線圖解可以看到,無線通信硬件可以通過維持在瞌睡模式并僅僅在需要接收數(shù)據(jù)發(fā)送的短的時間段內(nèi)處于喚醒模式來節(jié)省功率。
然而在一些情況下,像數(shù)據(jù)發(fā)送613一樣的數(shù)據(jù)發(fā)送可能在未預(yù)料到的時間發(fā)生,且無線通信硬件可能不處于喚醒狀態(tài)以接收該數(shù)據(jù)發(fā)送。在這種情況下,數(shù)據(jù)發(fā)送可以暫時地存儲在基站或相似的發(fā)送源,且可以把該發(fā)送通知給無線通信硬件,并且該硬件能夠接收該發(fā)送作為例行程序檢查的一部分,這種檢查發(fā)生在每一個收聽間隔。轉(zhuǎn)到圖6b,在時間線620上圖示這樣的情況。如圖6b所示,無線通信硬件可以在周期621期間處于瞌睡模式,并可以在周期622期間由于像期望響應(yīng)一樣的預(yù)期事件被喚醒。然而,還沒有接收到任何信息,無線通信硬件可以在周期623期間返回到瞌睡模式以節(jié)省功率。令人遺憾的是,期望響應(yīng)可能在時間624到達(dá),而無線通信硬件處于瞌睡狀態(tài)。在這種情況下,期望響應(yīng)在時間624不可能被接收,但可以在隨后的時間接收,例如當(dāng)在收聽間隔作出檢查以檢測任何可能等待遞送到無線通信硬件的數(shù)據(jù)時的時間626。如所指出的,無線通信硬件可以在周期625期間處于喚醒模式,例如,因為定時器陣列指示需要喚醒該硬件以執(zhí)行收聽間隔檢查。
如果無線通信硬件正處于發(fā)送信息的過程中,且發(fā)送繼續(xù)到在其期間應(yīng)該喚醒該硬件以接收期望發(fā)送的周期,則該硬件可以保持喚醒狀態(tài)。轉(zhuǎn)到圖6c,如在時間線630上所示出的,在周期631期間無線通信硬件可以被喚醒并發(fā)送信息,周期631可以延長超過一個時間,例如75毫秒標(biāo)記,在該時間該硬件應(yīng)該被喚醒以接收期望的發(fā)送。因此,即使無線通信硬件已經(jīng)完成了它的發(fā)送,它也能在周期632期間保持喚醒,以接收在時間633的發(fā)送。因此,雖然圖3的步驟330指示無線通信硬件可以被置于瞌睡模式,但是圖3的算法可以與圖5的算法互相配合,以便步驟525的喚醒指令使得硬件能夠保持在喚醒狀態(tài)。
考慮到本發(fā)明的原理可以應(yīng)用到的許多可能的實施例,應(yīng)該意識到這里參考附圖描述的實施例旨在僅僅是例證性的,并不應(yīng)當(dāng)作對本發(fā)明范圍的限定。例如,本領(lǐng)域普通技術(shù)人員將會意識到以軟件示出的一些圖示實施例的單元可以實現(xiàn)為硬件,并且反之亦然,或者在不偏離本發(fā)明精神的情況下可以修改圖示的實施例的配置和細(xì)節(jié)。同樣,由描述的算法得到的許多結(jié)果可以由具有一個或多個不同步驟的算法獲得。因此,如這里描述的發(fā)明打算包含可以落在隨后權(quán)利要求及其等同物的范圍內(nèi)的所有實施例。
權(quán)利要求
1.一種節(jié)省無線通信硬件功耗的方法,該方法包括步驟接收關(guān)于要發(fā)送分組的調(diào)度相關(guān)信息,其中,調(diào)度相關(guān)信息可用于確定接收與要發(fā)送分組有關(guān)的期望響應(yīng)的期望響應(yīng)時間;使用無線通信硬件發(fā)送要發(fā)送的分組;如果發(fā)送成功,基于期望響應(yīng)時間來調(diào)度無線通信硬件的喚醒狀態(tài);和除非無線通信硬件正在發(fā)送數(shù)據(jù)、或者另外被調(diào)度處于喚醒狀態(tài),否則把無線通信硬件置于瞌睡狀態(tài)。
2.權(quán)利要求1的方法,其中調(diào)度喚醒狀態(tài)包括把調(diào)度信息輸入進(jìn)定時器陣列。
3.權(quán)利要求2的方法,其中調(diào)度進(jìn)一步包括確定定時器值,其中定時器值是基于期望響應(yīng)時間和安全界限的;如果定時器值未超過定時器陣列,確定定時器索引,其中定時器索引是基于當(dāng)前定時器索引和由定時器陣列的間隔劃分的定時器值的;如果定時器索引大于定時器陣列的最大索引,調(diào)整定時器索引;并在該定時器索引把調(diào)度信息輸入進(jìn)定時器陣列。
4.權(quán)利要求2的方法,其中調(diào)度信息包括無線通信硬件狀態(tài),指示無線通信狀態(tài)將處于瞌睡狀態(tài)還是處于喚醒狀態(tài);和喚醒類型,指示在喚醒狀態(tài)期間期望接收的發(fā)送類型。
5.權(quán)利要求1的方法,進(jìn)一步包括維護(hù)定時器陣列;處理定時器陣列的輸入;和如果處理的定時器陣列輸入指示無線通信硬件將處于喚醒狀態(tài),則把無線通信硬件置于喚醒狀態(tài)。
6.權(quán)利要求5的方法,進(jìn)一步包括如果處理的定時器陣列輸入指示由于再發(fā)生事件無線通信硬件將處于喚醒狀態(tài),則基于再發(fā)生事件來調(diào)度無線通信硬件的喚醒狀態(tài)。
7.權(quán)利要求5的方法,進(jìn)一步包括如果期望在喚醒狀態(tài)接收的發(fā)送被接收,則把無線通信硬件置于瞌睡模式。
8.一種計算機(jī)可讀介質(zhì),具有用于節(jié)省無線通信硬件功耗的計算機(jī)可執(zhí)行指令,計算機(jī)可讀介質(zhì)包括用于接收關(guān)于要發(fā)送分組的調(diào)度相關(guān)信息,其中,調(diào)度相關(guān)信息可確定用于接收與要發(fā)送分組有關(guān)的期望響應(yīng)的期望響應(yīng)時間;使用無線通信硬件發(fā)送要發(fā)送的分組;如果發(fā)送成功,基于期望響應(yīng)時間來調(diào)度無線通信硬件的喚醒狀態(tài);和除非無線通信硬件正在發(fā)送數(shù)據(jù)、或者另外被調(diào)度處于喚醒狀態(tài),否則把無線通信硬件置于瞌狀態(tài)的計算機(jī)可執(zhí)行指令。
9.權(quán)利要求8的計算機(jī)可讀介質(zhì),其中調(diào)度喚醒狀態(tài)包括把調(diào)度信息輸入進(jìn)定時器陣列。
10.權(quán)利要求9的計算機(jī)可讀介質(zhì),其中用于調(diào)度的計算機(jī)可執(zhí)行指令進(jìn)一步包括用于確定定時器值,其中定時器值是基于期望響應(yīng)時間和安全界限的;如果定時器值未超過定時器陣列,確定定時器索引,其中定時器索引是基于當(dāng)前定時器索引和由定時器陣列的間隔劃分的定時器值的;如果定時器索引大于定時器陣列的最大索引,調(diào)整定時器索引;并在該定時器索引把調(diào)度信息輸入進(jìn)定時器陣列的計算機(jī)可執(zhí)行指令。
11.權(quán)利要求9的計算機(jī)可讀介質(zhì),其中調(diào)度信息包括無線通信硬件狀態(tài),指示無線通信狀態(tài)將處于瞌睡狀態(tài)還是處于喚醒狀態(tài);和喚醒類型,指示在喚醒狀態(tài)期間期望接收的發(fā)送類型。
12.權(quán)利要求8的計算機(jī)可讀介質(zhì),進(jìn)一步包括用于維護(hù)定時器陣列;處理定時器陣列的輸入;和如果處理的定時器陣列輸入指示無線通信硬件將處于喚醒狀態(tài),則把無線通信硬件置于喚醒狀態(tài)的計算機(jī)可執(zhí)行指令。
13.權(quán)利要求12的計算機(jī)可讀介質(zhì),進(jìn)一步包括用于如果處理的定時器陣列輸入指示由于再發(fā)生事件無線通信硬件將處于喚醒狀態(tài),則基于再發(fā)生事件來調(diào)度無線通信硬件的喚醒狀態(tài)的計算機(jī)可執(zhí)行指令。
14.權(quán)利要求12的計算可讀介質(zhì),進(jìn)一步包括用于如果期望在喚醒狀態(tài)接收的發(fā)送被接收,則把無線通信硬件置于瞌睡模式的計算機(jī)可執(zhí)行指令。
15.一種實現(xiàn)用于無線通信硬件的功率節(jié)省調(diào)度的定時器機(jī)制,該定時器機(jī)制包括一系列的順序處理輸入,其中每一個輸入包括用于指示無線通信硬件的期望狀態(tài)的狀態(tài)字段,和用于指示在無線通信硬件的喚醒狀態(tài)期間期望接收的發(fā)送類型的喚醒類型字段,其中進(jìn)一步,該系列的輸入用于基于期望響應(yīng)時間或再發(fā)生事件時間來調(diào)度無線通信硬件的喚醒狀態(tài)。
16.權(quán)利要求15的定時器機(jī)制,其中期望響應(yīng)時間是基于與要發(fā)送分組相關(guān)聯(lián)的調(diào)度相關(guān)信息的。
17.權(quán)利要求15的定時器機(jī)制,其中處理順序處理輸入的輸入包括如果處理輸入的狀態(tài)字段指示無線通信硬件的期望狀態(tài)是喚醒狀態(tài),則把無線通信硬件置于喚醒狀態(tài)。
18.權(quán)利要求15的定時器機(jī)制,其中處理順序處理輸入的輸入包括設(shè)定順序處理輸入的較后輸入的狀態(tài)字段,以指示無線通信硬件的期望狀態(tài)是喚醒狀態(tài),并置位較后輸入的喚醒類型字段,以指示與再發(fā)生事件相關(guān)的,如果處理輸入的喚醒類型字段指示發(fā)送與再發(fā)生事件相關(guān),則執(zhí)行置位狀態(tài)字段和置位喚醒類型字段,并且,其中較后輸入是基于再發(fā)生事件的間隔來選擇的。
19.權(quán)利要求15的定時器機(jī)制,其中除非無線通信硬件正在發(fā)送數(shù)據(jù)或者被一系列順序處理輸入的當(dāng)前處理輸入的狀態(tài)字段指示為處于喚醒狀態(tài),否則無線通信硬件處于瞌睡狀態(tài)。
20.權(quán)利要求15的定時器機(jī)制,其中定時器機(jī)制是定時器陣列。
全文摘要
為了降低無線通信硬件設(shè)備的功耗,可以實施功率節(jié)省調(diào)度算法。包括DTIM間隔和收聽間隔的再發(fā)生事件可以被調(diào)度作為喚醒時期。同樣,基于可以與要發(fā)送數(shù)據(jù)一起傳遞的例如往返時間的信息,期望響應(yīng)間隔可以被調(diào)度作為喚醒時期。除非無線通信硬件設(shè)備正在發(fā)送數(shù)據(jù),或者期望在調(diào)度喚醒時期之一的發(fā)送,否則可以把無線通信硬件設(shè)備置于瞌睡模式。
文檔編號H04B7/26GK1694556SQ20051007831
公開日2005年11月9日 申請日期2005年4月30日 優(yōu)先權(quán)日2004年4月30日
發(fā)明者A·阿布西謝克, A·西迪基, A·克蘭茲, I·A·克斯笛克 申請人:微軟公司