專利名稱:用于減少功耗和總線活動的方法與裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及數(shù)據(jù)網(wǎng)絡(luò)與總線領(lǐng)域。更具體地,在一個方面,本發(fā)明致力于降 低串行總線網(wǎng)絡(luò)上的功耗和/或總線活動。
背景技術(shù):
在典型的網(wǎng)絡(luò)(例如采用如USB等的串行化協(xié)議的網(wǎng)絡(luò))中,運(yùn)行在主機(jī)設(shè)備上 的軟件將主機(jī)控制器配置成持續(xù)地或者周期性地輪詢每個客戶機(jī)設(shè)備,以便確定給定的客 戶機(jī)是否有數(shù)據(jù)要傳輸?shù)街鳈C(jī)。這種輪詢通常是不考慮特定時間段上指定要傳輸?shù)街鳈C(jī)的 實(shí)際數(shù)據(jù)量而發(fā)生的。因此,在相當(dāng)長的時間段上客戶機(jī)沒有數(shù)據(jù)要發(fā)送到主機(jī)的情況下, 相當(dāng)多的系統(tǒng)資源常常被牽制以進(jìn)行很大程度上沒有產(chǎn)出的輪詢過程。每次當(dāng)主機(jī)通過典型的串行總線輪詢客戶機(jī)時,發(fā)生三件所關(guān)注的事情。首先,一 部分可用的總線帶寬必須用于將輪詢消息從主機(jī)傳送到客戶機(jī),并將對應(yīng)的響應(yīng)從容戶機(jī) 傳送回主機(jī)(或者指定的代理服務(wù)器)。在沒有數(shù)據(jù)準(zhǔn)備好或可用于發(fā)送到主機(jī)的情況下, 以上提到的過程耗盡可用的總線帶寬來發(fā)送很大程度無關(guān)的信號。其次,對于從主機(jī)發(fā)送到客戶機(jī)的每個輪詢請求,主機(jī)必須訪問存儲在其主存儲 器中的至少一個描述符或者其它數(shù)據(jù)結(jié)構(gòu)。這種對主機(jī)存儲器的重復(fù)訪問使得特別是處理 器管道帶寬的使用成為必需,并由此消耗主機(jī)設(shè)備的大量功率。第三,客戶機(jī)必須耗盡功率來響應(yīng)輪詢信號的持續(xù)進(jìn)攻。當(dāng)客戶機(jī)沒有數(shù)據(jù)要發(fā) 送到主機(jī)時,這種輪詢變得完全沒有必要,功率消耗在產(chǎn)生一連串否定的響應(yīng)上。如果客戶 機(jī)設(shè)備碰巧是電池供電的設(shè)備(就象許多USB設(shè)備那樣),那么這種功耗將顯著地縮短客戶 機(jī)的電池壽命,由此導(dǎo)致降低的用戶滿意度和其它可能的缺陷。而且,以上提到的輪詢方法是主機(jī)驅(qū)動的;即,主機(jī)或者其代理服務(wù)器發(fā)出要客戶 機(jī)響應(yīng)的輪詢消息。在某些環(huán)境下,這可能是一種缺陷,因?yàn)橹鳈C(jī)常常沒有關(guān)于其正輪詢的 客戶機(jī)的狀態(tài)、功率狀況等的相關(guān)信息(或者至少分析這種信息的能力)。換句話說,會有 比現(xiàn)有技術(shù)中所教習(xí)的類型的單純“ ”周期性輪詢(即,本質(zhì)上是死板的并且不考慮客戶 機(jī)處理或設(shè)備條件而運(yùn)行的輪詢)更適宜的時間、狀況和/或機(jī)制能用來與客戶機(jī)處理通 信。在這種情況下,還可能期望使客戶機(jī)處理/設(shè)備控制至少某些方面的通信,而不僅僅是 對來自主機(jī)或者主機(jī)代理服務(wù)器的激勵作出反應(yīng)。
6
現(xiàn)有技術(shù)的設(shè)備已經(jīng)嘗試以多種途徑緩解前面所述的問題。例如,授予Obregon 等人且于 1995 年 7 月 11 日發(fā)布的、題為“Input buffercircuit having sleep mode and bus hold function”的美國專利第5,432,462號公開了具有睡眠模式和總線保持能力的輸 入緩沖電路。緩沖電路的輸入部分由低于緩沖電路的電源電壓的運(yùn)行電壓操作,由此使靜 態(tài)的功率耗散最小。包括睡眠模式電路是為了有效地將輸入信號與緩沖電路的剩余部分?jǐn)?開,由此使動態(tài)的功率耗散最小。包括總線保持電路是為了在當(dāng)除去輸入信號時保持出現(xiàn) 在輸入緩沖電路的輸出端上的邏輯狀態(tài),由此進(jìn)一步降低靜態(tài)的功率耗散。授予Flannery,Michael R.并于 1998 年 8 月 25 日發(fā)布的、題為 “Method and apparatus of providing power management using aself-powered universal serial bus (USB) device"的美國專利第5,799,196號公開了外圍總線提供可選低功率源的能力與 現(xiàn)有的功率管理軟件結(jié)合,其中現(xiàn)有的功率管理軟件控制計算機(jī)的主電源單元來向計算機(jī) 中保持活動的邏輯裝置提供備用功率,用以監(jiān)視系統(tǒng)環(huán)境中的預(yù)定喚醒事件。自供電的通 用串行總線設(shè)備提供活動邏輯裝置所需的最小功率,而沒有雙級電源單元的低效或者結(jié)合 低功率和全功率單元的開銷。授予 Zucker 并于 2000 年8 月 8 日發(fā)布的、題為 “Method andstructure for interrupt polling signal bandwidth allocation inuniversal serial bus(USB) system"的美國專利第6,101,550號公開了包括分配單元的通用串行總線控制器,其中分 配單元配置成向輪詢列表中的多個節(jié)點(diǎn)分配帶寬,每個節(jié)點(diǎn)都能夠存儲代表相應(yīng)輪詢信號 的至少一個描述符。這些節(jié)點(diǎn)排列在具有多個葉節(jié)點(diǎn)、一個根節(jié)點(diǎn)和至少一級中間節(jié)點(diǎn)的 二進(jìn)制樹結(jié)構(gòu)中,其中中間節(jié)點(diǎn)是葉節(jié)點(diǎn)的后繼節(jié)點(diǎn)和根節(jié)點(diǎn)的前繼節(jié)點(diǎn)。“睡眠”、“掛起”、“暫停”及類似的命令是數(shù)據(jù)聯(lián)網(wǎng)領(lǐng)域中眾所周知的。例如參見授 予Fontenot的美國專利第4,616,359號和授予Port等人的美國專利第5,243,596號,這 兩個專利總體上公開了 “停止”分組或者暫停幀在抑制網(wǎng)絡(luò)上分組傳輸中的使用。這些方 法總體上與數(shù)據(jù)流(例如,接收FIFO緩沖)相關(guān)聯(lián)而不考慮功率管理。暫停幀是在滿足條 件(例如,進(jìn)入的FIFO處于高水位等)時由接收實(shí)體發(fā)出的,并在條件清除或者滿足其它 此類準(zhǔn)則時通過由接收方傳送的“恢復(fù)”或者類似的幀釋放。也可以使用超時設(shè)定;例如, 當(dāng)達(dá)到觸發(fā)條件時,停止發(fā)送分組達(dá)指定的時間段,然后再恢復(fù)。類似地,在USB的特定環(huán)境下,“掛起”命令可以用于將總線置于掛起狀態(tài),并由此 停止所有的總線流量,包括主機(jī)與客戶機(jī)之間的輪詢。然而,直到發(fā)生了從主機(jī)發(fā)送的對應(yīng) USB “恢復(fù)”信號,總線上的通信才能恢復(fù)。如果與USB恢復(fù)命令相關(guān)聯(lián)的客戶機(jī)恢復(fù)通信 等待時間是大約幾十毫秒,則這將顯著地妨礙總線性能,因此不是對所有意圖和目的(包 括與輪詢消息傳送的控制相關(guān)聯(lián)的那些,等等)都可行的。除了前面所述的方法,現(xiàn)有技術(shù)既沒有教習(xí)也沒有暗示用于降低與總線相關(guān)聯(lián)的 輪詢活動、以便特別是降低總線活動和功耗的有效技術(shù)。此外,現(xiàn)有技術(shù)的解決方案趨于完全聚焦到以主機(jī)為中心的方法,而不是允許客 戶機(jī)驅(qū)動的方法,或者甚至不是二者的混合的方法(或者利用來自外部源的信息的方法)。因此,需要用于降低總線活動(具體而言是不必要的活動)的方法與裝置,以便保 存主機(jī)和客戶機(jī)兩者的功率,還釋放可用的總線帶寬用于有用的操作。同時,這種方法與裝 置理想地不應(yīng)當(dāng)由于例如與總線操作相關(guān)聯(lián)的等待時間或者由于任何其它原因而顯著妨
7礙總線性能。這些方法與裝置在高速串行化總線協(xié)議(例如,USB、IEEE-Std. 1394,等等) 的環(huán)境下將是特別有用的,其中在高速串行化總線協(xié)議的環(huán)境下這種等待時間與無產(chǎn)出的 輪詢操作目前需要額外的費(fèi)用。
發(fā)明內(nèi)容
本發(fā)明通過提供特別是用于降低網(wǎng)絡(luò)中功耗與總線活動的方法與裝置而滿足了 前述的需求。根據(jù)本發(fā)明的第一方面,公開了一種適于通過總線與第二設(shè)備通信的數(shù)據(jù)設(shè)備。 在一種實(shí)施例中,總線包括串行總線,而所述數(shù)據(jù)設(shè)備包括配置成輪詢所述第二設(shè)備的邏 輯裝置,所述輪詢根據(jù)第一輪詢策略發(fā)生;配置成從所述第二設(shè)備接收信號的邏輯裝置,該 信號向所述數(shù)據(jù)設(shè)備指示根據(jù)第二策略輪詢所述第二設(shè)備;及配置成根據(jù)所述第二策略輪 詢所述第二設(shè)備的邏輯裝置。在本發(fā)明的第二方面中,公開了一種操作數(shù)據(jù)設(shè)備的方法。在一種實(shí)施例中,該方 法包括在第一狀態(tài)下,根據(jù)第一策略輪詢所述數(shù)據(jù)設(shè)備的客戶機(jī);從所述客戶機(jī)接收用 以改變到第二狀態(tài)的信號;將所述數(shù)據(jù)設(shè)備改變到第二狀態(tài);及在所述第二狀態(tài)下,根據(jù) 第二策略輪詢所述客戶機(jī)。在本發(fā)明的第三方面中,公開了一種操作數(shù)據(jù)設(shè)備的方法,其中所述數(shù)據(jù)設(shè)備輪 詢與其進(jìn)行數(shù)據(jù)通信的客戶機(jī)設(shè)備。在一種實(shí)施例中,該方法包括在第一狀態(tài)下操作所 述數(shù)據(jù)設(shè)備,該第一狀態(tài)包括第一輪詢策略和第一狀態(tài)轉(zhuǎn)換策略中的至少一個;識別事件; 及至少部分地基于該識別步驟而將所述第一輪詢策略或者所述第一狀態(tài)轉(zhuǎn)換策略中的至 少一個分別改變到第二輪詢策略或者第二狀態(tài)轉(zhuǎn)換策略。在本發(fā)明的第四方面中,公開了一種適于通過串行總線與主機(jī)設(shè)備通信的客戶機(jī) 設(shè)備。在一種實(shí)施例中,所述主機(jī)設(shè)備適于輪詢所述客戶機(jī)設(shè)備,以確定所述客戶機(jī)設(shè)備是 否有數(shù)據(jù)要傳輸?shù)剿鲋鳈C(jī)設(shè)備,且所述客戶機(jī)設(shè)備包括第一模塊,該第一模塊適于確定 所述主機(jī)設(shè)備是否應(yīng)當(dāng)以與所述客戶機(jī)設(shè)備目前被輪詢的頻率不同的頻率來輪詢所述客 戶機(jī)設(shè)備;及第二模塊,該第二模塊適于將信號傳送到所述主機(jī)設(shè)備,該信號向所述主機(jī)設(shè) 備指示以所述不同的頻率輪詢所述客戶機(jī)設(shè)備。在本發(fā)明的第五方面中,公開了一種在適于被第二設(shè)備輪詢的數(shù)據(jù)設(shè)備中使用的 方法。在一種實(shí)施例中,該方法包括確定所述第二設(shè)備是否應(yīng)當(dāng)根據(jù)與當(dāng)前輪詢所述數(shù)據(jù) 設(shè)備所使用的第一策略不同的策略來輪詢所述數(shù)據(jù)設(shè)備;及將信號傳送到所述第二設(shè)備, 該信號向所述第二設(shè)備指示根據(jù)所述不同的策略來輪詢所述數(shù)據(jù)設(shè)備。在本發(fā)明的第六方面中,公開了一種控制系統(tǒng)。在一種實(shí)施例中,該控制系統(tǒng)適于 跨串行總線在第一和第二設(shè)備之間有效地輪詢并傳輸數(shù)據(jù),并且該控制系統(tǒng)包括狀態(tài)機(jī), 該狀態(tài)機(jī)具有與之相關(guān)聯(lián)的多個輪詢狀態(tài);及控制邏輯裝置,該控制邏輯裝置適于與所述 狀態(tài)機(jī)通信,并利用所述狀態(tài)機(jī)和輪詢狀態(tài)來實(shí)現(xiàn)至少一種輪詢策略。在一種變型例中,所 述狀態(tài)機(jī)基本上位于所述第一設(shè)備上,而所述控制邏輯裝置基本上位于所述第二設(shè)備上。 所述第一設(shè)備包括主機(jī)設(shè)備,而所述第二設(shè)備是功率受限的客戶機(jī)設(shè)備,串行總線是USB 兼容總線。在本發(fā)明的第七方面中,公開了一種在輪詢操作中使用的狀態(tài)機(jī)。在一種變型例中,所述狀態(tài)機(jī)包括有限狀態(tài)機(jī)(FSM),并且位于主機(jī)設(shè)備上并至少部分地受客戶機(jī)處理或 邏輯控制。在另一種實(shí)施例中,所述狀態(tài)機(jī)包括事件驅(qū)動的FSM。在本發(fā)明的第八方面中,公開了一種適于設(shè)備間輪詢的計算機(jī)可讀介質(zhì)。在一種 實(shí)施例中,該介質(zhì)包括其上布置有計算機(jī)程序的存儲設(shè)備,所述程序適于根據(jù)對一個或多 個參數(shù)(例如,無產(chǎn)出的輪詢間隔,等等)的評估而有選擇地輪詢一個或多個客戶機(jī)設(shè)備。參考附圖及如下給出的對示例性實(shí)施例的具體描述,本領(lǐng)域普通技術(shù)人員將會立 即認(rèn)識到本發(fā)明的其它特征與優(yōu)點(diǎn)。
圖1A是例示了在典型的現(xiàn)有技術(shù)USB串行總線網(wǎng)絡(luò)中通過USB電纜連接到主機(jī) 設(shè)備的兩個客戶機(jī)設(shè)備的功能性框圖。圖1B是例示了通過多個數(shù)據(jù)管道與主機(jī)設(shè)備進(jìn)行數(shù)據(jù)通信的兩個客戶機(jī)設(shè)備的 邏輯框圖。圖2是例示了根據(jù)現(xiàn)有技術(shù)的在主機(jī)設(shè)備與客戶機(jī)設(shè)備之間的典型輪詢交換的 順序圖。圖3是例示了根據(jù)本發(fā)明第一實(shí)施例的第一輪詢序列的順序圖。圖4是例示了根據(jù)本發(fā)明第二實(shí)施例的第二輪詢序列的順序圖。圖5是例示了根據(jù)本發(fā)明第三實(shí)施例的第三輪詢序列的順序圖。圖6是例示了根據(jù)本發(fā)明第四實(shí)施例的第四輪詢序列的順序圖。圖7a是以高級形式例示了根據(jù)本發(fā)明一種實(shí)施例的狀態(tài)機(jī)的操作的邏輯流程 圖。圖7b是以高級形式例示了根據(jù)本發(fā)明另一種實(shí)施例的狀態(tài)機(jī)的操作的邏輯流程 圖。圖8是例示了由圖7a所示的通用狀態(tài)機(jī)的一種示例性實(shí)施的邏輯流程圖。圖9是例示了由圖7b所示的狀態(tài)機(jī)的一種示例性實(shí)施的邏輯流程圖。
具體實(shí)施例方式如在此所使用的,術(shù)語“客戶機(jī)設(shè)備”與“終端用戶設(shè)備”包括但不限于機(jī)頂盒(例 如,DSTB)、個人計算機(jī)(PC)和微型計算機(jī)(無論是臺式、膝上型或者其它形式)、及移動設(shè) 備(例如,手持式計算機(jī)、PDA、攝像機(jī)、個人媒體設(shè)備(PMD)(例如,iPod 、或Motorola的 R0KR、LG的“Chocolate”)和智能電話)或者以上所述的任意組合。如在此所使用的,術(shù)語“計算機(jī)程序”或者“軟件”的意思是包括執(zhí)行功能的任何序 列或者人或機(jī)器可認(rèn)知的步驟。這種程序可以在包括例如C/C++、FOrtran、C0B0L、PASCAL、 匯編語言、標(biāo)記語言(例如,HTML、SGML、XML、VoXML)等的幾乎任何編程語言或環(huán)境以及諸 如公用對象請求代理體系結(jié)構(gòu)(C0RBA)、Java (包括J2ME、Java Beans等)、二進(jìn)制執(zhí)行環(huán) 境(BREW)等的面向?qū)ο蟓h(huán)境中給出。如在此所使用的,術(shù)語“集成電路(IC)”指具有任何集成等級(包括但不限于 ULSI、VLSI和LSI)而不考慮加工或基底材料(包括但不限于Si、SiGe、CMOS和GaAs)的 任何類型的設(shè)備。IC可以包括例如存儲器設(shè)備(例如,DRAM、SRAM、DDRAM、EEPR0M/閃速、
9ROM)、數(shù)字處理器、SoC設(shè)備、FPGA、ASIC、ADC、DAC、收發(fā)器、存儲器控制器和其它設(shè)備及其
任意組合。如在此所使用的,術(shù)語“存儲器”包括適于存儲數(shù)字?jǐn)?shù)據(jù)的任何類型的集成電路或 者其它存儲設(shè)備,包括但不限于 ROM、PROM、EEPROM, DRAM、SDRAM、DDR/2 SDRAM、EDO/FPMS、 RLDRAM、SRAM、“閃速”存儲器(例如,NAND/N0R)和 PSRAM。如在此所使用的,術(shù)語“微處理器”和“數(shù)字處理器”通常意味著包括所有類型的數(shù) 字處理設(shè)備,包括但不限于數(shù)字信號處理器(DSP)、精簡指令集計算機(jī)(RISC)、通用(CISC) 處理器、微處理器、門陣列(例如,F(xiàn)PGA)、PLD、可重配置計算結(jié)構(gòu)(RCF)、陣列處理器、安全 微處理器及專用集成電路(ASIC)。此類數(shù)字處理器可以包含在單個一體式的IC管芯中,或 者跨多個部件分布。如在此所使用的,術(shù)語“網(wǎng)絡(luò)”和“載體網(wǎng)絡(luò)”通常指任何類型的數(shù)據(jù)、電信或其 它網(wǎng)絡(luò),包括但不限于數(shù)據(jù)網(wǎng)絡(luò)(包括MAN、PAN、WAN、LAN、WLAN、微型網(wǎng)、微微網(wǎng)、互聯(lián)網(wǎng) 及內(nèi)聯(lián)網(wǎng))、光纜-同軸電纜混合(HFC)網(wǎng)絡(luò)、衛(wèi)星網(wǎng)絡(luò)及電信網(wǎng)絡(luò)。此類網(wǎng)絡(luò)及其部分可 以使用任何一種或多種不同的拓?fù)浣Y(jié)構(gòu)(例如,環(huán)、總線、星形、循環(huán)等)、傳送介質(zhì)(例如, 有線的/RF電纜的、RF無線的、毫米波的、光的等)和/或通信或聯(lián)網(wǎng)協(xié)議(例如,SONET、 DOCSIS、IEEEStd. 802. 3,802. 11、ATM、X. 25、幀中繼、3GPP、3GPP2、WAP、SIP、UDP、FTP、RTP/ RTCP、H. 323 等)。如在此所使用的,術(shù)語“網(wǎng)絡(luò)接口,,指與部件、網(wǎng)絡(luò)或處理的任何信號、數(shù)據(jù)或軟 件接口,包括但不限于Firewire (例如,F(xiàn)W400、FW800等)、USB (例如,USB2)、以太網(wǎng)(例 如,10/100、10/100/1000 (千兆以太網(wǎng))、10千兆以太網(wǎng)等)、MoCA、串行ATA(例如,SATA、 e-SATA、SATAII)、超 ATA/DMA、Coaxsys (例如,TVnet )、射頻調(diào)諧器(例如,帶內(nèi)或 00B、電 纜調(diào)制解調(diào)器等)、WiFi (802. lla、b、g、n)、WiMAX(802. 16) .PAN(802. 15)或者 IrDA 家族中 的那些。如在此所使用的,術(shù)語“輪詢”不加限制地指任何通信、信號、動作或查詢,它們或 者引起來自設(shè)備的響應(yīng),或者可以通過它們從這種設(shè)備獲得信息。如在此所使用的,術(shù)語“串行總線”不加限制地指適于根據(jù)串行化協(xié)議操作的任何 總線或者其它數(shù)據(jù)傳輸、發(fā)送、接收或者接口結(jié)構(gòu)。這種串行化協(xié)議的例子包括USB(通用 串行總線)協(xié)議、USB 2. 0、移動USB(USB On-The-Go)等。如在此所使用的,術(shù)語“無線,,意味著任何無線信號、數(shù)據(jù)、通信或者其它接口,包 括但不限于 Wi-Fi、藍(lán)牙、3G、HSDPA/HSUPA、TDMA、CDMA(例如,IS-95A、WCDMA 等)、FHSS、 DSSS、GSM、PAN/802. 15、WiMAX(802. 16) ,802. 20、窄帶 /FDMA、OFDM、PCS/DCS、模擬蜂窩式、 ⑶PD、衛(wèi)星系統(tǒng)、毫米波或者微波系統(tǒng)、聲波的和紅外線的(S卩,IrDA)。概述本發(fā)明提供了特別是用于減少數(shù)據(jù)網(wǎng)絡(luò)中(例如,串行總線上)的功耗和總線活 動的方法與裝置。本發(fā)明的突出方面包括1)電功率的保存(例如,電池供電的客戶機(jī)設(shè) 備中電池壽命的保存);2)總線上無關(guān)事務(wù)的消除,由此釋放帶寬用于有用的操作;3)通過 例如減少處理器開銷和存儲器訪問來降低主機(jī)設(shè)備的功耗。如前面所指出的,主機(jī)設(shè)備(例如,USB主機(jī))可以重復(fù)地輪詢USB客戶機(jī)設(shè)備, 以確定該客戶機(jī)是否有任何數(shù)據(jù)要傳輸?shù)街鳈C(jī)。這種輪詢頻繁而持續(xù)地發(fā)生,而不管在給定時間段上指定要傳輸?shù)街鳈C(jī)的實(shí)際數(shù)據(jù)量如何。因此,本發(fā)明的一個主要目的是減少和 /或消除這種不必要的輪詢。如以上所陳述的,每次當(dāng)主機(jī)輪詢客戶機(jī)時,發(fā)生三件事,這由本發(fā)明的各個方面 來解決。首先,一部分可用的總線帶寬必須用于將輪詢消息從主機(jī)傳送到客戶機(jī),并將對應(yīng) 的響應(yīng)從客戶機(jī)傳送回主機(jī)。在沒有數(shù)據(jù)要發(fā)送到主機(jī)的情況下,這耗盡可用的總線帶寬 來發(fā)送無關(guān)的信號。其次,對于從主機(jī)發(fā)送到客戶機(jī)的每個輪詢請求,主機(jī)必須訪問存儲在 其存儲器中的至少一個描述符或者數(shù)據(jù)結(jié)構(gòu)。這消耗了主機(jī)設(shè)備中的大量功率。第三,客戶 機(jī)必須耗盡功率來響應(yīng)持續(xù)反復(fù)的輪詢信號。當(dāng)客戶機(jī)沒有數(shù)據(jù)要發(fā)送到主機(jī)時,這種輪 詢是完全沒有必要的,而且功率消耗在產(chǎn)生一連串否定的響應(yīng)上。如果客戶機(jī)設(shè)備碰巧是 電池供電的或者是具有有限功率存儲或訪問(就象許多USB設(shè)備那樣)的其它此類設(shè)備, 那么這種無關(guān)的功耗會顯著地縮短客戶機(jī)的操作或者工作循環(huán)。本發(fā)明的示例性實(shí)施例通過提供適應(yīng)性的方法來解決這些問題中的每一個;即, 適于一發(fā)現(xiàn)無產(chǎn)出的輪詢時段(例如,若干連續(xù)輪詢消息已經(jīng)從主機(jī)發(fā)送到客戶機(jī)且所有 這些消息都被客戶機(jī)否定確認(rèn)的時段)就逐步切換到越來越低的輪詢頻率的狀態(tài)機(jī)。當(dāng)檢 測到這種時段時,客戶機(jī)就通知主機(jī)(或者主機(jī)自己檢測這種時段),然后狀態(tài)機(jī)切換到使 用較少輪詢的狀態(tài)(同樣,較少的對應(yīng)功率使用和相關(guān)聯(lián)的總線活動)。當(dāng)檢測到每個連續(xù) 的無產(chǎn)出輪詢時段時,狀態(tài)機(jī)逐步切換到更低或更少強(qiáng)度的輪詢狀態(tài)。在其最低狀態(tài),主機(jī) 與客戶機(jī)設(shè)備之間的所有輪詢都停止。根據(jù)一種變型例,客戶機(jī)持續(xù)搜索指定為傳輸?shù)街鳈C(jī)設(shè)備的數(shù)據(jù)的存在。這種搜 索處理在每種狀態(tài)下都發(fā)生。當(dāng)檢測到這種數(shù)據(jù)時,客戶機(jī)通知主機(jī),且狀態(tài)機(jī)重新開始到 其最高狀態(tài)(發(fā)生最大量輪詢的狀態(tài))。應(yīng)當(dāng)指出,當(dāng)狀態(tài)機(jī)處于其最高狀態(tài)時,由于輪詢 頻率處于最高,因此連續(xù)最近或相鄰傳輸操作之間的延遲是最小化的。在其它實(shí)施例中,使用不同的輪詢策略,例如狀態(tài)機(jī)根據(jù)對指定時段內(nèi)是否將發(fā) 生數(shù)據(jù)傳輸?shù)拇_定性、推理性或概率性確定直接移動到最低狀態(tài)的策略,由此實(shí)現(xiàn)最高可 能的性能和最低的等待時間。還公開了輪詢“爆發(fā)(burst)”模式,其中客戶機(jī)(或者主機(jī)) 可以在當(dāng)期望或者需要最小等待時間時調(diào)用加速的輪詢速率。以上改進(jìn)在移動設(shè)備中高速串行化數(shù)據(jù)總線(例如,USB、IEEE_Std. 1394)的環(huán)境 下是特別有用的,其中在高速串行化數(shù)據(jù)總線的環(huán)境下過多或者無產(chǎn)出的輪詢既在性能方 面強(qiáng)加了沉重的負(fù)擔(dān),又加速消耗了客戶機(jī)(及有可能甚至是主機(jī))的寶貴和有限的電池 資源。本發(fā)明還特別很好地適用于單個控制實(shí)體(例如主機(jī))輪詢客戶機(jī)狀態(tài)的任何總線, 而且這種輪詢在例如許多無線協(xié)議中影響了諸如帶寬或功率的其它資源。對示例性實(shí)施例的具體描述現(xiàn)在具體描述本發(fā)明的示例性實(shí)施例。盡管這些實(shí)施例是針對與通用串行總線 (USB)標(biāo)準(zhǔn)兼容的串行總線討論的,但本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)認(rèn)識到本發(fā)明不僅僅局限 于USB兼容串行總線。根據(jù)本發(fā)明,各種其它應(yīng)用與實(shí)施例也是可能的,并且被認(rèn)為在本發(fā) 明的范圍之內(nèi)。而且,盡管主要是在基本雙設(shè)備拓?fù)浣Y(jié)構(gòu)的環(huán)境下進(jìn)行討論的,但應(yīng)當(dāng)理解其它 拓?fù)浣Y(jié)構(gòu)(例如,一個主機(jī)多個客戶機(jī)、一個客戶機(jī)多個主機(jī)等)也可以與本發(fā)明相容地使用。
11
此外,盡管術(shù)語“端點(diǎn)”在給出的環(huán)境下使用,但這不應(yīng)當(dāng)認(rèn)為是限制;即,客戶機(jī) 設(shè)備或者其它實(shí)體可以包括或者可以不包括網(wǎng)絡(luò)中的邏輯或物理“端點(diǎn)”。此外,盡管有些實(shí)施例是在有線數(shù)據(jù)總線或者連接(例如,電纜)的環(huán)境下示出 的,但本發(fā)明同樣適用于無線替換物或者接口,不加限制地例如802. 11,802. 16、PAN、藍(lán)牙、 紅外線或光接口等。圖1A和1B分別以物理級和邏輯級例示了 USB串行總線網(wǎng)絡(luò)116的普通現(xiàn)有技術(shù) 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。USB主機(jī)控制器108將主機(jī)設(shè)備102 (例如,筆記本計算機(jī)或個人計算機(jī)) 連接到一個或多個USB客戶機(jī)設(shè)備104,由此形成USB串行總線網(wǎng)絡(luò)116。圖1A的主機(jī)控 制器108包括一個或多個USB端口 114,每個端口都適于接納USB電纜106和相關(guān)聯(lián)的連接 器。應(yīng)當(dāng)指出,當(dāng)前的USB標(biāo)準(zhǔn)還允許將主機(jī)控制器108連接到第一客戶機(jī)設(shè)備104的配 置,其中第一客戶機(jī)設(shè)備104連接到第二客戶機(jī)設(shè)備104,第二客戶機(jī)設(shè)備104又連接到第 三客戶機(jī)設(shè)備104,依此類推,由此允許整個USB串行總線網(wǎng)絡(luò)116處于單個菊花鏈上(未 示出)。多個邏輯通道(在此稱為“管道” 112)從主機(jī)控制器108蔓延到客戶機(jī)設(shè)備上稱 為端點(diǎn)110的邏輯實(shí)體。在所例示的例子中這些端點(diǎn)110 (及它們各自的管道112)在每個 方向編號為0-15,因此單個設(shè)備可以有多至32個有效的管道——16個進(jìn)入給定的設(shè)備,16 個從給定的設(shè)備出來。應(yīng)當(dāng)指出,本示例中的每個管道112都只在一個方向上傳輸數(shù)據(jù)。圖2是例示了典型的現(xiàn)有技術(shù)輪詢策略的順序圖,該輪詢策略涉及USB主機(jī)設(shè)備 102在擴(kuò)展的時間段上輪詢USB客戶機(jī)設(shè)備104 (圖1A)。主機(jī)設(shè)備102通過詢問客戶機(jī)設(shè) 備104是否該客戶機(jī)設(shè)備104有任何數(shù)據(jù)要傳輸“進(jìn)”主機(jī)設(shè)備102而開始。在本例中,這 被指定為“進(jìn)入請求(in-reqUest)”202。如果客戶機(jī)設(shè)備104確定有數(shù)據(jù)要傳輸?shù)街鳈C(jī) 102,則它以后面跟有指定要傳輸?shù)膶?shí)際數(shù)據(jù)的應(yīng)答(稱為“ACK”)響應(yīng)主機(jī)102(如前面所 討論的,參照圖4和6)。另一方面,如果客戶機(jī)設(shè)備104沒有任何數(shù)據(jù)要傳輸?shù)街鳈C(jī)102,則它僅僅以否定 應(yīng)答(稱為“NAK”204)響應(yīng)。在圖2所示的現(xiàn)有技術(shù)輪詢策略下,這種輪詢頻繁地并以規(guī) 定周期(實(shí)際上是連續(xù)地)發(fā)生,而不管連續(xù)重復(fù)的NAK 204或者其它信息的任何個數(shù)或 時段如何。圖3是例示了根據(jù)本發(fā)明一種實(shí)施例的輪詢策略的順序圖。在這種實(shí)施例中,客 戶機(jī)設(shè)備104(例如,設(shè)備驅(qū)動器,盡管也可以使用客戶機(jī)設(shè)備中的其它處理或?qū)嶓w或者指 定的控制代理服務(wù)器)有規(guī)律地檢查輪詢活動的無產(chǎn)出時段306。在這種實(shí)施例中,輪詢活 動無產(chǎn)出時段306是通過檢測到四個連續(xù)NAK 204而確定的;然而,該個數(shù)(四個)僅僅是 例示性的,而且,根據(jù)本發(fā)明的范圍,一個輪詢活動無產(chǎn)出時段306中所包括的NAK 204的 實(shí)際個數(shù)可以設(shè)置成任何個數(shù)。此外,NAK的個數(shù)可以動態(tài)地確定與調(diào)整;例如,在第一時 段或運(yùn)行條件下是四(4)個,在第二時段或運(yùn)行條件下是三(3)個,等等??蛇x地,控制器 可以監(jiān)視確定沒有數(shù)據(jù)傳輸?shù)臅r段,由此指示不活動性(即,代替計算NAK的個數(shù))。在另一種實(shí)施例中,與通過連續(xù)NAK 204測量的相反,輪詢活動無產(chǎn)出時段306是 由從客戶機(jī)104傳輸?shù)街鳈C(jī)102的數(shù)據(jù)的量或者速率來確定的。例如,如果在給定時段上 傳輸?shù)臄?shù)據(jù)量(例如,全部字節(jié))大,則對無產(chǎn)出的確定給予較高的閾值;即,每個單位時間 傳輸?shù)拇罅繑?shù)據(jù)本身就被認(rèn)為是“有產(chǎn)出的”。
12
在又一種實(shí)施例中,對無產(chǎn)出的確定是至少部分地基于持續(xù)時間而不是所接收或 所發(fā)出的NAK的個數(shù)來作出的。在許多情況下,在NAK的個數(shù)和經(jīng)過的時間段之間有直接 的對應(yīng)關(guān)系(例如,每秒X次的規(guī)律輪詢將導(dǎo)致已知的經(jīng)過時間段)。然而,在使用周期性 或條件性/事件性輪詢(例如,一發(fā)生特定事件(例如,數(shù)據(jù)傳輸?shù)耐瓿?就輪詢)的情況 下,時間段和輪詢間隔可能不直接關(guān)聯(lián)。客戶機(jī)中的接收/發(fā)送緩沖內(nèi)容(例如,等級、變化率等)或者其它此類標(biāo)記也可 以用于唯一或者部分確定這種無產(chǎn)出輪詢什么時候發(fā)生或者什么時候在下一數(shù)據(jù)傳送事 件之間有預(yù)期的等待時間。為此,還可以檢查上游的其它設(shè)備上的緩沖;例如,如果客戶機(jī) 正在從上游設(shè)備接收它將傳送到輪詢主機(jī)的數(shù)據(jù),則為了放松輪詢間隔或者以別的方式改 變輪詢策略,該上游設(shè)備可以用作“先行(look-ahead),,信息的源。一旦檢測到輪詢活動無產(chǎn)出時段306,或者改變輪詢策略或操作的其它原因,客戶 機(jī)設(shè)備104驅(qū)動器就向主機(jī)設(shè)備102發(fā)送被主機(jī)102解釋為改變其輪詢策略(例如,降低 其頻率)的命令的信號。在圖3所示的實(shí)施例中,由客戶機(jī)發(fā)送的信號包括零長度的或空 的數(shù)據(jù)分組307,但是,根據(jù)本發(fā)明的范圍,可選地可以利用其它信號實(shí)現(xiàn)相同的效果。例 如,幀或分組中的一個或多個標(biāo)志位或其它此類數(shù)據(jù)元素可以設(shè)置成指示客戶機(jī)進(jìn)行輪詢 策略變化的期望。在一種實(shí)施例中,客戶機(jī)設(shè)備104將輪詢頻率與信號一起發(fā)送到主機(jī)設(shè)備102。在 例如兩個標(biāo)志位的情況下,22或4種不同的策略或狀態(tài)可以被客戶機(jī)傳輸,例如四個不同 的輪詢速率或頻率,這可以基于客戶機(jī)(或者另一實(shí)體)對后續(xù)數(shù)據(jù)傳輸即將來臨的可能 性的確定來選擇,或者僅僅根據(jù)預(yù)定的策略(例如,遞減一次,輪詢達(dá)n個時段,再遞減一 次,依此類推)來選擇。在另一種實(shí)施例中,在主機(jī)向客戶機(jī)104發(fā)出每個輪詢之前,客戶 機(jī)104指定主機(jī)設(shè)備102使用的合適的延遲時段。還應(yīng)當(dāng)理解,除了“帶內(nèi)”數(shù)據(jù)通道,一個或多個旁帶或帶外通道也可以用于發(fā)送 前述的輪詢控制信號。例如,與帶內(nèi)通道相反,在有些實(shí)施例中,信號是通過旁帶通道從客 戶機(jī)104傳送到主機(jī)102的。這可以以多種途徑實(shí)現(xiàn),包括例如使用專用于這個目的的特 定USB “管道”,或者可選地,通過使用完全獨(dú)立的傳送介質(zhì)(例如,獨(dú)立的電纜和/或外圍 網(wǎng)絡(luò))。作為還一種可選,可以適應(yīng)性地選擇用于這種發(fā)信號的通道;例如,作為主或帶內(nèi) 通道的帶寬消耗的函數(shù),從而在當(dāng)主通道顯著加載時,最小化向該主通道增加的任何進(jìn)一 步開銷。這種類型的“智能”通道選擇可以例如利用算法或計算機(jī)程序、固件等或者其它期 望的裝置來控制。一接收到信號(例如,空數(shù)據(jù)分組307),主機(jī)設(shè)備102就調(diào)整其輪詢策略,例如通 過相應(yīng)地降低輪詢頻率。在圖3所示的實(shí)施例中,新的輪詢頻率等于最初輪詢頻率的三分 之一,但這個量也是為了例示的目的而使用的,而且可以基于應(yīng)用而變化。根據(jù)本發(fā)明的范 圍,輪詢頻率可以降低任何量或百分比,而且甚至可以確定性地降低(例如,基于一個或多 個其它參數(shù)或變量,例如帶寬消耗、剩余的電池壽命等)。以這種方式,輪詢頻率的降低可以 適應(yīng)性地修整成適應(yīng)主機(jī)/客戶機(jī)設(shè)備的現(xiàn)行(prevailing)操作性或其它條件。在剩余 電池壽命或電量的簡單情況下,當(dāng)客戶機(jī)和/或主機(jī)電池電量低時,將期望輪詢頻率更迅 速的降低,由此最大程度地保存電池。在給定本公開內(nèi)容的情況下,其它此類策略也將是本 領(lǐng)域普通技術(shù)人員很容易理解的。
就象在圖3的例子中很容易看到的,一降低輪詢頻率,各種輪詢活動空閑時段308 就有利地代替將發(fā)生輪詢的時段,由此實(shí)現(xiàn)減少帶寬消耗、功耗和處理器開銷的期望目的。圖4是例示了根據(jù)本發(fā)明另一種實(shí)施例的輪詢策略的順序圖。為了圖4的目的, 假定客戶機(jī)設(shè)備104已經(jīng)檢測到輪詢活動無產(chǎn)出時段306的存在,并已經(jīng)按照圖3降低了 輪詢的頻率。在圖4所示的實(shí)施例中,客戶機(jī)設(shè)備104周期性地監(jiān)視其自己,以確定它是否有數(shù) 據(jù)要傳輸?shù)街鳈C(jī)設(shè)備102。最后,客戶機(jī)設(shè)備104在第一時間410檢測到這種數(shù)據(jù)的存在。 一檢測到這種數(shù)據(jù),客戶機(jī)設(shè)備104就在向主機(jī)102發(fā)送ACK 412之前等待下一個進(jìn)入請 求202。在一種變型例中,主機(jī)102對ACK 412的接收觸發(fā)最初輪詢頻率的恢復(fù)(在這種情 況下,輪詢頻率就象圖3中時段內(nèi)給出的)。但是,應(yīng)當(dāng)指出,根據(jù)本發(fā)明,各種其它 觸發(fā)器也可以用于實(shí)現(xiàn)相同的目的,包括例如定時器或者時間段的到期、關(guān)于客戶機(jī)處理 或設(shè)備中其它活動的輸入信號(例如,指示數(shù)據(jù)傳輸可能即將來臨、主機(jī)/客戶機(jī)設(shè)備從電 池到持續(xù)電源的變換等)。然后,數(shù)據(jù)傳輸在數(shù)據(jù)傳輸時段414中發(fā)生。當(dāng)傳輸最終完成時,客戶機(jī)設(shè)備104 的輪詢以其初始頻率(或者另一種規(guī)定的策略,例如頻率隨時間向上或向下傾斜)繼續(xù),而 在一種變型例中,過程按照圖3重復(fù)。圖5是例示了根據(jù)本發(fā)明另一種實(shí)施例的輪詢策略的順序圖。為了圖5的目的, 假定主機(jī)102或者客戶機(jī)設(shè)備104已經(jīng)檢測到輪詢活動無產(chǎn)出時段306的存在,并已經(jīng)按 照圖3降低了輪詢的頻率。在圖5所示的實(shí)施例中,主機(jī)設(shè)備102檢測無產(chǎn)出的總線活動時段516。在一種變 型例中,對這種時段的檢測是至少部分地基于一連串連續(xù)的NAK 204,就象圖3所例示的實(shí) 施例中那樣。在另一種變型例中,對這種時段的檢測是至少部分地基于對連續(xù)的輪詢活動 空閑時段308的檢測。在又一種變型例中,對這種時段516的檢測是基于特定時間段上客 戶機(jī)104已經(jīng)傳輸?shù)街鳈C(jī)102的實(shí)際數(shù)據(jù)量。在給定上述討論的情況下,也將認(rèn)識到還有 其它策略。一旦檢測到第二個無產(chǎn)出總線活動時段516,主機(jī)102就使客戶機(jī)進(jìn)入暫?;驋?起狀態(tài)(例如,USB掛起)518。相應(yīng)地,客戶機(jī)104掛起到主機(jī)102的所有總線通信。以這 種方式,主機(jī)設(shè)備102與客戶機(jī)設(shè)備104之間的輪詢被停止,直到隨后客戶機(jī)設(shè)備104向主 機(jī)102發(fā)送喚醒(例如,USB恢復(fù))(如以下所討論的)。這有利地節(jié)省了主機(jī)和客戶機(jī)設(shè) 備中的功率,并只提供最小的等待時間。掛起狀態(tài)還可以以多播或者甚至廣播方式發(fā)布到總線上(例如,定址到總線上的 設(shè)備子集,或者可選地總線上的所有設(shè)備),從而同時終止來自多個設(shè)備的輪詢。這還可以 以交錯或類似的方式執(zhí)行;例如“掛起”第一輪詢主機(jī);等著看結(jié)果(例如,監(jiān)視器帶寬、處 理器循環(huán)、功率等),然后根據(jù)需要相應(yīng)地掛起第二個和后續(xù)的主機(jī)。類似地,客戶機(jī)(或者 主機(jī))可以被編程為基于策略掛起或“放棄(backoff)”,例如當(dāng)RNG(隨機(jī)數(shù)發(fā)生器,例如 LFSR等)用于生成掛起輪詢的隨機(jī)放棄間隔時,類似于CSMA/CD中所使用的技術(shù)或其它介 質(zhì)訪問技術(shù)。以這種方式,來自多個設(shè)備的輪詢不會同時全部停止,而是根據(jù)更“得體的遞 減”。類似地,時隙技術(shù)(例如,AL0HA等)可以用于分配用于接收和/或?qū)崿F(xiàn)掛起狀態(tài)的 主機(jī)時隙。
圖6是例示了根據(jù)本發(fā)明又一種實(shí)施例的輪詢策略的順序圖。為了圖6的目的, 假定客戶機(jī)設(shè)備104已經(jīng)進(jìn)入圖5中的USB掛起狀態(tài)。在圖6所示的實(shí)施例中,客戶機(jī)設(shè)備104周期性地監(jiān)視自己,以確定是否有數(shù)據(jù)要 傳輸?shù)街鳈C(jī)設(shè)備102。在這個時候,總線維持在掛起狀態(tài)520。在時間410檢測到要傳輸?shù)?數(shù)據(jù)后,客戶機(jī)設(shè)備104向主機(jī)設(shè)備102發(fā)送USB恢復(fù)622。在一種變型例中,對由主機(jī)設(shè) 備102接收到的USB恢復(fù)622的接收充當(dāng)向主機(jī)設(shè)備102的用于恢復(fù)以初始頻率(即,在 圖3中時段內(nèi)給出的頻率)進(jìn)行輪詢的信號。在另一種變型例中,一接收到USB恢復(fù)622,主機(jī)設(shè)備102就繼續(xù)以調(diào)整后的頻率 (即,在圖3中、之后時段內(nèi)給出的頻率)進(jìn)行輪詢,并且只有在接收到ACK 412時才進(jìn)入 初始輪詢頻率。然后,在數(shù)據(jù)傳輸時段414中發(fā)生數(shù)據(jù)的傳輸。在完成傳輸后,對客戶機(jī)設(shè)備104 的輪詢繼續(xù)以其初始頻率進(jìn)行,而且,在一種變型例中,過程按照圖3重復(fù)。圖7a是根據(jù)本發(fā)明一種實(shí)施例的、包括三種狀態(tài)的通用狀態(tài)機(jī)的高級例示。在這 種實(shí)施例中,三種狀態(tài)全部都是主機(jī)設(shè)備102的狀態(tài),但每個狀態(tài)轉(zhuǎn)換是由客戶機(jī)104驅(qū) 動的。如圖7a所示,狀態(tài)集合包括(i)高狀態(tài)700,代表高頻率輪詢的狀態(tài);(ii)低狀態(tài) 750,代表低頻率輪詢的狀態(tài);及(iii)中間(“中級”)狀態(tài)730,代表以比高狀態(tài)700低但 比低狀態(tài)750高的頻率輪詢的狀態(tài)。應(yīng)當(dāng)理解,盡管描述了“高”、“中級”、“低”狀態(tài),但可 以使用更多或更少個數(shù)的狀態(tài),而且這些狀態(tài)可以與除輪詢頻率之外的一個或多個參數(shù)相 關(guān)。例如,“高”狀態(tài)可能包括比較高等級的立即性(低等待時間)、對來自特定客戶機(jī)的數(shù) 據(jù)傳輸請求的比較高的優(yōu)先級狀態(tài),等等。如圖7a所示,中級狀態(tài)730和低狀態(tài)750都包括到高狀態(tài)700的狀態(tài)轉(zhuǎn)換,高狀 態(tài)700包括到中級狀態(tài)730的狀態(tài)轉(zhuǎn)換,而中級狀態(tài)730包括到低狀態(tài)750的狀態(tài)轉(zhuǎn)換。但 是,也可以使用其它轉(zhuǎn)換邏輯。為了簡化,從這個圖中忽略了多個轉(zhuǎn)換元素,它們在圖8中 更好地示出。圖8是圖7a所示狀態(tài)機(jī)的一種實(shí)施例(實(shí)現(xiàn))的例示。在圖8中,高狀態(tài)700、中 級狀態(tài)730和低狀態(tài)750中的每個都由虛線指示。穿越這些線的箭頭指示狀態(tài)轉(zhuǎn)換。狀態(tài) 機(jī)的物理實(shí)現(xiàn)(不管是以軟件、固件、硬件還是其組合,包括眾所周知的FSM或者有限狀態(tài) 機(jī),和ED-FSM或事件驅(qū)動FSM)在電子與計算機(jī)領(lǐng)域是眾所周知的,因此在這里不進(jìn)一步描 述。在圖8所例示的實(shí)施例中,狀態(tài)機(jī)在高狀態(tài)700開始。一遇到判決塊810,狀態(tài)機(jī) 就確定客戶機(jī)104是否有任何數(shù)據(jù)要發(fā)送到主機(jī)102。在本實(shí)施例中,這種邏輯是通過從主 機(jī)102向客戶機(jī)104傳送進(jìn)入請求202來實(shí)現(xiàn)的,然而也可以使用其它技術(shù)(例如,象在本 文中別的地方所描述的那樣被動監(jiān)聽來自客戶機(jī)的信息或信號)。如果客戶機(jī)104有數(shù)據(jù) 要發(fā)送,則在步驟814中傳送數(shù)據(jù),然后過程重復(fù),直到所有指定要傳輸?shù)臄?shù)據(jù)都發(fā)送到了 主機(jī)102。在沒有數(shù)據(jù)可用于傳輸?shù)街鳈C(jī)102的情況下,狀態(tài)機(jī)在判決塊812確定其是否接 收到了轉(zhuǎn)換信號。如前面所指出的,這種信號的一種實(shí)施例包括空數(shù)據(jù)分組307,但代替地 使用其它信號或通信機(jī)制也是符合本發(fā)明的范圍的。 應(yīng)當(dāng)指出,判決塊810和812不一定要象圖8所示的那樣順序執(zhí)行;圖8僅僅是例 示性的。在各種實(shí)施例中,判決塊810和812構(gòu)成獨(dú)立的邏輯、線程、過程、模塊和/或其組合。例如,在一種實(shí)施例中,判決塊812是由將在接收到空數(shù)據(jù)分組307時生成中斷的獨(dú)立 過程處理的。這種中斷將觸發(fā)到中級狀態(tài)730的狀態(tài)轉(zhuǎn)換。此外,甚至當(dāng)這些步驟810和812順序執(zhí)行時,評估這些狀態(tài)的頻率也不需要相等 或者對稱。例如,在一種實(shí)施例中,判決塊810每評估一(1)次,判決塊812評估五(5)次。 因此,這些頻率可以以無數(shù)種途徑配置和調(diào)整,并實(shí)現(xiàn)一個或多個目的,例如,為了最小化 CPU使用或者方便或增強(qiáng)主機(jī)設(shè)備102中響應(yīng)的立即性。所有此類配置都屬于本發(fā)明的范圍。一旦主機(jī)已經(jīng)接收到信號(在這種情況下,是空數(shù)據(jù)分組307),狀態(tài)機(jī)就轉(zhuǎn)換到 中級狀態(tài)730。如前所述,示例性中級狀態(tài)730包括比高狀態(tài)700低的輪詢頻率。在一種 變型例中,獲得更低的輪詢頻率是通過在有效輪詢的時段之間插入延遲時段來實(shí)現(xiàn)的。例 如,客戶機(jī)設(shè)備104向主機(jī)102指定延遲或掩蔽時段,而主機(jī)102利用這種指定的延遲時段 (在此標(biāo)識為中斷時段840)從大塊輪詢切換到中斷的或掩蔽的輪詢。在另一種變型例中,延遲是通過使過程或線程睡眠達(dá)固定的時間段來獲得的。在 任何一種情況下,主機(jī)102都在判決塊842再次輪詢客戶機(jī)104之前暫停該延遲時段。如 果客戶機(jī)104在這個時候有任何要發(fā)送到主機(jī)102的數(shù)據(jù),則狀態(tài)機(jī)轉(zhuǎn)換回高狀態(tài)700,然 后過程如上所述地重復(fù)。在一種實(shí)施例中,轉(zhuǎn)換元素包括ACK 412,但其它信號、事件或者其 組合也可以用于這個目的。如果客戶機(jī)104沒有任何要發(fā)送到主機(jī)102的數(shù)據(jù),則在判決 塊844,狀態(tài)機(jī)確定它是否接收到USB掛起轉(zhuǎn)換518。就象前面一樣,判決塊842和844不需要象圖8所示地那樣順序執(zhí)行;圖8僅僅是 例示性的。判決塊842和844可以構(gòu)成獨(dú)立的邏輯、線程、過程、模塊或者其組合。例如,在 優(yōu)選實(shí)施例中,判決塊844是將在接收到USB掛起檢測或轉(zhuǎn)換518時生成中斷的獨(dú)立過程。 這種中斷將觸發(fā)到低狀態(tài)750的狀態(tài)轉(zhuǎn)換。此外,如前所述,甚至當(dāng)步驟842和844順序執(zhí) 行時,評估這些狀態(tài)的頻率也不需要相等或者對稱。在USB掛起轉(zhuǎn)換已經(jīng)從客戶機(jī)104發(fā)送并且由主機(jī)102接收到之后,總線活動在 步驟860處停止。在這個時候,主機(jī)102不輪詢客戶機(jī)104。相反,主機(jī)周期性地監(jiān)聽從客 戶機(jī)104或者代理服務(wù)器(即,除客戶機(jī)之外的指定實(shí)體,例如總線主控、另一個客戶機(jī)等, 可以向該實(shí)體分配發(fā)布喚醒命令的任務(wù))發(fā)送的USB恢復(fù)命令。在有些實(shí)施例中,這種監(jiān) 聽時段是利用中斷和/或異常實(shí)現(xiàn)的。在其它實(shí)施例中,接收器對象被周期性地輪詢。當(dāng)最終在主機(jī)102處接收到USB恢復(fù)命令622時,狀態(tài)機(jī)轉(zhuǎn)換回高狀態(tài)700的判 決塊810,然后過程重復(fù)。圖7b是根據(jù)本發(fā)明另一種實(shí)施例的、包括n個狀態(tài)的狀態(tài)機(jī)的高級例示。在所例 示的實(shí)施例中,這n個狀態(tài)是主機(jī)設(shè)備102的各個狀態(tài),但是由客戶機(jī)104驅(qū)動。如圖7b 所示,狀態(tài)集合包括(i)高狀態(tài)700,代表相對高頻率輪詢的狀態(tài);(ii)低狀態(tài)750,代表
相對低頻率輪詢的狀態(tài);及(iii)多個中間或中級狀態(tài)730、732........738,代表接連漸
變或遞增的輪詢頻率。任何上述狀態(tài)(包括前面關(guān)于圖7a所述的那些)之間的漸變都不 必是恒定的或者線性的,而且事實(shí)上如果期望的話還可以作為運(yùn)行條件的函數(shù)而變化。例 如,當(dāng)需要更低的延遲或等待時間時,不同的狀態(tài)可以在頻率方面向上偏移,雖然仍然維持 相同的間距。作為另一種可選,可以使用非線性的(例如,指數(shù)級的或者對數(shù)級的)漸變, 使得更多狀態(tài)在頻譜的一端被“捆綁到一起”;例如,高=X、中級工=X/2、中級2 = X/4、中級3 = X/8、中級4 = X/16及低=X/32,等等。如圖7b所示,多個中級狀態(tài)730,732........738和低狀態(tài)750中的每個都包括
到高狀態(tài)700的狀態(tài)轉(zhuǎn)換,高狀態(tài)700包括到中級狀態(tài)730的狀態(tài)轉(zhuǎn)換,中級狀態(tài)738包括 到低狀態(tài)750的狀態(tài)轉(zhuǎn)換,而且所述多個中級狀態(tài)中的每個其它中級狀態(tài)都包括到一個緊 鄰更低中級狀態(tài)的狀態(tài)轉(zhuǎn)換。但是,也可以使用其它轉(zhuǎn)換邏輯。圖9是圖7b所示狀態(tài)機(jī)的一種實(shí)施例的低級例示。為了簡化,高狀態(tài)700和低狀 態(tài)750由小方框代表,如圖9所示。圖9例示了 n狀態(tài)機(jī),在高狀態(tài)700和中級狀態(tài)738之間總共存在有n_3個中級 狀態(tài)(在這個例子中,從圖9中看是中級狀態(tài)730和732)??偟膩碚f,圖9中的n狀態(tài)機(jī)象 圖8中那樣運(yùn)行,但顯著的區(qū)別是,當(dāng)機(jī)器轉(zhuǎn)換到越來越低的狀態(tài)時,與每個中斷時段840 關(guān)聯(lián)的暫停變得越來越長。因此,隨著n增大,圖9的n狀態(tài)機(jī)允許客戶機(jī)設(shè)備104在減慢 輪詢頻率時有更漸變的方法。在一種變型例中,主機(jī)設(shè)備102保持對其當(dāng)前所處狀態(tài)的跟蹤,并且一接收到空 數(shù)據(jù)分組307就適當(dāng)?shù)剞D(zhuǎn)換。在另一種變型例中,延遲時段本地保持在主機(jī)102上,并且一 接收到每個轉(zhuǎn)換信號就遞增。然后,一接收到ACK 412就將延遲時段復(fù)位。在又一種變型 例中,客戶機(jī)設(shè)備104將合適的延遲或中斷時段840 (或者頻率)與轉(zhuǎn)換信號一起發(fā)送到主 機(jī)設(shè)備102。在還一種變型例中,客戶機(jī)104向主機(jī)102發(fā)出不同的信號,其中每個信號都 被主機(jī)102不同地解釋成指示到特定狀態(tài)的轉(zhuǎn)換。如前面所指出的,狀態(tài)轉(zhuǎn)換還可以根據(jù)不同的規(guī)則或策略(例如,有選擇地跳過 一個或多個狀態(tài),等等)發(fā)生,而且這些規(guī)則可以通過上述由客戶機(jī)發(fā)出的信號或命令來 強(qiáng)加。例如,在一種實(shí)施例中,客戶機(jī)發(fā)出的命令可以包括指示要使用的個別狀態(tài)轉(zhuǎn)換(或 者轉(zhuǎn)換策略)的代碼(例如,分組中的一個或多個位,等等)。例如,可以使用兩(2)位(22 或4種狀態(tài)),來指示要在主機(jī)中采用的四種不同轉(zhuǎn)換策略。合適策略的選擇可以基于客 戶機(jī)中的參數(shù)(例如,剩余的電池容量、數(shù)據(jù)活動性、處理器管道關(guān)機(jī)(睡眠模式),等等), 使得確定可選擇的轉(zhuǎn)換策略是對不同情況進(jìn)行了優(yōu)化的。如果電池保存是關(guān)鍵的考慮或者 屬性,則使其最優(yōu)的策略將優(yōu)先于比如使主通道帶寬保存最優(yōu)的策略(這可以是相同的策 略,但不是必需)而被選擇。而且,盡管以上實(shí)施例已經(jīng)主要在主機(jī)狀態(tài)機(jī)的環(huán)境下進(jìn)行了描述,其中主機(jī)狀 態(tài)機(jī)實(shí)質(zhì)上受相關(guān)聯(lián)的客戶機(jī)的控制或驅(qū)動,但應(yīng)當(dāng)理解其它方法也可以使用。例如,在一 種另選實(shí)施例中,主機(jī)的狀態(tài)機(jī)同時受主機(jī)處理和客戶機(jī)處理的控制或者驅(qū)動,例如當(dāng)在 主機(jī)的狀態(tài)機(jī)的運(yùn)行中考慮與兩個設(shè)備關(guān)聯(lián)的功率/開銷/帶寬消耗的時候。而且,基于客戶機(jī)的狀態(tài)機(jī)也可以采用,使得主機(jī)是驅(qū)動器。作為還有另一種可選,客戶機(jī)可以是其自己狀態(tài)機(jī)的驅(qū)動器,主機(jī)基本上假設(shè)為 純“反應(yīng)性”角色(即,只在當(dāng)客戶機(jī)指示時啟動、終止或者改變輪詢簡檔)。在給定前面的公開內(nèi)容的情況下,本領(lǐng)域普通技術(shù)人員將會認(rèn)識到無數(shù)種其它的 狀態(tài)機(jī)配置與控制策略。在其它實(shí)施例中,使用不同的輪詢策略,例如上述主機(jī)或客戶機(jī)狀態(tài)機(jī)根據(jù)指定 時段內(nèi)是否將發(fā)生數(shù)據(jù)傳輸?shù)拇_定性、推測性或概率性確定而直接移動到目標(biāo)狀態(tài)(例 如,最低狀態(tài))的策略。在一種變型例中,如果數(shù)據(jù)是在主機(jī)的上一次輪詢后立即被客戶機(jī)
17接收或處理的(即,最長可能的延遲),則輪詢頻率或間隔被設(shè)置成不提供可感知的延遲。在另一種變型例中,使用確定性方法,使得客戶機(jī)設(shè)備中數(shù)據(jù)活動性的標(biāo)記用作 到狀態(tài)機(jī)控制過程的輸入。例如,如果客戶機(jī)處理器管道被放置在“睡眠”模式(即,為了 功率保存)下,而且它采用五(5)個機(jī)器循環(huán)來喚醒管道并處理要發(fā)送的數(shù)據(jù),則輪詢延遲 可以相應(yīng)地放松,因?yàn)?,在任何情況下,落到管道“喚醒”狀態(tài)實(shí)現(xiàn)之前任何地方的輪詢事件 都得不到服務(wù)。類似地,如果客戶機(jī)設(shè)備數(shù)據(jù)路徑的FIFO或者緩沖鏈具有與其關(guān)聯(lián)的等待 時間,而且先行操作(緩沖“吸氣”等)指示還沒有接收到進(jìn)入的數(shù)據(jù),則輪詢延遲可以至 少設(shè)置成與數(shù)據(jù)路徑等待時間一樣長??蛇x地,可以使用概率性方法,例如已知在總線上將數(shù)據(jù)從客戶機(jī)設(shè)備傳輸出去 的需求是根據(jù)概率性、推理性或類似函數(shù)而分布的方法。考慮一種例示性情況,其中在100 個或更多個“無產(chǎn)出”輪詢時段后數(shù)據(jù)傳輸以非常低的頻率(比如,只有10%的時間)統(tǒng) 計性或歷史性地發(fā)生。以這種方式,狀態(tài)機(jī)控制邏輯裝置可以被編程為訪問這種信息,以 確定合適的采樣頻率。在前面的例示性情況下,這可能等同于將采樣頻率降低到最低水 平或狀態(tài),盡管“命中”(數(shù)據(jù)傳輸事件)可能造成響應(yīng)中的顯著等待時間,但由于90% (100% -10% )的時間沒有數(shù)據(jù)事件發(fā)生,因此也不會導(dǎo)致這種延遲。輪詢“爆發(fā)”模式也是可能的,其中當(dāng)期望或者需要最小化的等待時間時,客戶機(jī) (或者主機(jī))可以調(diào)用加速的輪詢速率。例如,當(dāng)需要最快可能的數(shù)據(jù)傳輸時,可以調(diào)用最 大輪詢速率。這種短期速率甚至可能比前面關(guān)于圖7a和7b所描述的“高”速率還要快,而 且可能是以功耗、帶寬消耗和/或處理器開銷為代價的。因此,這通常是在需要的時候才調(diào) 用的,或者僅僅非常短的持續(xù)時間。最后,應(yīng)當(dāng)指出,盡管本發(fā)明的示例性實(shí)施例主要是就主機(jī)-客戶機(jī)體系結(jié)構(gòu)來 描述的,其中數(shù)據(jù)傳輸是在客戶機(jī)與主機(jī)之間,但這決不是必需的。例如,負(fù)責(zé)輪詢的“主 機(jī)”設(shè)備可以充當(dāng)另一設(shè)備的網(wǎng)絡(luò)代理服務(wù)器,其中數(shù)據(jù)真正地是要從客戶機(jī)傳送到該另 一設(shè)備,或者數(shù)據(jù)要從該另一設(shè)備發(fā)送到客戶機(jī)。而且,對帶寬消耗的任何考慮都可以反映 用于發(fā)送/接收數(shù)據(jù)的總線的狀況,其中該總線可以是或者可以不是與“主機(jī)”與客戶機(jī)之 間的通信經(jīng)其而發(fā)生的總線相同的總線。將認(rèn)識到,盡管本發(fā)明的特定方面是關(guān)于方法的特定步驟順序描述的,但這些描 述僅僅是用于例示本發(fā)明更廣泛的方法,而且可以根據(jù)需要被特定的應(yīng)用修改。在特定條 件下,特定的步驟可以成為不必要的或者可選的。此外,特定步驟或功能性可以添加到所公 開的實(shí)施例,或者兩個或多個步驟的執(zhí)行次序可以調(diào)換。所有這些變化都被認(rèn)為包含在文 本所公開和請求保護(hù)的本發(fā)明中。盡管以上具體描述已經(jīng)示出、描述并指出了本發(fā)明的新穎特征,如應(yīng)用到各實(shí)施 例中的那樣,但應(yīng)當(dāng)理解,在不背離本發(fā)明的情況下,本領(lǐng)域技術(shù)人員可以對所例示的設(shè)備 或處理的形式和細(xì)節(jié)進(jìn)行各種刪除、替換和改變。以上描述是目前被認(rèn)為執(zhí)行本發(fā)明的最 佳模式。這種描述決不意味著限制,而應(yīng)當(dāng)認(rèn)為是用于例示本發(fā)明的通用原理。本發(fā)明的 范圍應(yīng)當(dāng)參考權(quán)利要求來確定。
權(quán)利要求
一種適于通過串行總線與第二設(shè)備通信的數(shù)據(jù)設(shè)備,該數(shù)據(jù)設(shè)備包括配置成輪詢所述第二設(shè)備的邏輯裝置,該輪詢是根據(jù)第一輪詢策略發(fā)生的;配置成從所述第二設(shè)備接收信號的邏輯裝置,該信號向所述數(shù)據(jù)設(shè)備指示根據(jù)第二策略輪詢所述第二設(shè)備;及配置成根據(jù)所述第二策略輪詢所述第二設(shè)備的邏輯裝置。
2.如權(quán)利要求1所述的數(shù)據(jù)設(shè)備,其中,所述第一輪詢策略包括以第一間隔輪詢,而所 述第二策略包括以不同于所述第一間隔的第二間隔進(jìn)行輪詢。
3.如權(quán)利要求2所述的數(shù)據(jù)設(shè)備,其中,所述信號包括空數(shù)據(jù)分組。
4.如權(quán)利要求1所述的數(shù)據(jù)設(shè)備,其中,所述串行總線包括USB兼容的串行總線。
5.如權(quán)利要求2所述的數(shù)據(jù)設(shè)備,其中,所述數(shù)據(jù)設(shè)備適于一從所述第二設(shè)備接收到 掛起命令就停止輪詢該第二設(shè)備。
6.如權(quán)利要求5所述的數(shù)據(jù)設(shè)備,其中,所述數(shù)據(jù)設(shè)備適于一從所述第二設(shè)備接收到 喚醒命令就恢復(fù)輪詢該第二設(shè)備。
7.如權(quán)利要求1所述的數(shù)據(jù)設(shè)備,其中,所述數(shù)據(jù)設(shè)備適于通過帶內(nèi)和旁帶或者帶外 通道與所述第二設(shè)備通信。
8.如權(quán)利要求7所述的數(shù)據(jù)設(shè)備,其中,所述數(shù)據(jù)設(shè)備適于一通過所述旁帶或帶外通 道從所述第二設(shè)備接收到第一命令就停止輪詢該第二設(shè)備。
9.一種操作數(shù)據(jù)設(shè)備的方法,包括在第一狀態(tài)下,根據(jù)第一策略輪詢所述數(shù)據(jù)設(shè)備的客戶機(jī); 從所述客戶機(jī)接收用以改變到第二狀態(tài)的信號; 將所述數(shù)據(jù)設(shè)備改變到第二狀態(tài);及 在所述第二狀態(tài)下,根據(jù)第二策略輪詢所述客戶機(jī)。
10.如權(quán)利要求9所述的方法,其中,所述信號包括空數(shù)據(jù)分組。
11.如權(quán)利要求9所述的方法,其中,所述數(shù)據(jù)設(shè)備包括USB兼容的設(shè)備。
12.如權(quán)利要求9所述的方法,還包括 從所述客戶機(jī)接收第一命令;及基本上響應(yīng)于接收到所述第一命令,將所述數(shù)據(jù)設(shè)備改變到第三狀態(tài),所述第三狀態(tài) 包括停止對所述客戶機(jī)的所有輪詢。
13.如權(quán)利要求12所述的方法,還包括 從所述客戶機(jī)接收第二命令;及基本上響應(yīng)于接收到所述第二命令,將所述數(shù)據(jù)設(shè)備改變到所述第一狀態(tài)。
14.如權(quán)利要求9所述的方法,其中,所述第一策略包括第一組輪詢規(guī)則,而所述第二 狀態(tài)包括至少部分地與所述第一組輪詢規(guī)則不同的第二組輪詢規(guī)則。
15.一種操作數(shù)據(jù)設(shè)備的方法,該數(shù)據(jù)設(shè)備輪詢與其進(jìn)行數(shù)據(jù)通信的客戶機(jī)設(shè)備,該方 法包括如下步驟在第一狀態(tài)下操作所述數(shù)據(jù)設(shè)備,所述第一狀態(tài)包括第一輪詢策略和第一狀態(tài)轉(zhuǎn)換策 略中的至少一個; 識別事件;以及至少部分地基于所述識別步驟,將所述第一輪詢策略或所述第一狀態(tài)轉(zhuǎn)換策略中的至少一個分別改變成第二輪詢策略或第二狀態(tài)轉(zhuǎn)換策略。
16.如權(quán)利要求15所述的方法,其中,所述數(shù)據(jù)通信包括通過基本上根據(jù)串行化總線 協(xié)議運(yùn)行的串行數(shù)據(jù)總線的通信,而且所述識別事件的步驟包括通過所述數(shù)據(jù)總線從所述 客戶機(jī)設(shè)備接收信號或命令。
17.如權(quán)利要求15所述的方法,其中所述第一輪詢策略包括以第一頻率輪詢所述客戶機(jī)設(shè)備,而所述第二輪詢策略包括以 第二頻率輪詢所述客戶機(jī)設(shè)備;及所述第一狀態(tài)轉(zhuǎn)換策略包括狀態(tài)之間以第一規(guī)定次序的轉(zhuǎn)換,而所述第二輪詢策略包 括狀態(tài)之間以不同于所述第一規(guī)定次序的第二規(guī)定次序的轉(zhuǎn)換。
18.—種適于通過串行總線與主機(jī)設(shè)備通信的客戶機(jī)設(shè)備,該主機(jī)設(shè)備適于輪詢所述 第二設(shè)備,以確定所述客戶機(jī)設(shè)備是否有數(shù)據(jù)要傳輸?shù)剿鲋鳈C(jī)設(shè)備,所述客戶機(jī)設(shè)備包 括第一模塊,適于確定所述主機(jī)設(shè)備是否應(yīng)當(dāng)以與所述客戶機(jī)設(shè)備當(dāng)前被輪詢的頻率不 同的頻率來輪詢該客戶機(jī)設(shè)備;及第二模塊,適于將信號傳送到所述主機(jī)設(shè)備,該信號向所述主機(jī)設(shè)備指示以所述不同 的頻率來輪詢所述客戶機(jī)設(shè)備。
19.如權(quán)利要求18所述的客戶機(jī)設(shè)備,其中,所述信號包括空數(shù)據(jù)分組。
20.如權(quán)利要求18所述的客戶機(jī)設(shè)備,其中,基于運(yùn)行在所述客戶機(jī)設(shè)備上的算法中 所指定的準(zhǔn)則,所述第一模塊確定所述主機(jī)設(shè)備是否應(yīng)當(dāng)以更低的頻率輪詢所述第二設(shè) 備。
21.如權(quán)利要求18所述的客戶機(jī)設(shè)備,其中,基于檢測到所述客戶機(jī)設(shè)備的無產(chǎn)出輪 詢時段,所述第一模塊確定所述主機(jī)設(shè)備是否應(yīng)當(dāng)以更低的頻率輪詢所述客戶機(jī)設(shè)備。
22.如權(quán)利要求18所述的客戶機(jī)設(shè)備,其中,基于確定出總線負(fù)載平均值,所述第一模 塊確定所述主機(jī)設(shè)備是否應(yīng)當(dāng)以更低的頻率輪詢所述客戶機(jī)設(shè)備。
23.如權(quán)利要求18所述的客戶機(jī)設(shè)備,其中,所述串行總線包括USB兼容的串行總線。
24.如權(quán)利要求23所述的客戶機(jī)設(shè)備,其中,所述客戶機(jī)設(shè)備還包括適于從所述主機(jī)設(shè)備接收掛起命令的第三模塊;及適于將恢復(fù)命令傳送到所述主機(jī)設(shè)備的第四模塊。
25.如權(quán)利要求24所述的客戶機(jī)設(shè)備,其中,所述第三模塊適于根據(jù)在可操作運(yùn)行在 所述主機(jī)設(shè)備上的算法中所指定的準(zhǔn)則來從所述主機(jī)設(shè)備接收掛起命令。
26.如權(quán)利要求24所述的客戶機(jī)設(shè)備,其中,所述第三模塊適于根據(jù)檢測到所述客戶 機(jī)設(shè)備的無產(chǎn)出輪詢時段來從所述主機(jī)設(shè)備接收掛起命令,所述檢測是在所述主機(jī)設(shè)備處 執(zhí)行的。
27.如權(quán)利要求24所述的客戶機(jī)設(shè)備,其中,所述第三模塊適于根據(jù)評估總線負(fù)載值 來從所述主機(jī)設(shè)備接收掛起命令。
28.如權(quán)利要求24所述的客戶機(jī)設(shè)備,其中,所述第四模塊適于根據(jù)在算法中所指定 的準(zhǔn)則將恢復(fù)命令傳送到所述主機(jī)設(shè)備,所述恢復(fù)命令使所述主機(jī)設(shè)備恢復(fù)輪詢。
29.如權(quán)利要求24所述的客戶機(jī)設(shè)備,其中,所述第四模塊適于根據(jù)所述客戶機(jī)設(shè)備 檢測到指定要傳輸?shù)剿鲋鳈C(jī)設(shè)備的數(shù)據(jù)來將狀態(tài)轉(zhuǎn)換命令傳送到所述主機(jī)設(shè)備。
30.如權(quán)利要求18所述的客戶機(jī)設(shè)備,還包括適于接收用以改變所述客戶機(jī)設(shè)備內(nèi)的 狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換策略的信號或命令的裝置。
31.一種在數(shù)據(jù)設(shè)備中使用的方法,該數(shù)據(jù)設(shè)備適于被第二設(shè)備輪詢,該方法包括如下 步驟確定所述第二設(shè)備是否應(yīng)當(dāng)根據(jù)與當(dāng)前用于輪詢所述數(shù)據(jù)設(shè)備的第一策略不同的策 略來輪詢該數(shù)據(jù)設(shè)備;及將信號傳送到所述第二設(shè)備,該信號向所述第二設(shè)備指示根據(jù)所述不同的策略輪詢所 述數(shù)據(jù)設(shè)備。
32.如權(quán)利要求31所述的方法,其中,所述不同的策略包括以與所述第一策略的頻率 不同的頻率進(jìn)行輪詢。
33.如權(quán)利要求32所述的方法,其中,所述不同的策略還包括掛起輪詢至少一個間隔, 所述間隔的持續(xù)時間既大于由所述不同的頻率指定的輪詢間隔,又大于所述第一策略的輪 詢間隔。
34.如權(quán)利要求31所述的方法,其中,對所述不同的策略的選擇至少部分地基于所述 數(shù)據(jù)設(shè)備內(nèi)的電源狀態(tài)或者功耗中的至少一個。
35.如權(quán)利要求31所述的方法,其中,對所述不同的策略的選擇至少部分地基于確定 出所述數(shù)據(jù)設(shè)備有數(shù)據(jù)要傳送到所述第二設(shè)備。
36.如權(quán)利要求31所述的方法,其中,所述確定步驟包括至少部分地基于評估運(yùn)行在 所述數(shù)據(jù)設(shè)備上的算法中所指定的一個或多個準(zhǔn)則,來確定所述第二設(shè)備是否應(yīng)當(dāng)以與所 述第一策略相關(guān)聯(lián)的頻率不同的頻率輪詢所述數(shù)據(jù)設(shè)備。
37.如權(quán)利要求36所述的方法,其中,所述一個或多個準(zhǔn)則包括檢測所述數(shù)據(jù)設(shè)備的 沒有數(shù)據(jù)可用于傳輸?shù)妮喸儠r段。
38.如權(quán)利要求31所述的方法,其中,所述數(shù)據(jù)設(shè)備和所述第二設(shè)備通過通用串行總 線(USB)協(xié)議總線進(jìn)行數(shù)據(jù)通信,所述方法還包括設(shè)置用于所述數(shù)據(jù)設(shè)備的USB掛起條件。
39.如權(quán)利要求38所述的方法,其中,所述設(shè)置USB掛起條件包括基于算法中所指定的 準(zhǔn)則來設(shè)置USB掛起條件。
40.一種用于跨串行總線在第一設(shè)備和第二設(shè)備之間有效地輪詢和傳輸數(shù)據(jù)的控制系 統(tǒng),該控制系統(tǒng)包括狀態(tài)機(jī),具有與之相關(guān)聯(lián)的多個輪詢狀態(tài);及控制邏輯裝置,適于與所述狀態(tài)機(jī)通信,并利用所述狀態(tài)機(jī)和輪詢狀態(tài)來實(shí)現(xiàn)至少一 種輪詢策略。
41.如權(quán)利要求40所述的控制系統(tǒng),其中,所述狀態(tài)機(jī)基本上位于所述第一設(shè)備上,而 所述控制邏輯裝置基本上位于所述第二設(shè)備上。
42.如權(quán)利要求40所述的控制系統(tǒng),其中,所述第一設(shè)備包括主機(jī)設(shè)備,而所述第二設(shè) 備包括功率受限的客戶機(jī)設(shè)備,且所述串行總線是USB兼容的總線。
43.一種在通過總線與第二設(shè)備進(jìn)行數(shù)據(jù)通信的第一設(shè)備上使用的包括存儲介質(zhì)的 計算機(jī)可讀裝置,所述存儲介質(zhì)包括至少一個計算機(jī)程序,所述至少一個計算機(jī)程序配置 成利用所述第一設(shè)備輪詢所述第二設(shè)備,所述輪詢是根據(jù)第一輪詢策略發(fā)生的;在所述第一設(shè)備處接收來自所述第二設(shè)備的信號,該信號向所述第一設(shè)備指示根據(jù)第 二策略輪詢所述第二設(shè)備;及 根據(jù)所述第二策略輪詢所述第二設(shè)備。
全文摘要
用于增強(qiáng)數(shù)據(jù)總線中的效率(例如,降低功耗和總線活動)的方法與裝置。在示例性實(shí)施例中,客戶機(jī)驅(qū)動的主機(jī)設(shè)備狀態(tài)機(jī)在各種狀態(tài)之間切換,每種狀態(tài)都包括不同的輪詢頻率。數(shù)據(jù)總線(例如,串行總線)上的客戶機(jī)設(shè)備檢查輪詢活動無產(chǎn)出時段,并且一發(fā)現(xiàn)這種時段就通知主機(jī)。然后,狀態(tài)機(jī)改變其輪詢策略;例如,切換到包括降低的輪詢頻率的更低狀態(tài),并且以這種降低的頻率繼續(xù)輪詢。在一種變型例中,客戶機(jī)設(shè)備持續(xù)地監(jiān)視其自己,以確定它是否有任何數(shù)據(jù)要傳送到主機(jī)設(shè)備,并且如果有的話就通知主機(jī),而且狀態(tài)機(jī)重新啟動(例如,到其最高輪詢狀態(tài))。通過消除無關(guān)的輪詢,潛在地在主機(jī)和客戶機(jī)上優(yōu)化了功耗和串行總線活動。
文檔編號G06F13/42GK101855624SQ200880115609
公開日2010年10月6日 申請日期2008年8月28日 優(yōu)先權(quán)日2007年9月17日
發(fā)明者A·維達(dá)爾, D·費(fèi)古森 申請人:蘋果公司