網(wǎng)絡(luò)應(yīng)用程序代理系統(tǒng)和方法
【專利摘要】本申請(qǐng)公開(kāi)的系統(tǒng)和方法接收通過(guò)網(wǎng)絡(luò)感知主機(jī)應(yīng)用程序(107)發(fā)布的網(wǎng)絡(luò)應(yīng)用程序代理(NAP)擴(kuò)展API函數(shù)調(diào)用(210)。NAP擴(kuò)展API函數(shù)調(diào)用(210)提供與主機(jī)可卸載包交換序列相關(guān)聯(lián)的參數(shù)值。利用該參數(shù)值,當(dāng)主機(jī)處理器處在睡眠模式狀態(tài)或正在睡眠模式狀態(tài)之間轉(zhuǎn)換時(shí),NAP模塊(116)攔截且響應(yīng)與主機(jī)可卸載包交換序列相關(guān)聯(lián)的一個(gè)或多個(gè)進(jìn)入網(wǎng)絡(luò)包(222,235)。
【專利說(shuō)明】網(wǎng)絡(luò)應(yīng)用程序代理系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001] 本文描述的實(shí)施例涉及無(wú)線移動(dòng)設(shè)備,包括與卸載網(wǎng)絡(luò)通信功能相關(guān)聯(lián)的系統(tǒng)和 方法,從而實(shí)現(xiàn)更深和/或更長(zhǎng)的主機(jī)處理器睡眠模式周期。
【背景技術(shù)】
[0002] 無(wú)線移動(dòng)設(shè)備的激增以及不斷增加的網(wǎng)絡(luò)可用性已經(jīng)導(dǎo)致了對(duì)于"一直可用"網(wǎng) 絡(luò)應(yīng)用需求不斷增長(zhǎng)。這類應(yīng)用,包括但不限于網(wǎng)絡(luò)協(xié)議上的語(yǔ)音(V0IP)、即時(shí)消息、服務(wù) 搜尋以及服務(wù)器應(yīng)用程序,可以被遠(yuǎn)程地觸發(fā)。也就是說(shuō),可能要求運(yùn)行在無(wú)線移動(dòng)設(shè)備中 的"一直可用"應(yīng)用程序無(wú)限地持續(xù)運(yùn)行,同時(shí)等待來(lái)自進(jìn)入V0IP呼叫等的觸發(fā)信息。
[0003] 本文中使用的術(shù)語(yǔ)"無(wú)線移動(dòng)設(shè)備"意味著采用便攜式電源(例如電池、太陽(yáng)能芯 片等)并包括用于無(wú)線數(shù)據(jù)通信的無(wú)線電的便攜式通信和/或計(jì)算設(shè)備。這類設(shè)備包括能 夠使用數(shù)據(jù)的蜂窩電話、無(wú)線膝上型計(jì)算機(jī)、平板計(jì)算機(jī)、便攜式無(wú)線游戲機(jī)等。
[0004] 目前的無(wú)線移動(dòng)設(shè)備通常使用一個(gè)或多個(gè)主("主機(jī)")處理器來(lái)執(zhí)行用戶應(yīng)用程 序。主處理器通常消耗大量的電力,使得主機(jī)處理器活動(dòng)成為無(wú)線移動(dòng)設(shè)備電池運(yùn)行時(shí)間 的限制因素。已將發(fā)展了各種方案用來(lái)延長(zhǎng)電池運(yùn)行時(shí)間,包括低功率半導(dǎo)體設(shè)備的發(fā)展。 最主要的電池電力節(jié)省技術(shù)之一是"睡眠模式操作。"無(wú)線移動(dòng)設(shè)備通過(guò)在多個(gè)時(shí)間片內(nèi)禁 用所有或部分主機(jī)處理器功能來(lái)進(jìn)入睡眠模式,在該多個(gè)時(shí)間片期間,應(yīng)用程序不需要被 禁用的處理器循環(huán)。隨著處理器的功率漸增地被禁用,主機(jī)處理器被稱為漸增地進(jìn)入睡眠 模式操作的"更深"等級(jí)。
[0005] 當(dāng)處理器睡眠時(shí),活動(dòng)的應(yīng)用程序可被分配較短的循環(huán)或不分配任何循環(huán)。此外, 睡眠模式操作通常需要開(kāi)銷循環(huán),以便在禁用處理器之前保存指針、寄存器值等,并在重啟 處理器之后恢復(fù)這些值。因此,睡眠模式的運(yùn)行可能導(dǎo)致應(yīng)用程序啟動(dòng)延遲增大和/或進(jìn) 入睡眠模式時(shí)執(zhí)行的應(yīng)用程序的運(yùn)行延遲增大。從用戶的角度來(lái)看,電池的運(yùn)行時(shí)間可以 被視為在較懶惰的無(wú)線移動(dòng)設(shè)備中較長(zhǎng)并且在較活躍的設(shè)備中較短。周密的編程權(quán)衡可有 助于優(yōu)化性能與運(yùn)行時(shí)間。
[0006] 遠(yuǎn)程觸發(fā)的網(wǎng)絡(luò)應(yīng)用程序諸如上述的那些,趨向于延遲敏感。例如,當(dāng)處于睡眠的 處理器被充電、恢復(fù)背景以及重新開(kāi)始處理網(wǎng)絡(luò)堆棧時(shí),與進(jìn)入V0IP呼叫相關(guān)聯(lián)的鈴聲信 號(hào)可能被延遲。在一些情況下,為了保證跨越多個(gè)無(wú)線移動(dòng)設(shè)備平臺(tái)的應(yīng)用程序的可接受 性能,網(wǎng)絡(luò)應(yīng)用程序編程者可能禁用深層次的睡眠模式操作。結(jié)果,電池可能會(huì)過(guò)量消耗, 同時(shí)這類應(yīng)用程序簡(jiǎn)單地執(zhí)行等待狀態(tài)達(dá)可能持續(xù)幾分鐘、幾小時(shí)的持續(xù)時(shí)間,或者更多 地,同時(shí)等待進(jìn)入V0IP呼叫、即時(shí)消息等,。在其他的情況下,無(wú)線網(wǎng)絡(luò)設(shè)備可以被配置為 在接收任何包后將主機(jī)處理器喚醒,可能導(dǎo)致睡眠狀態(tài)被頻繁地打斷。
【發(fā)明內(nèi)容】
[0007] 本文中描述的系統(tǒng)和方法將主機(jī)處理器網(wǎng)絡(luò)通信序列卸載到網(wǎng)絡(luò)設(shè)備處理器。進(jìn) 入網(wǎng)絡(luò)應(yīng)用程序包被過(guò)濾且被響應(yīng),同時(shí)喚醒主機(jī)處理器。這樣做在接收進(jìn)入網(wǎng)絡(luò)應(yīng)用程 序觸發(fā)包后提供時(shí)間以喚醒主機(jī)處理器,同時(shí)提供可接受的網(wǎng)絡(luò)延遲??梢援a(chǎn)生更深和/ 或更長(zhǎng)的主機(jī)處理器睡眠狀態(tài)。
【專利附圖】
【附圖說(shuō)明】
[0008] 圖1是根據(jù)本發(fā)明的不同示例實(shí)施例的無(wú)線移動(dòng)設(shè)備100中的網(wǎng)絡(luò)應(yīng)用程序代理 系統(tǒng)的框圖。
[0009] 圖2是根據(jù)不同的示例實(shí)施例示出與網(wǎng)絡(luò)應(yīng)用程序代理相關(guān)聯(lián)的典型的進(jìn)程間 通信序列的序列圖。
[0010] 圖3A和3B是與根據(jù)不同示例序列延長(zhǎng)無(wú)線移動(dòng)設(shè)備中的睡眠狀態(tài)的方法相關(guān)聯(lián) 的流程圖。
【具體實(shí)施方式】
[0011] 圖1是根據(jù)本發(fā)明的不同示例實(shí)施例的無(wú)線移動(dòng)設(shè)備1〇〇中的網(wǎng)絡(luò)應(yīng)用程序代理 (NAP)系統(tǒng)50的框圖。NAP系統(tǒng)50包括執(zhí)行一個(gè)或多個(gè)網(wǎng)絡(luò)應(yīng)用程序模塊107的主機(jī)處 理器105。NAP系統(tǒng)50也包括通信地耦合到主機(jī)處理器105的操作系統(tǒng)(0S) 110。NAP系 統(tǒng)50進(jìn)一步包括通信地耦合到主機(jī)處理器105的網(wǎng)絡(luò)設(shè)備112。在一些實(shí)施例中,網(wǎng)絡(luò)設(shè) 備112可以被實(shí)現(xiàn)為無(wú)線網(wǎng)絡(luò)模塊。在一些實(shí)施例中,網(wǎng)絡(luò)設(shè)備112可以作為主機(jī)處理器 105的子元件被包含。網(wǎng)絡(luò)設(shè)備112處理網(wǎng)絡(luò)包裝配、傳輸、接收以及分解。
[0012] 網(wǎng)絡(luò)設(shè)備112包括網(wǎng)絡(luò)設(shè)備處理器115。網(wǎng)絡(luò)設(shè)備處理器115向網(wǎng)絡(luò)設(shè)備112提 供獨(dú)立于與主機(jī)處理器105相關(guān)聯(lián)的處理循環(huán)的處理循環(huán)。NAP模塊116攔截并響應(yīng)與主 機(jī)可卸載包交換序列相關(guān)聯(lián)的進(jìn)入網(wǎng)絡(luò)包,如下列進(jìn)一步所描述的。當(dāng)主機(jī)處理器105處 于睡眠模式狀態(tài)或正在睡眠模式狀態(tài)之間轉(zhuǎn)換時(shí),NAP模塊116由此介入。
[0013] 如之前所述,NAP系統(tǒng)50包括一個(gè)或多個(gè)網(wǎng)絡(luò)應(yīng)用程序模塊107。在本披露的環(huán) 境中,"網(wǎng)絡(luò)應(yīng)用程序"意味著可由處理器執(zhí)行的一組活動(dòng),包括接收通過(guò)無(wú)線通信包被傳 送的數(shù)據(jù)和/通過(guò)無(wú)線通信包將提供將被傳送的數(shù)據(jù)。網(wǎng)絡(luò)應(yīng)用程序的示例包括即時(shí)消息 應(yīng)用程序120和V0IP應(yīng)用程序122。
[0014] 在NAP系統(tǒng)50的環(huán)境中運(yùn)行,網(wǎng)絡(luò)應(yīng)用程序模塊107發(fā)布一個(gè)或多個(gè)NAP擴(kuò)展網(wǎng) 絡(luò)API函數(shù)調(diào)用。這種NAP網(wǎng)絡(luò)API調(diào)用配置NAP系統(tǒng)50以按照如下來(lái)處理主機(jī)可卸載 包交換序列。與0S110相關(guān)聯(lián)的API處理模塊125攔截不同類型的API調(diào)用,包括由應(yīng)用 程序107發(fā)布的NAP擴(kuò)展網(wǎng)絡(luò)API調(diào)用。
[0015] 主機(jī)網(wǎng)絡(luò)堆棧128通信地耦合到API處理模塊125從而經(jīng)由非NAP擴(kuò)展網(wǎng)絡(luò)API 函數(shù)調(diào)用與網(wǎng)絡(luò)應(yīng)用程序模塊107通信。NAP系統(tǒng)50也包括通信地耦合到主機(jī)網(wǎng)絡(luò)堆棧 128的物理鏈路模塊132。物理鏈路模塊132接收無(wú)線移動(dòng)設(shè)備100處的傳入包(inbound packet)并且發(fā)送從無(wú)線移動(dòng)設(shè)備100發(fā)出的包。
[0016] NAP系統(tǒng)50也包括通信地耦合到API處理模塊125的NAP API封裝器模塊135。 API處理模塊125將NAP擴(kuò)展網(wǎng)絡(luò)API調(diào)用傳遞到NAP API封裝器模塊135。NAP API封裝 器模塊135接收該NAP擴(kuò)展網(wǎng)絡(luò)API函數(shù)調(diào)用并且作為響應(yīng)將NAP封裝器函數(shù)調(diào)用發(fā)布到 NAP 模塊 116。
[0017] 如上所述,NAP模塊116是網(wǎng)絡(luò)設(shè)備112中的部件。NAP模塊116中的交換序列生 成器142部件配置接收過(guò)濾器,啟用發(fā)送過(guò)濾器,接收與主機(jī)可卸載包交換序列相關(guān)聯(lián)的 一個(gè)或多個(gè)進(jìn)入包,選擇適用于主機(jī)可卸載包交換序列的發(fā)送模板,填入符合傳輸模板并 響應(yīng)于進(jìn)入包而生成的一個(gè)或多個(gè)傳輸包的字段,以及發(fā)布與主機(jī)可卸載包交換序列的終 止相關(guān)聯(lián)的主機(jī)喚醒命令。
[0018] 交換序列生成器142包括接收數(shù)據(jù)緩沖器146。在主機(jī)可卸載包交換序列完成后, 接收數(shù)據(jù)緩沖器146存儲(chǔ)與進(jìn)入包相關(guān)聯(lián)的數(shù)據(jù)字段以便轉(zhuǎn)發(fā)到主機(jī)網(wǎng)絡(luò)堆棧128。交換 序列生成器142還包括序列計(jì)時(shí)器152。序列計(jì)時(shí)器152確定何時(shí)發(fā)送各個(gè)傳輸包以及何 時(shí)發(fā)布主機(jī)喚醒命令。
[0019] NAP模塊116進(jìn)一步包括通信地耦合到交換序列生成器142的接收濾波器模塊 145。接收濾波器模塊145確定進(jìn)入包是否與主機(jī)可卸載包交換序列相關(guān)聯(lián)。如果是,則接 收濾波器模塊145將進(jìn)入包傳遞到交換序列生成器142。接收濾波器模塊145通過(guò)NAP模 塊116來(lái)傳遞與主機(jī)可卸載包交換序列不相關(guān)聯(lián)的包,并且將其傳遞到主機(jī)網(wǎng)絡(luò)堆棧128。
[0020] NAP系統(tǒng)50也包括通信地耦合到交換序列生成器142的發(fā)送模板模塊148。發(fā)送 模板模塊148存儲(chǔ)可由交換序列生成器142選擇的一組發(fā)送模板。發(fā)送模板模塊148使用 由交換序列生成器142提供的字段數(shù)據(jù)來(lái)組裝發(fā)送包。然后發(fā)送模板模塊148將發(fā)送包發(fā) 送到用于向外傳輸?shù)奈锢礞溌纺K132。
[0021] NAP系統(tǒng)50進(jìn)一步包括通信地耦合到交換序列生成器142的發(fā)送濾波器模塊 155。當(dāng)不調(diào)用NAP功能時(shí),發(fā)送濾波器模塊155將外出包(outbound packet)傳遞到用于 向外傳輸?shù)奈锢礞溌?32。當(dāng)調(diào)用NAP功能時(shí),發(fā)送濾波器模塊155阻止外出包。
[0022] NAP系統(tǒng)50還包括通信地耦合到交換序列生成器142的NAP配置寄存器160。NAP 配置寄存器160在NAP初始化時(shí)加載交換序列生成器參數(shù)。在一些實(shí)施例中,NAP配置寄 存器160被通信地耦合到發(fā)送模板模塊148從而在NAP初始化時(shí)加載多組發(fā)送模板。在一 些實(shí)施例中,NAP配置寄存器160被通信地耦合到接收濾波器模塊145從而在NAP初始化 時(shí)加載接收濾波器。
[0023] 圖2是根據(jù)不同示例實(shí)施例示出與圖1中的NAP系統(tǒng)50相關(guān)聯(lián)的典型的進(jìn)程間 通信序列200的序列圖。通信點(diǎn)包括如前所述的應(yīng)用程序模塊107、NAP API封裝器模塊 135、主機(jī)網(wǎng)絡(luò)堆棧128、NAP模塊116以及物理鏈路模塊132。為了示例的目的在序列200 中示出消息語(yǔ)法,并且該消息語(yǔ)法可以根據(jù)不同實(shí)施例的特定實(shí)施方式變化。
[0024] 網(wǎng)絡(luò)應(yīng)用程序模塊107可以是NAP感知(NAP-aware)并且可以期望在待接收進(jìn)入 包時(shí)允許主機(jī)處理器進(jìn)入睡眠狀態(tài)。網(wǎng)絡(luò)應(yīng)用程序模塊107通過(guò)將NAP擴(kuò)展網(wǎng)絡(luò)API函數(shù) 調(diào)用210發(fā)送到NAP API封裝器模塊135來(lái)開(kāi)始序列。NAP模塊135通過(guò)發(fā)送模擬的非NAP 擴(kuò)展API函數(shù)調(diào)用215來(lái)將該活動(dòng)通知主機(jī)網(wǎng)絡(luò)堆棧128。NAP模塊135還將NAP API封 裝器函數(shù)調(diào)用218發(fā)送到NAP模塊116。
[0025] NAP API封裝器函數(shù)調(diào)用218在對(duì)由應(yīng)用程序模塊107發(fā)布的API函數(shù)調(diào)用210 適宜時(shí)在NAP模塊116處建立等待狀態(tài)。具體地,NAP封裝器函數(shù)調(diào)用218在NAP模塊116 處調(diào)用一個(gè)或多個(gè)接收濾波器(例如,接收濾波器225和240)。接收濾波器識(shí)別與網(wǎng)絡(luò)應(yīng) 用程序模塊107相關(guān)聯(lián)的進(jìn)入包。接收濾波器可以基于諸如協(xié)議類型、端口號(hào)等參數(shù)來(lái)識(shí) 別進(jìn)入包。
[0026] 為了該示例的目的,讓我們假設(shè)由應(yīng)用程序模塊107發(fā)布的API函數(shù)調(diào)用210指 定共同的TCP SYN--SYN/ACK--ACK主機(jī)可卸載包交換序列。在NAP模塊116處從物理鏈路 模塊132接收的包222由接收濾波器225來(lái)評(píng)估。讓我們假設(shè)包222被接收濾波器225識(shí) 別為與TCP協(xié)議相對(duì)應(yīng)且與由API函數(shù)調(diào)用210以及由NAP API封裝器函數(shù)調(diào)用218指定 的端口號(hào)相匹配的SYN數(shù)據(jù)包。然后,NAP模塊116可以用外出的端口匹配的SYN/ACK數(shù) 據(jù)包230來(lái)響應(yīng),由此仿真當(dāng)前睡眠的主機(jī)網(wǎng)絡(luò)對(duì)戰(zhàn)128的行為。端口匹配的TCP ACK包 235隨后可以由接收濾波器240來(lái)接收且評(píng)估。
[0027] 在主機(jī)可卸載包交換序列中的適當(dāng)時(shí)間,NAP模塊116發(fā)布主機(jī)喚醒消息245。在 一些實(shí)施例中,主機(jī)喚醒消息245可以穿過(guò)NAP封裝器模塊135。接下來(lái)NAP封裝器模塊 135可以如所示的用觸發(fā)_主機(jī)消息250來(lái)喚醒主機(jī)處理器并重新激活主機(jī)網(wǎng)絡(luò)堆棧128。
[0028] 圖3A和圖3B是與根據(jù)不同示例序列延長(zhǎng)無(wú)線移動(dòng)設(shè)備中的睡眠狀態(tài)的方法300 相關(guān)聯(lián)的流程圖。方法300包括當(dāng)主機(jī)處理器處在睡眠模式狀態(tài)中或正在睡眠模式狀態(tài)之 間轉(zhuǎn)換時(shí),截取并響應(yīng)與主機(jī)可卸載包交換序列相關(guān)聯(lián)的一個(gè)或多個(gè)進(jìn)入網(wǎng)絡(luò)包。
[0029] 方法300可以可選地在框305處開(kāi)始于更新一組NAP配置寄存器(例如,圖1中 的配置寄存器160)。方法300在框308處繼續(xù)于執(zhí)行NAP初始化活動(dòng)的序列,包括加載交 換序列生成器參數(shù),加載多組發(fā)送模板以及加載接收濾波器。
[0030] 在框312處,方法300包括在NAP API封裝器模塊處接收NAP擴(kuò)展API函數(shù)調(diào)用。 NAP擴(kuò)展API函數(shù)調(diào)用由網(wǎng)絡(luò)感知主機(jī)應(yīng)用程序發(fā)布并且與主機(jī)可卸載包交換序列相關(guān) 聯(lián)。在框315處,方法300還包括響應(yīng)于NAP擴(kuò)展API函數(shù)調(diào)用而在NAP API封裝器模塊 處發(fā)布NAP封裝器函數(shù)調(diào)用。如前所述,NAP擴(kuò)展API函數(shù)調(diào)用和NAP封裝器函數(shù)調(diào)用均 封裝接收濾波器參數(shù)值。接收濾波器參數(shù)值被用來(lái)配置一個(gè)或多個(gè)接收濾波器以識(shí)別與主 機(jī)網(wǎng)絡(luò)應(yīng)用程序所預(yù)期的主機(jī)可卸載交換序列相關(guān)聯(lián)的進(jìn)入包。
[0031] 在框318處,方法300進(jìn)一步包括配置一個(gè)或多個(gè)接收濾波器并且根據(jù)與NAP封 裝器函數(shù)調(diào)用相關(guān)聯(lián)的參數(shù)來(lái)選擇發(fā)送模板濾波器組。在框322處,方法300還包括阻止 與顯著的NAP擴(kuò)展API調(diào)用相關(guān)聯(lián)的外出包。在框324處,方法300進(jìn)一步包括在沒(méi)有調(diào) 用NAP的功能時(shí)將外出包從發(fā)送濾波器傳遞到用于向外傳輸?shù)奈锢礞溌贰?br>
[0032] 方法300在框328處繼續(xù)于在接收濾波器處接收進(jìn)入包。在框335處,方法300 包括確定數(shù)據(jù)包是否與主機(jī)可卸載包交換序列相關(guān)聯(lián)。如果不相關(guān)聯(lián),則方法300包括在 框338處將該包轉(zhuǎn)發(fā)到主機(jī)網(wǎng)絡(luò)堆棧。
[0033] 如果接收濾波器確定模式匹配,那么方法300在框340處繼續(xù)于將進(jìn)入包傳遞到 交換序列生成器。交換生成器負(fù)責(zé)安排對(duì)進(jìn)入包的響應(yīng)。如果可行,在框341處,方法300 包括在主機(jī)可卸載包交換序列完成后存儲(chǔ)來(lái)自進(jìn)入包的包數(shù)據(jù)以轉(zhuǎn)發(fā)到主機(jī)網(wǎng)絡(luò)堆棧。
[0034] 在框342處,方法300還包括選擇適用于主機(jī)可卸載包交換序列的發(fā)送模板。在 框344處,方法300進(jìn)一步包括填入符合發(fā)送模板的一個(gè)或多個(gè)發(fā)送包的字段。使用由交 換序列生成器提供的字段數(shù)據(jù)來(lái)組裝發(fā)送包。
[0035] 在一些實(shí)施方式中,在框352處的將發(fā)送包發(fā)送到物理鏈路以便向外傳輸之前, 方法300在框348處還包括等待序列計(jì)時(shí)器到期時(shí)間。這樣做可以實(shí)現(xiàn)相對(duì)于與主機(jī)處理 器喚醒相關(guān)的延遲更好地控制序列計(jì)時(shí)。
[0036] 方法300在框355處繼續(xù)于每次適用的交換序列模式被交換序列生成器所知,確 定交換序列是否已經(jīng)完成。如果沒(méi)有,則在框328處,方法300包括等待且在接收濾波器處 接收額外的傳入包。如果交換序列已經(jīng)完成,則在框358處,方法300包括發(fā)布主機(jī)喚醒命 令。需要注意的是,方法300的一些實(shí)施方式可以在交換序列完成之前開(kāi)始主機(jī)喚醒,從而 考慮與主機(jī)喚醒過(guò)程相關(guān)聯(lián)的延遲。
[0037] 方法300可以在框360處結(jié)束于在主機(jī)可卸載包交換序列完成之后將與進(jìn)入包相 關(guān)聯(lián)的任何存儲(chǔ)數(shù)據(jù)字段轉(zhuǎn)發(fā)到主機(jī)網(wǎng)絡(luò)堆棧。方法300可以通過(guò)接收來(lái)自網(wǎng)絡(luò)應(yīng)用程序 的另一個(gè)NAP擴(kuò)展API調(diào)用在圖3A的框312處重新開(kāi)始。
[0038] 本文所述的模塊和部件可以包括硬件電路系統(tǒng)、光學(xué)部件、單處理器或多處理器 電路和/或存儲(chǔ)器電路。所公開(kāi)的模塊和部件還可以包括能夠被處理器執(zhí)行的計(jì)算機(jī)指令 被編碼在其中/其上的計(jì)算機(jī)可讀介質(zhì),包括帶有存儲(chǔ)在其中的固件的非易失性存儲(chǔ)器, 但是不包括非功能的描述性事物。如NAP系統(tǒng)50和方法300的構(gòu)造者所期望的并且如適 于不同實(shí)施例的特定實(shí)施方式,本披露的主題還包括所描述的模塊與部件的組合。
[0039] 本文所述的系統(tǒng)和方法可對(duì)應(yīng)用程序有用而不對(duì)延長(zhǎng)無(wú)線移動(dòng)設(shè)備中的睡眠模 式操作有用。NAP系統(tǒng)50和方法300意在提供對(duì)不同實(shí)施例的結(jié)構(gòu)和不同序列的流程的一 般理解。不同的實(shí)施例可以被并入到在計(jì)算機(jī)、通信和信號(hào)處理電路、單處理器或多處理器 模塊、單嵌入式處理器或多嵌入式處理器、多核處理器、數(shù)據(jù)交換機(jī)以及包括多層、多芯片 模塊的專用模塊等中使用的電子電路中。這類設(shè)備和系統(tǒng)可以進(jìn)一步作為子部件被包含在 各種電子系統(tǒng)諸如電視蜂窩電話、個(gè)人計(jì)算機(jī)(例如,膝上型計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、手持式 計(jì)算機(jī)、平板計(jì)算機(jī)等)、工作站、無(wú)線電裝置、視頻播放器、音頻播放器(例如,MP3(運(yùn)動(dòng)圖 像專家組,音頻層3)播放器)、交通工具、醫(yī)療設(shè)備(例如,心臟監(jiān)控器、血壓監(jiān)控器等)、機(jī) 頂盒以及其他電子系統(tǒng)中。
[0040] 本文所述的系統(tǒng)和方法將主機(jī)處理器網(wǎng)絡(luò)通信序列卸載到網(wǎng)絡(luò)設(shè)備處理器。這 樣做在接收進(jìn)入應(yīng)用程序觸發(fā)包后提供時(shí)間以喚醒主機(jī)處理器,同時(shí)提供可接受的網(wǎng)絡(luò)延 遲。可以產(chǎn)生更深的和/或更長(zhǎng)的主機(jī)處理器睡眠狀態(tài)。
[0041] 本領(lǐng)域的技術(shù)人員將理解的是,在所請(qǐng)求保護(hù)的發(fā)明的范圍內(nèi)可以對(duì)所描述的實(shí) 施例進(jìn)行修改,并且同樣許多其他實(shí)施例是可能的。
【權(quán)利要求】
1. 一種無(wú)線移動(dòng)設(shè)備中的網(wǎng)絡(luò)應(yīng)用程序代理系統(tǒng)即NAP系統(tǒng),其包括: 網(wǎng)絡(luò)應(yīng)用程序模塊,其發(fā)布與主機(jī)可卸載包交換序列相關(guān)聯(lián)的NAP擴(kuò)展網(wǎng)絡(luò)應(yīng)用程序 編程接口函數(shù)調(diào)用即NAP擴(kuò)展網(wǎng)絡(luò)API函數(shù)調(diào)用; NAP API封裝器模塊,其通信地耦合到所述應(yīng)用程序模塊以接收所述NAP擴(kuò)展API函數(shù) 調(diào)用并且作為響應(yīng)發(fā)布NAP封裝器函數(shù)調(diào)用;以及 NAP模塊,其通信地耦合到所述NAP API封裝器模塊,從而當(dāng)主機(jī)處理器處于睡眠模式 狀態(tài)或當(dāng)所述主機(jī)處理器正在睡眠模式狀態(tài)之間轉(zhuǎn)換時(shí)攔截并響應(yīng)與所述主機(jī)可卸載包 交換序列相關(guān)聯(lián)的進(jìn)入網(wǎng)絡(luò)包。
2. 根據(jù)權(quán)利要求1所述的系統(tǒng),所述NAP模塊進(jìn)一步包括: 交換序列生成器,其配置接收濾波器,啟用發(fā)送濾波器,接收與所述主機(jī)可卸載包交換 序列相關(guān)聯(lián)的至少一個(gè)進(jìn)入包,選擇適用于所述主機(jī)可卸載包交換序列的發(fā)送模板,填入 符合所述發(fā)送模板并響應(yīng)于所述進(jìn)入包而產(chǎn)生的至少一個(gè)發(fā)送包的字段,以及發(fā)布與所述 主機(jī)可卸載包交換序列的終止相關(guān)聯(lián)的主機(jī)喚醒命令。
3. 根據(jù)權(quán)利要求2所述的系統(tǒng),所述交換序列生成器進(jìn)一步包括: 接收數(shù)據(jù)緩存器,其存儲(chǔ)與所述進(jìn)入包相關(guān)聯(lián)的數(shù)據(jù)字段,從而在所述主機(jī)可卸載包 交換序列完成后轉(zhuǎn)發(fā)到主機(jī)網(wǎng)絡(luò)堆棧;以及 序列計(jì)時(shí)器,其確定何時(shí)發(fā)送各個(gè)發(fā)送包以及何時(shí)發(fā)布主機(jī)喚醒命令。
4. 根據(jù)權(quán)利要求2所述的系統(tǒng),所述NAP模塊進(jìn)一步包括: 接收濾波器模塊,其通信地耦合到所述交換序列生成器以將所述進(jìn)入包識(shí)別為與所述 主機(jī)可卸載包交換序列相關(guān)聯(lián),將所述進(jìn)入包傳遞到所述交換序列生成器,并且通過(guò)所述 NAP模塊傳遞與所述主機(jī)可卸載包交換序列不相關(guān)聯(lián)的包并且傳遞到主機(jī)網(wǎng)絡(luò)堆棧。
5. 根據(jù)權(quán)利要求2所述的系統(tǒng),所述NAP模塊進(jìn)一步包括: 發(fā)送模板模塊,其通信地耦合到所述交換序列生成器以存儲(chǔ)可由所述交換序列生成器 選擇的一組發(fā)送模板,利用由所述交換序列生成器提供的字段數(shù)據(jù)來(lái)組裝所述發(fā)送包,以 及將所述發(fā)送包發(fā)送到用于向外傳輸?shù)奈锢礞溌贰?br>
6. 根據(jù)權(quán)利要求2所述的系統(tǒng),所述NAP模塊進(jìn)一步包括: 發(fā)送濾波器模塊,其通信地耦合到所述交換序列生成器以在沒(méi)有調(diào)用NAP功能時(shí)將外 出包傳遞到用于向外傳輸?shù)奈锢礞溌?,以及在調(diào)用所述NAP功能時(shí)阻止外出包。
7. 根據(jù)權(quán)利要求2所述的系統(tǒng),所述NAP模塊進(jìn)一步包括: NAP配置寄存器,其通信地耦合到所述交換序列生成器以加載交換序列生成器參數(shù),在 NAP初始化時(shí)加載多組發(fā)送模板,以及在NAP初始化時(shí)加載接收濾波器。
8. 根據(jù)權(quán)利要求1所述的系統(tǒng),其進(jìn)一步包括: 操作系統(tǒng),其通信地耦合到所述主機(jī)處理器;以及 所述操作系統(tǒng)的API處理部件,其攔截來(lái)自所述應(yīng)用程序的所述NAP擴(kuò)展網(wǎng)絡(luò)API函 數(shù)調(diào)用,將所述NAP擴(kuò)展網(wǎng)絡(luò)API函數(shù)調(diào)用傳遞到所述NAP API封裝器模塊,以及攔截非 NAP擴(kuò)展網(wǎng)絡(luò)API函數(shù)調(diào)用。
9. 根據(jù)權(quán)利要求8所述的系統(tǒng),其進(jìn)一步包括: 主機(jī)網(wǎng)絡(luò)堆棧,其通信地耦合到所述API處理部件以接收所述非NAP擴(kuò)展網(wǎng)絡(luò)API函 數(shù)調(diào)用。
10. 根據(jù)權(quán)利要求8所述的系統(tǒng),其進(jìn)一步包括: 網(wǎng)絡(luò)設(shè)備,其處理網(wǎng)絡(luò)包組裝與分解; 所述網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)設(shè)備處理器部件,其為所述網(wǎng)絡(luò)設(shè)備提供處理循環(huán),所述處理循 環(huán)獨(dú)立于與所述主機(jī)處理器相關(guān)聯(lián)的處理循環(huán)。
11. 一種延長(zhǎng)無(wú)線移動(dòng)設(shè)備中的睡眠狀態(tài)的方法,其包括: 在網(wǎng)絡(luò)應(yīng)用程序代理應(yīng)用程序編程接口封裝器模塊即NAP API封裝器模塊處,接收由 網(wǎng)絡(luò)感知主機(jī)應(yīng)用程序發(fā)布的NAP擴(kuò)展API函數(shù)調(diào)用,所述NAP擴(kuò)展API函數(shù)調(diào)用包括與 主機(jī)可卸載包交換序列相關(guān)聯(lián)的參數(shù)值;以及 當(dāng)所述主機(jī)處理器處于睡眠模式狀態(tài)或者當(dāng)所述主機(jī)處理器正在睡眠模式狀態(tài)之間 轉(zhuǎn)換時(shí),在NAP模塊處攔截并響應(yīng)與所述主機(jī)可卸載包交換序列相關(guān)聯(lián)的至少一個(gè)進(jìn)入網(wǎng) 絡(luò)包。
12. 根據(jù)權(quán)利要求11所述的方法,其進(jìn)一步包括: 響應(yīng)于所述NAP擴(kuò)展API函數(shù)調(diào)用而發(fā)布NAP封裝器函數(shù)調(diào)用;以及 根據(jù)與所述NAP封裝器函數(shù)調(diào)用相關(guān)聯(lián)的參數(shù)來(lái)配置接收濾波器。
13. 根據(jù)權(quán)利要求11所述的方法,其進(jìn)一步包括: 接收與所述主機(jī)可卸載包交換序列相關(guān)聯(lián)的所述進(jìn)入包; 選擇適用于所述主機(jī)可卸載包交換序列的發(fā)送模板組;以及 填入符合所述發(fā)送模板并響應(yīng)于所述進(jìn)入包而產(chǎn)生的至少一個(gè)發(fā)送包的字段。
14. 根據(jù)權(quán)利要求11所述的方法,其進(jìn)一步包括: 確定所述進(jìn)入包是否與所述主機(jī)可卸載包交換序列相關(guān)聯(lián); 將所述進(jìn)入包傳遞到交換序列生成器;以及 通過(guò)所述NAP模塊傳遞與所述主機(jī)可卸載包交換序列不相關(guān)聯(lián)的包并傳遞到主機(jī)網(wǎng) 絡(luò)堆棧。
15. 根據(jù)權(quán)利要求14所述的方法,其進(jìn)一步包括: 使用由所述交換序列生成器提供的字段數(shù)據(jù)來(lái)組裝所述發(fā)送包;以及 將所述發(fā)送包發(fā)送到用于向外傳輸?shù)奈锢礞溌贰?br>
16. 根據(jù)權(quán)利要求11所述的方法,其進(jìn)一步包括: 配置NAP接收濾波器。
17. 根據(jù)權(quán)利要求11所述的方法,在NAP發(fā)送濾波器處的活動(dòng)進(jìn)一步包括: 當(dāng)沒(méi)有調(diào)用NAP功能時(shí)將外出包傳遞到用于傳輸?shù)奈锢礞溌?;以? 當(dāng)調(diào)用所述NAP功能時(shí)阻止所述外出包。
18. 根據(jù)權(quán)利要求11所述的方法,其進(jìn)一步包括: 發(fā)布與所述主機(jī)可卸載交換序列的終止相關(guān)聯(lián)的主機(jī)喚醒命令;以及 在所述主機(jī)可卸載包交換序列完成之后將與所述進(jìn)入包相關(guān)聯(lián)的存儲(chǔ)數(shù)據(jù)字段轉(zhuǎn)發(fā) 到主機(jī)網(wǎng)絡(luò)堆棧。
19. 根據(jù)權(quán)利要求11所述的方法,NAP初始化活動(dòng)進(jìn)一步包括: 加載交換序列生成器參數(shù); 加載可由所述交換序列生成器選擇的多組發(fā)送模板;以及 加載接收濾波器。
20. -種無(wú)線移動(dòng)設(shè)備中的網(wǎng)絡(luò)應(yīng)用代理系統(tǒng)即NAP系統(tǒng),其包括: NAP API封裝器模塊,其從網(wǎng)絡(luò)感知應(yīng)用程序接收與主機(jī)可卸載包交換序列相關(guān)聯(lián)的 NAP擴(kuò)展網(wǎng)絡(luò)應(yīng)用程序編程接口函數(shù)調(diào)用即NAP擴(kuò)展網(wǎng)絡(luò)API函數(shù)調(diào)用,并且作為響應(yīng)發(fā)布 NAP封裝器函數(shù)調(diào)用; 交換序列生成器,其配置接收濾波器,啟用發(fā)送濾波器,接收與所述主機(jī)可卸載包交換 序列相關(guān)聯(lián)的至少一個(gè)進(jìn)入包,選擇適用于所述主機(jī)可卸載包交換序列的發(fā)送模板,填入 符合所述發(fā)送模板并響應(yīng)于所述進(jìn)入包而產(chǎn)生的至少一個(gè)發(fā)送包的字段,以及發(fā)布與所述 主機(jī)可卸載包交換序列的終止相關(guān)聯(lián)的主機(jī)喚醒命令; 接收濾波器模塊,其通信地耦合到所述交換序列生成器以將所述進(jìn)入包識(shí)別為與所述 主機(jī)可卸載包交換序列相關(guān)聯(lián),將所述進(jìn)入包傳遞到所述交換序列生成器,并且將與所述 主機(jī)可卸載包交換序列不相關(guān)聯(lián)的包傳遞到主機(jī)網(wǎng)絡(luò)堆棧;以及 發(fā)送模板模塊,其通信地耦合到所述交換序列生成器以存儲(chǔ)可由所述交換序列生成器 選擇的一組發(fā)送模板,利用由所述交換序列生成器選擇的模板和由所述交換序列生成器提 供的字段數(shù)據(jù)來(lái)組裝所述發(fā)送包,以及將所述發(fā)送包發(fā)送到用于向外傳輸?shù)奈锢礞溌贰?br>
【文檔編號(hào)】H04L29/12GK104067597SQ201380006308
【公開(kāi)日】2014年9月24日 申請(qǐng)日期:2013年1月23日 優(yōu)先權(quán)日:2012年1月23日
【發(fā)明者】A·鮑姆, E·A·克萊因, A·扎克斯 申請(qǐng)人:德克薩斯儀器股份有限公司