本公開涉及無線通信技術(shù)。
背景
移動設(shè)備可以采取以下形式:移動電話、平板計算機、膝上型計算機、具有無線通信卡的便攜式計算機、個人數(shù)字助理(pda)、數(shù)碼相機、視頻游戲設(shè)備、便攜式多媒體播放器、具有無線通信能力的閃存設(shè)備、包括所謂的“智能”電話和“智能”板或平板的無線通信設(shè)備、電子閱讀器、或其他各式各樣其他類型的便攜式設(shè)備。隨著高功率處理器、處理多媒體內(nèi)容的能力、以及在云中與網(wǎng)絡(luò)交互的能力的添加,移動設(shè)備已變得越來越強大。這些改進(jìn)使得開發(fā)出提供較佳用戶體驗并提高生產(chǎn)力的移動設(shè)備的新使用模型成為可能。
另外,移動設(shè)備或其他計算設(shè)備(例如,個人計算機、移動電話、電子手持式設(shè)備、游戲控制臺、或其他類似設(shè)備)可以使用通信標(biāo)準(zhǔn)來與各種外圍設(shè)備進(jìn)行通信。一種此類通信標(biāo)準(zhǔn)包括通用串行總線(usb)連接??墒褂胾sb連接的外圍設(shè)備的一些示例包括鼠標(biāo)或其他定點/選擇設(shè)備、鍵盤、數(shù)碼相機、打印機、個人多媒體播放器、大容量存儲設(shè)備(諸如閃存)、網(wǎng)絡(luò)適配器、以及外部硬盤驅(qū)動器。對于那些設(shè)備中的許多設(shè)備,usb已經(jīng)變成促成外圍設(shè)備連接的非常常見的通信標(biāo)準(zhǔn)。
概述
本公開的各技術(shù)一般涉及用于在電子設(shè)備之間轉(zhuǎn)移數(shù)據(jù)的技術(shù)。例如,本公開的各技術(shù)可被用來控制usb數(shù)據(jù)流并減少高優(yōu)先級分組的遞送等待時間。這些技術(shù)可有助于基于正被傳送的數(shù)據(jù)的usb數(shù)據(jù)轉(zhuǎn)移類型來對usb數(shù)據(jù)區(qū)分優(yōu)先級以用于跨給定介質(zhì)的傳輸。在一些實例中,這些技術(shù)可有助于緩解具有較嚴(yán)格等待時間要求的較高優(yōu)先級數(shù)據(jù)分組被相對較低優(yōu)先級的數(shù)據(jù)分組延遲的問題。
在一示例中,一種用于傳送數(shù)據(jù)的方法包括:在通用串行總線(usb)主機處確定正從主機設(shè)備向usb設(shè)備傳送的usb數(shù)據(jù)的usb數(shù)據(jù)轉(zhuǎn)移類型;基于所確定的usb數(shù)據(jù)轉(zhuǎn)移類型來確定該usb數(shù)據(jù)的優(yōu)先級;以及基于所確定的優(yōu)先級來控制該usb數(shù)據(jù)從usb主機的協(xié)議適配層(pal)向該usb主機的網(wǎng)絡(luò)層的轉(zhuǎn)移。
在另一示例中,一種用于傳送數(shù)據(jù)的設(shè)備包括配置成存儲通用串行總線(usb)數(shù)據(jù)的存儲器、以及usb主機設(shè)備的一個或多個處理器。該一個或多個處理器被配置成:在usb主機設(shè)備處確定正從該主機設(shè)備向usb設(shè)備傳送的usb數(shù)據(jù)的usb數(shù)據(jù)轉(zhuǎn)移類型;基于所確定的usb數(shù)據(jù)轉(zhuǎn)移類型來確定該usb數(shù)據(jù)的優(yōu)先級;以及基于所確定的優(yōu)先級來控制該usb數(shù)據(jù)從該usb主機的協(xié)議適配層(pal)向該usb主機的網(wǎng)絡(luò)層的轉(zhuǎn)移。
在另一示例中,一種用于傳送數(shù)據(jù)的設(shè)備包括:用于在通用串行總線(usb)主機處確定正從主機設(shè)備向usb設(shè)備傳送的usb數(shù)據(jù)的usb數(shù)據(jù)轉(zhuǎn)移類型的裝置;用于基于所確定的usb數(shù)據(jù)轉(zhuǎn)移類型來確定該usb數(shù)據(jù)的優(yōu)先級的裝置;以及用于基于所確定的優(yōu)先級來控制該usb數(shù)據(jù)從該usb主機的協(xié)議適配層(pal)向該usb主機的網(wǎng)絡(luò)層的轉(zhuǎn)移的裝置。
在另一示例中,一種其上存儲有指令的非瞬態(tài)計算機可讀介質(zhì),這些指令在被執(zhí)行時使一個或多個處理器:在通用串行總線(usb)主機設(shè)備處確定正從該主機設(shè)備向usb設(shè)備傳送的usb數(shù)據(jù)的usb數(shù)據(jù)轉(zhuǎn)移類型;基于所確定的usb數(shù)據(jù)轉(zhuǎn)移類型來確定該usb數(shù)據(jù)的優(yōu)先級;以及基于所確定的優(yōu)先級來控制該usb數(shù)據(jù)從該usb主機的協(xié)議適配層(pal)向該usb主機的網(wǎng)絡(luò)層的轉(zhuǎn)移。
在附圖及以下描述中闡述本公開的一個或多個方面的詳情。本公開中所描述的技術(shù)的其他特征、目的、以及優(yōu)勢將從說明書和附圖、以及從權(quán)利要求書中顯而易見。
附圖簡述
圖1是解說usb主機與usb設(shè)備處于通信的概念示圖。
圖2是解說示例usb協(xié)議層級的框圖。
圖3a是解說數(shù)據(jù)從usb協(xié)議適配層(pal)向網(wǎng)絡(luò)棧轉(zhuǎn)移的概念圖。
圖3b是解說數(shù)據(jù)從usbpal向網(wǎng)絡(luò)棧轉(zhuǎn)移的另一概念圖。
圖4是解說根據(jù)本公開的各技術(shù)的數(shù)據(jù)傳輸?shù)氖纠牧鞒虉D。
詳細(xì)描述
計算設(shè)備(例如,個人計算機、膝上型計算機、平板計算機、移動電話(諸如所謂的“智能電話”)、電子手持式設(shè)備、電子閱讀器、數(shù)碼攝像機、數(shù)碼相機、手持式游戲設(shè)備、游戲控制臺、或其他類似設(shè)備)可以使用通信標(biāo)準(zhǔn)來與各種外圍設(shè)備進(jìn)行通信。一種此類通信標(biāo)準(zhǔn)包括通用串行總線(usb)連接??墒褂胾sb連接的外圍設(shè)備的一些示例包括鼠標(biāo)或其他定點/選擇設(shè)備、鍵盤、顯示器、數(shù)碼相機、打印機、個人多媒體播放器、大容量存儲設(shè)備(諸如閃存)、網(wǎng)絡(luò)適配器、以及外部硬盤驅(qū)動器。對于那些設(shè)備中的許多設(shè)備,usb已經(jīng)變成促成外圍設(shè)備連接的非常常見的通信標(biāo)準(zhǔn)。
相應(yīng)地,本公開可以將“usb設(shè)備”指代為具有能夠與主機計算設(shè)備進(jìn)行通信的usb連接的外圍設(shè)備。在一些示例中,主機設(shè)備可以是移動設(shè)備(諸如平板計算機、智能電話、或其他便攜式電子設(shè)備)。在一些示例中,usb設(shè)備與主機設(shè)備可以根據(jù)通用的usb通信規(guī)范進(jìn)行通信。也就是說,在一示例中,usb設(shè)備可以根據(jù)如于2010年7月26日修訂并公布的、公眾可在http://www.usb.org/developers/docs/usb_20_021411.zip獲得的usb2.0規(guī)范來與主機設(shè)備進(jìn)行通信。在另一示例中,usb設(shè)備和主機設(shè)備可被配置成根據(jù)另一usb規(guī)范(諸如于2013年7月26日公布的、公眾可在http://www.usb.org/developers/docs/usb_31_121314.zip獲得的usb3.1)、或者當(dāng)前可用或?qū)砜赡艹霈F(xiàn)的其他串行總線標(biāo)準(zhǔn)或?qū)S写锌偩€通信規(guī)范進(jìn)行通信。
主機設(shè)備可以使用各種介質(zhì)來與usb設(shè)備進(jìn)行通信。如以下更詳細(xì)地描述的,“介質(zhì)”一般指的是主機設(shè)備與usb設(shè)備藉以其連接的信道。在一些示例中,主機設(shè)備可以使用無線通信信道(諸如類似于wifi、藍(lán)牙等的短程通信信道)來與usb設(shè)備進(jìn)行通信。然而,通信信道不必限于此方面,并且可以包括任何無線或有線通信介質(zhì)(諸如射頻(rf)頻譜或者一條或更多條物理傳輸線)、或者無線和有線介質(zhì)的任何組合。在一些示例中,通信信道可以形成基于分組的網(wǎng)絡(luò)(諸如局域網(wǎng)、廣域網(wǎng)、或全球網(wǎng)絡(luò)(諸如因特網(wǎng)))的一部分。
盡管不限于任何特定通信標(biāo)準(zhǔn),但是本公開的各技術(shù)可適用于2014年2月25日公布的并且公眾可在http://www.usb.org/developers/docs/devclass_docs/media_agnostic_usb_v1.0.zip獲得的無介質(zhì)限制usb標(biāo)準(zhǔn)(“ma-usb”標(biāo)準(zhǔn))。介質(zhì)無關(guān)的(ma)usb的一個動機是在除usb之外的介質(zhì)(諸如舉例而言,無線或ip鏈路)上提供usb連通性,同時最大限度地利用現(xiàn)有的usb基礎(chǔ)設(shè)施。
為了使usb設(shè)備提供可接受的用戶體驗,該usb設(shè)備可具有與數(shù)據(jù)接收相關(guān)聯(lián)的等待時間要求。例如,一些類型的usb數(shù)據(jù)轉(zhuǎn)移可要求比其他類型的usb數(shù)據(jù)轉(zhuǎn)移低的等待時間以便提供可接受的用戶體驗。數(shù)據(jù)轉(zhuǎn)移類型一般可以指正在主機設(shè)備與usb設(shè)備之間傳達(dá)的數(shù)據(jù)的組成。示例數(shù)據(jù)轉(zhuǎn)移類型包括控制轉(zhuǎn)移(例如,針對與usb命令和狀態(tài)操作相關(guān)聯(lián)的數(shù)據(jù))、批量轉(zhuǎn)移(例如,針對時間不敏感數(shù)據(jù)的通信)、中斷轉(zhuǎn)移(例如,針對要求有界等待時間的非周期性數(shù)據(jù)轉(zhuǎn)移)、以及同步轉(zhuǎn)移(例如,針對使用基于時間的遞送模型的周期性數(shù)據(jù)轉(zhuǎn)移)。其他類型的數(shù)據(jù)轉(zhuǎn)移或許也是可能的。某些數(shù)據(jù)轉(zhuǎn)移類型可由usb設(shè)備處的特定端點接收。例如,批量數(shù)據(jù)轉(zhuǎn)移類型可被稱為與批量端點相關(guān)聯(lián),而中斷數(shù)據(jù)轉(zhuǎn)移類型可被稱為與中斷端點相關(guān)聯(lián)。
一些usb系統(tǒng)(諸如以上引述的ma-usb標(biāo)準(zhǔn)中所描述的系統(tǒng))可以使用緩沖器來管控主機設(shè)備與usb設(shè)備之間的數(shù)據(jù)流。此類緩沖可被稱為基于信用的流控制,其中usb設(shè)備向主機設(shè)備指示可用于接收數(shù)據(jù)的緩沖器空間量。主機設(shè)備可隨后向usb設(shè)備發(fā)送usb設(shè)備能夠接受的那么多的數(shù)據(jù)。例如,為了確保通信介質(zhì)的高效使用,傳出轉(zhuǎn)移協(xié)議可以利用基于信用的流控制來將從主機設(shè)備到usb設(shè)備的數(shù)據(jù)流計量到可被成功接受到usb設(shè)備緩沖器中的量。usb設(shè)備可向主機設(shè)備通知其可用的緩沖器空間。一旦向usb設(shè)備發(fā)送數(shù)據(jù),主機設(shè)備就可以減小信用。主機設(shè)備可以在接收到數(shù)據(jù)已被傳遞且從usb設(shè)備的緩沖器移除的確收之際分配信用。
在一些實例中,usb設(shè)備緩沖器可以是相對較大的,這可導(dǎo)致主機設(shè)備處較大的可用信用量。在此類實例中,主機設(shè)備可以向usb設(shè)備發(fā)送相對較大量的數(shù)據(jù)。發(fā)送相對較大量的包括各種usb數(shù)據(jù)轉(zhuǎn)移類型的數(shù)據(jù)可能導(dǎo)致較低優(yōu)先級數(shù)據(jù)分組妨礙較高優(yōu)先級分組在可接受的時間量內(nèi)傳送。作為示例,當(dāng)主機設(shè)備在發(fā)出中斷轉(zhuǎn)移之前發(fā)出數(shù)個批量轉(zhuǎn)移時,該主機設(shè)備可直到傳送了所有在前的批量數(shù)據(jù)之后才傳送中斷數(shù)據(jù)。在此示例中,主機設(shè)備可能沒有在中斷數(shù)據(jù)的等待時間要求內(nèi)傳送中斷數(shù)據(jù)。
在usb通信的上下文中,網(wǎng)絡(luò)棧(也被稱為協(xié)議棧)一般可以指負(fù)責(zé)在主機設(shè)備與usb設(shè)備之間傳輸數(shù)據(jù)的一個或多個協(xié)議。也就是說,網(wǎng)絡(luò)??梢载?fù)責(zé)在連接主機設(shè)備和usb設(shè)備的特定介質(zhì)上傳送數(shù)據(jù)分組。一些網(wǎng)絡(luò)??梢跃哂惺固囟〝?shù)據(jù)優(yōu)先化的服務(wù)質(zhì)量(qos)支持。例如,使用網(wǎng)際協(xié)議(ip)的主機設(shè)備可以使用ip報頭中的服務(wù)類型(tos)字段來區(qū)分不同話務(wù)類型并提供某些分組的較高優(yōu)先級。
然而,并非所有網(wǎng)絡(luò)棧都包括qos支持。某些傳輸介質(zhì)可能不具有所定義的qos支持(例如,藍(lán)牙)。在一些示例中,主機設(shè)備可以使用不使用qos支持的操作模式,即使此類支持是可用的。此外,即使在網(wǎng)絡(luò)棧處具有qos支持的情況下,等待時間也可能在多個服務(wù)生成具有相同優(yōu)先級水平的數(shù)據(jù)話務(wù)(例如,設(shè)備并發(fā)地發(fā)送均被分類為相同優(yōu)先級水平的usb數(shù)據(jù)和其他音頻/視頻數(shù)據(jù))的實例中出現(xiàn)。
本公開的各技術(shù)可被用來控制usb數(shù)據(jù)流并減少較高優(yōu)先級分組的遞送等待時間。例如,這些技術(shù)可有助于基于正被傳送的數(shù)據(jù)的usb數(shù)據(jù)轉(zhuǎn)移類型來對usb數(shù)據(jù)區(qū)分優(yōu)先級以用于跨給定介質(zhì)的傳輸。在一些實例中,這些技術(shù)可有助于緩解具有較嚴(yán)格等待時間要求的較高優(yōu)先級數(shù)據(jù)分組被相對較低優(yōu)先級的數(shù)據(jù)分組延遲的問題。
根據(jù)本公開的各方面,主機設(shè)備可以在協(xié)議適配層(pal)處實現(xiàn)各技術(shù)。usbpal可以實現(xiàn)主機設(shè)備與一個或多個usb設(shè)備之間的連通性。在一些實例中,pal可以遵循一個或多個標(biāo)準(zhǔn)。在出于解說目的的示例中,pal可以遵循ma-usb標(biāo)準(zhǔn)并且可以在除usb之外的介質(zhì)(包括例如無線和ip鏈路)上實現(xiàn)主機設(shè)備與一個或多個usb設(shè)備之間的連通性。
usbpal同與網(wǎng)絡(luò)棧相關(guān)聯(lián)的網(wǎng)絡(luò)層分開。例如,如以下更詳細(xì)地描述的,主機pal可以負(fù)責(zé)usb設(shè)備的管理和usb有效載荷在給定傳輸介質(zhì)上的傳輸。主機pal可以在網(wǎng)絡(luò)棧之上運行并且向網(wǎng)絡(luò)棧發(fā)出數(shù)據(jù)以供在傳輸介質(zhì)上遞送。相應(yīng)地,本公開的各技術(shù)不同于通常與網(wǎng)絡(luò)棧相關(guān)聯(lián)和以上所提及的qos支持。也就是說,這些技術(shù)可被用來控制從主機設(shè)備到傳輸層的數(shù)據(jù)流,而傳輸層可以負(fù)責(zé)傳輸介質(zhì)上的數(shù)據(jù)遞送(并且可以實現(xiàn)或可以不實現(xiàn)其自己的、單獨的流控制技術(shù))。
盡管本公開的某些技術(shù)是關(guān)于usb標(biāo)準(zhǔn)描述的,但是應(yīng)當(dāng)理解,usb標(biāo)準(zhǔn)僅是可以與本公開一致的通信標(biāo)準(zhǔn)的一些示例。由此,盡管在usb標(biāo)準(zhǔn)的上下文中描述了這些技術(shù),但是其他類似通信標(biāo)準(zhǔn)(例如,ieee1394標(biāo)準(zhǔn)、以太網(wǎng)標(biāo)準(zhǔn)、串行高級技術(shù)附連標(biāo)準(zhǔn)、高清晰度多媒體接口(hdmi)標(biāo)準(zhǔn)、以及雷電(thunderbolt)標(biāo)準(zhǔn))或甚至將來的通信標(biāo)準(zhǔn)或技術(shù)可以同樣從本公開的教導(dǎo)中獲益。
圖1是解說具有主機設(shè)備20的示例系統(tǒng)的框圖,該主機設(shè)備20在傳輸介質(zhì)(32)(其也可被稱為“物理鏈路”)上與具有usb設(shè)備緩沖器28的usb設(shè)備24處于通信。
主機設(shè)備20包括能夠主控一個或多個其他設(shè)備(諸如usb設(shè)備24)(例如,與其通信)的電子設(shè)備。在一些示例中,主機設(shè)備20可以包括智能電話、平板、或其他移動設(shè)備。盡管主要關(guān)于移動設(shè)備(諸如智能電話和平板)進(jìn)行描述,但是主機設(shè)備20可以包括能夠主控一個或多個其他設(shè)備的任何電子設(shè)備,并且可被集成到例如電器、汽車、飛行器、船舶、或者能夠執(zhí)行與本文中所描述的技術(shù)一致的數(shù)據(jù)轉(zhuǎn)移能力的任何其他任何設(shè)備中。在一些示例中,主機設(shè)備20可被實現(xiàn)為一個或更多個微處理器、數(shù)字信號處理器(dsp)、專用集成電路(asic)、現(xiàn)場可編程門陣列(fpga)、分立邏輯、軟件、硬件、固件或其任何組合。
盡管出于清楚目的未示出,但是主機設(shè)備20可以包括由各式各樣的易失性或非易失性存儲器中的任何存儲器組成的存儲器,包括但不限于隨機存取存儲器(ram)(諸如同步動態(tài)隨機存取存儲器(sdram))、只讀存儲器(rom)、非易失性隨機存取存儲器(nvram)、電可擦式可編程只讀存儲器(eeprom)、磁性隨機存取存儲器(mram)、閃存存儲器等。該存儲器可以包括用于存儲音頻數(shù)據(jù)、視頻數(shù)據(jù)、以及其他種類的數(shù)據(jù)的計算機可讀存儲介質(zhì)。主機設(shè)備20也可以包括調(diào)制解調(diào)器、以及發(fā)射機/接收機單元,其包括各種混頻器、濾波器、放大器和設(shè)計成用于信號調(diào)制的其他組件、以及一個或多個天線和設(shè)計成用于傳送和接收數(shù)據(jù)的其他組件。
usb設(shè)備24可以包括遵循用于與主機設(shè)備20進(jìn)行通信的usb通信標(biāo)準(zhǔn)的各式各樣的設(shè)備中的任何設(shè)備。在一些實例中,usb設(shè)備24可以是人機接口設(shè)備(hid)。例如,usb設(shè)備24可以是允許用戶與主機設(shè)備20交互的輸入設(shè)備。示例hid可以包括鼠標(biāo)、鍵盤、觸控板、相機等。在其他示例中,usb設(shè)備可以是大容量存儲設(shè)備、顯示器、或能夠經(jīng)由usb標(biāo)準(zhǔn)進(jìn)行通信的任何其他設(shè)備。
在圖1中所示的示例中,usb設(shè)備24包括usb設(shè)備緩沖器28。usb設(shè)備緩沖器28可以包括由各式各樣的易失性或非易失性存儲器中的任一者組成的存儲器。如以下更詳細(xì)地描述的,usb設(shè)備緩沖器28可以存儲從主機設(shè)備20接收的數(shù)據(jù)。在一些實例中,usb設(shè)備24可在從主機設(shè)備20接收數(shù)據(jù)之前初始地向主機設(shè)備20通知usb設(shè)備緩沖器28的大小。
主機設(shè)備20可以經(jīng)由有線或無線傳輸介質(zhì)32(其也可被稱為物理鏈路或簡稱為鏈路)與usb設(shè)備24進(jìn)行通信。相應(yīng)地,傳輸介質(zhì)32一般表示用于在圖1中所示的各設(shè)備之間傳送數(shù)據(jù)的任何合適通信介質(zhì)、或不同通信介質(zhì)的集合。傳輸介質(zhì)32可以包括相對短程的通信信道,類似于wifi、藍(lán)牙等。然而,傳輸介質(zhì)32不必限于此方面,并且可以包括任何無線或有線通信介質(zhì)(諸如射頻(rf)頻譜或者一條或多條物理傳輸線)、或者無線和有線介質(zhì)的任何組合。
傳輸介質(zhì)32甚至可以形成基于分組的網(wǎng)絡(luò)(諸如局域網(wǎng)、廣域網(wǎng)、或全球網(wǎng)絡(luò)(諸如因特網(wǎng)))的一部分。傳輸介質(zhì)32可以是基礎(chǔ)設(shè)施輔助的,或者可以是對等的。圖1的各設(shè)備可以使用通信協(xié)議(諸如來自ieee1402.11標(biāo)準(zhǔn)族的標(biāo)準(zhǔn)、或者任何其他通信協(xié)議或格式)在傳輸介質(zhì)32上進(jìn)行通信,如以下關(guān)于圖3更詳細(xì)地描述的。
在一些示例中,圖1的各設(shè)備經(jīng)由遵循usb標(biāo)準(zhǔn)或其他無線傳輸標(biāo)準(zhǔn)(諸如wifi)的有線或無線連接進(jìn)行通信。例如,如以上所提及的,圖1的各設(shè)備可以遵照usb2.0規(guī)范、usb3.0規(guī)范、或者當(dāng)前可用或?qū)砜赡艹霈F(xiàn)的其他標(biāo)準(zhǔn)或?qū)S型ㄐ乓?guī)范進(jìn)行通信。在一些示例中,主機設(shè)備20和usb設(shè)備24可以使用mausb標(biāo)準(zhǔn)進(jìn)行通信,這可以在除usb之外的傳輸介質(zhì)32(例如,無線或ip鏈路)上實現(xiàn)usb連通性,同時最大限度地利用現(xiàn)有的usb基礎(chǔ)設(shè)施。
一般而言,當(dāng)使用usb標(biāo)準(zhǔn)進(jìn)行通信時,主機設(shè)備20可以促成與usb設(shè)備24的數(shù)據(jù)轉(zhuǎn)移。為了使usb設(shè)備24提供可接受的用戶體驗,usb設(shè)備24可具有數(shù)據(jù)等待時間要求。例如,一些類型的usb數(shù)據(jù)轉(zhuǎn)移可要求比其他類型的usb數(shù)據(jù)轉(zhuǎn)移低的等待時間以便提供可接受的用戶體驗。示例數(shù)據(jù)轉(zhuǎn)移類型包括控制轉(zhuǎn)移、批量轉(zhuǎn)移、中斷轉(zhuǎn)移、以及同步轉(zhuǎn)移。一般而言,批量轉(zhuǎn)移被用于主機與設(shè)備之間時間不敏感的通信(例如,向閃存驅(qū)動器轉(zhuǎn)移文件)。中斷轉(zhuǎn)移一般是要求有界等待時間的非周期性轉(zhuǎn)移。同步轉(zhuǎn)移一般支持(1)要求周期性遞送,以及(2)容忍偶然的數(shù)據(jù)丟失的數(shù)據(jù)流。
一旦與usb設(shè)備24連接,主機設(shè)備20就可以初始地接收對usb設(shè)備緩沖器28的大小的指示。在一些示例中,主機設(shè)備20可以使用usb設(shè)備緩沖器28來管控主機設(shè)備20與usb設(shè)備24之間的數(shù)據(jù)流。此類緩沖可被稱為基于信用的流控制。使用這種模型,主機設(shè)備20可以向usb設(shè)備24發(fā)送usb設(shè)備24能夠接受的那么多的數(shù)據(jù)。例如,主機設(shè)備20可以在向usb設(shè)備24發(fā)送數(shù)據(jù)之際減小usb設(shè)備24處可用的信用量。主機設(shè)備20可以在接收到數(shù)據(jù)已被轉(zhuǎn)移且從usb設(shè)備緩沖器28移除的確收之際分配信用。
在一些實例中,usb設(shè)備緩沖器28可以是相對較大的,這可導(dǎo)致主機設(shè)備20處較大的可用信用量。在此類實例中,主機設(shè)備20可以向usb設(shè)備24發(fā)送相對較大量的數(shù)據(jù)。發(fā)送相對較大量的包括各種usb數(shù)據(jù)轉(zhuǎn)移類型的數(shù)據(jù)可能導(dǎo)致較低優(yōu)先級數(shù)據(jù)分組妨礙較高優(yōu)先級分組在可接受的時間量內(nèi)傳送。
根據(jù)本公開的各方面,主機設(shè)備20可以控制給usb設(shè)備24的usb數(shù)據(jù)流以減少某些數(shù)據(jù)分組的遞送等待時間。例如,主機設(shè)備20可以實現(xiàn)基于正被傳送的數(shù)據(jù)的usb數(shù)據(jù)轉(zhuǎn)移類型來對usb數(shù)據(jù)區(qū)分優(yōu)先級以用于跨給定介質(zhì)的傳輸?shù)臄?shù)據(jù)流控制技術(shù)。在一些實例中,這些技術(shù)可有助于緩解具有較嚴(yán)格等待時間要求的較高優(yōu)先級數(shù)據(jù)分組被相對較低優(yōu)先級的數(shù)據(jù)分組延遲的問題。
根據(jù)本公開的各方面,主機設(shè)備20可以在usbpal處實現(xiàn)各技術(shù)。在一示例中,根據(jù)本公開的各方面,主機設(shè)備20可以確定正從主機設(shè)備20向usb設(shè)備24傳送的usb數(shù)據(jù)的usb數(shù)據(jù)轉(zhuǎn)移類型。主機設(shè)備20可以基于所確定的轉(zhuǎn)移類型來確定usb數(shù)據(jù)的優(yōu)先級。主機設(shè)備20隨后可以基于所確定的優(yōu)先級來將usb數(shù)據(jù)從主機設(shè)備20的pal向主機設(shè)備20的網(wǎng)絡(luò)層轉(zhuǎn)移以用于跨傳輸介質(zhì)32的數(shù)據(jù)傳輸。
在出于解說目的的示例中,主機設(shè)備20可以確定數(shù)據(jù)轉(zhuǎn)移類型是批量、中斷、同步還是另一轉(zhuǎn)移類型。主機設(shè)備20可以向這些轉(zhuǎn)移類型中的一者或多者指派比其他轉(zhuǎn)移類型高的優(yōu)先級。例如,主機設(shè)備20可以向中斷和同步轉(zhuǎn)移指派比批量轉(zhuǎn)移高的優(yōu)先級。
在一些示例中,主機設(shè)備20可以使用關(guān)于usb數(shù)據(jù)轉(zhuǎn)移類型的未完結(jié)轉(zhuǎn)移(即,對其的請求已被釋放給網(wǎng)絡(luò)棧、但尚未接收到響應(yīng)的數(shù)據(jù)轉(zhuǎn)移)的閾值來確定正被發(fā)送給usb設(shè)備24的usb數(shù)據(jù)的優(yōu)先級。例如,主機設(shè)備20可以將正被發(fā)送給usb設(shè)備24的usb數(shù)據(jù)劃分成數(shù)個轉(zhuǎn)移請求(transferreq),其中每個轉(zhuǎn)移請求與其自己的請求標(biāo)識符和序列號相關(guān)聯(lián)。主機設(shè)備20可以從usb設(shè)備24接收包括請求標(biāo)識符、序列號、以及其他數(shù)據(jù)的轉(zhuǎn)移響應(yīng)(transferresp)。主機設(shè)備20隨后可以向usb設(shè)備24發(fā)送已接收到轉(zhuǎn)移的確收(transferack(轉(zhuǎn)移確收)),usb設(shè)備24可以將該確收用作可以從usb設(shè)備緩沖器28移除數(shù)據(jù)的信號。
根據(jù)本公開的各方面,主機設(shè)備20可以針對一種或多種轉(zhuǎn)移類型確定用于控制未完結(jié)轉(zhuǎn)移請求(例如,已被發(fā)出、尚未被確收的轉(zhuǎn)移請求)的數(shù)目的閾值。在一些示例中,當(dāng)正被傳送的usb數(shù)據(jù)的轉(zhuǎn)移類型的未完結(jié)轉(zhuǎn)移請求的數(shù)目低于或等于閾值時,主機設(shè)備20可以將usb數(shù)據(jù)從主機設(shè)備20的pal向主機設(shè)備20的網(wǎng)絡(luò)層轉(zhuǎn)移。相反,當(dāng)該usb數(shù)據(jù)的轉(zhuǎn)移類型的未完結(jié)轉(zhuǎn)移請求的數(shù)目大于閾值時,主機設(shè)備20可以在主機設(shè)備20的pal處的轉(zhuǎn)移隊列中緩沖usb數(shù)據(jù),直到該usb數(shù)據(jù)的轉(zhuǎn)移類型的未完結(jié)轉(zhuǎn)移請求的數(shù)目低于或等于該閾值。
使用上述閾值來限定特定數(shù)據(jù)轉(zhuǎn)移類型的未完結(jié)數(shù)據(jù)轉(zhuǎn)移請求的數(shù)目可影響與主機設(shè)備的網(wǎng)絡(luò)層相關(guān)聯(lián)的緩沖器處所經(jīng)歷的等待時間。例如,主機設(shè)備20可以將特定類型的未完結(jié)轉(zhuǎn)移請求的數(shù)目限于閾值數(shù)目,但是可以允許所有其他數(shù)據(jù)轉(zhuǎn)移類型在沒有限制的情況下發(fā)送給網(wǎng)絡(luò)層。限制特定類型的未完結(jié)數(shù)據(jù)請求的數(shù)目可以阻止主機設(shè)備20向網(wǎng)絡(luò)層發(fā)送此類數(shù)據(jù)(例如,并且代替地在主機pal64處緩沖該數(shù)據(jù))。通過以此方式控制數(shù)據(jù)轉(zhuǎn)移,主機設(shè)備20可以管理在網(wǎng)絡(luò)層處緩沖的特定類型的數(shù)據(jù)量,由此允許在網(wǎng)絡(luò)層處更快速地處理其他轉(zhuǎn)移類型的數(shù)據(jù)。
根據(jù)本公開的各方面,主機設(shè)備20可以針對每種轉(zhuǎn)移類型或少于所有轉(zhuǎn)移類型確定閾值。在出于解說目的的示例中,主機設(shè)備20可以僅針對批量數(shù)據(jù)轉(zhuǎn)移使用閾值來限定未完結(jié)批量轉(zhuǎn)移類型的數(shù)目。在此示例中,主機設(shè)備20可以將未完結(jié)批量轉(zhuǎn)移請求的數(shù)目限于閾值數(shù)目,但是可以允許所有其他數(shù)據(jù)轉(zhuǎn)移類型在沒有限制的情況下發(fā)送給網(wǎng)絡(luò)層。
在一些示例中,主機設(shè)備20可以動態(tài)地確定一個或多個閾值。例如,主機設(shè)備20可以基于與將特定usb數(shù)據(jù)從主機設(shè)備20遞送給usb設(shè)備24相關(guān)聯(lián)的等待時間來動態(tài)地確定數(shù)據(jù)轉(zhuǎn)移類型閾值。在一示例中,主機設(shè)備20可以測量與完成中斷數(shù)據(jù)的轉(zhuǎn)移相關(guān)聯(lián)的時間量(例如,transfercompletetime(轉(zhuǎn)移完成時間))。在此示例中,主機設(shè)備20可以在用于完成中斷數(shù)據(jù)轉(zhuǎn)移的時間量相對較高時減小關(guān)于未完結(jié)批量轉(zhuǎn)移請求的閾值,并且可以在用于完成中斷數(shù)據(jù)轉(zhuǎn)移的時間量相對較低時減小關(guān)于未完結(jié)批量轉(zhuǎn)移請求的閾值。附加或替換地,主機設(shè)備20可以使用各種其他技術(shù)來確定閾值,如以下更詳細(xì)地描述的。
盡管圖1解說了主機設(shè)備20僅與單個usb設(shè)備24進(jìn)行通信,但是這些技術(shù)并不限于此方式。在其他示例中,主機設(shè)備20可以與多個usb設(shè)備和/或不一定遵循usb通信標(biāo)準(zhǔn)的各種其他設(shè)備進(jìn)行通信,如以下更詳細(xì)地描述的。
圖2是解說用于usb主機40和usb設(shè)備42的示例usb層級的框圖。在一些示例中,usb主機40和usb設(shè)備42可類似于以上關(guān)于圖1所描述的主機設(shè)備20和usb設(shè)備24來配置。然而,關(guān)于圖2所描述的各技術(shù)可以由各種其他設(shè)備來實現(xiàn)。
在圖2的示例中,usb主機40包括網(wǎng)絡(luò)棧44,該網(wǎng)絡(luò)棧44具有傳輸和網(wǎng)絡(luò)層46、邏輯鏈路控制(llc)子層48、媒體接入控制(mac)子層50、以及物理(phy)子層52。usb設(shè)備42被互易地配置并且包括網(wǎng)絡(luò)棧54,該網(wǎng)絡(luò)棧54具有傳輸和網(wǎng)絡(luò)層56、llc子層58、mac子層60、以及phy子層62。應(yīng)當(dāng)理解,網(wǎng)絡(luò)棧44和網(wǎng)絡(luò)棧54僅是示例,并且其他網(wǎng)絡(luò)??梢跃哂斜葓D2中所示的更多、更少、或不同的組件。usb主機40還包括主機pal64,而usb設(shè)備42包括設(shè)備pal66。
usb主機40和usb設(shè)備42經(jīng)由物理鏈路68連接,物理鏈路68可以包括各種有線或無線鏈路。在圖2的示例中,物理鏈路68包括管理信道70和數(shù)據(jù)信道72。物理鏈路68一般可以表示用于在usb主機40與usb設(shè)備42之間傳送數(shù)據(jù)的任何合適的通信介質(zhì)或不同通信介質(zhì)的集合,例如包括任何無線或有線通信介質(zhì)(諸如wifi、藍(lán)牙、rf頻譜、或者一個或多個物理傳輸線)。
usb主機40和usb設(shè)備42的網(wǎng)絡(luò)??梢詧?zhí)行類似功能。例如,傳輸和網(wǎng)絡(luò)層46以及傳輸和網(wǎng)絡(luò)層56可以負(fù)責(zé)添加用于物理鏈路68上的數(shù)據(jù)傳輸?shù)膱箢^信息。在一些示例中,傳輸和網(wǎng)絡(luò)層46以及傳輸和網(wǎng)絡(luò)層56可以包括數(shù)個協(xié)議。例如,傳輸和網(wǎng)絡(luò)層46以及傳輸以及網(wǎng)絡(luò)層56可以包括在網(wǎng)際協(xié)議(ip)之上運行的用戶數(shù)據(jù)報協(xié)議(udp)之上運行的傳輸控制協(xié)議(tcp)(tcp/udp/ip)。llc子層48和llc子層58可被包括在相應(yīng)網(wǎng)絡(luò)棧的數(shù)據(jù)鏈路層中,并且可以提供聯(lián)網(wǎng)協(xié)議的復(fù)用。mac子層50和mac子層60可以從接收自llc子層的內(nèi)容生成mac分組。phy子層52以及phy子層62可以將mac分組轉(zhuǎn)換成phy層分組以用于物理鏈路68上的傳輸。
一般而言,主機pal64以及設(shè)備pal66負(fù)責(zé)形成usb數(shù)據(jù)分組并將該數(shù)據(jù)分組推送給相應(yīng)網(wǎng)絡(luò)棧以用于物理鏈路68上的傳輸。如以上關(guān)于圖1所提及的,pal數(shù)據(jù)分組可以屬于各種不同的usb數(shù)據(jù)轉(zhuǎn)移類型,例如包括控制、批量、中斷、以及同步。另外,一些usb數(shù)據(jù)轉(zhuǎn)移類型可能具有與其他數(shù)據(jù)轉(zhuǎn)移類型不同的等待時間要求。例如,同步轉(zhuǎn)移可以攜帶取決于時間的數(shù)據(jù)。中斷轉(zhuǎn)移(其通常可由hid外圍設(shè)備使用)可以要求相對較低的分組遞送等待時間以滿足用戶體驗要求。在一些實例中,最小等待時間要求針對不同的使用情形而變化(例如,用戶可對與usb鼠標(biāo)光標(biāo)相關(guān)聯(lián)的指針滯后相對敏感,因此可存在對分組遞送等待時間的相對較低的容忍)。
在主機pal64向網(wǎng)絡(luò)棧44發(fā)送數(shù)據(jù)分組之后,分組可以在實際傳輸之前保持被緩沖在與網(wǎng)絡(luò)棧44相關(guān)聯(lián)的隊列中。例如,可能存在可延遲網(wǎng)絡(luò)棧44發(fā)送數(shù)據(jù)分組的休眠/蘇醒調(diào)度功能,或者可能存在共享網(wǎng)絡(luò)棧44的一個以上功能塊(例如,無線局域網(wǎng)(wlan)與藍(lán)牙模塊共享無線電塊)。在一些示例中,數(shù)據(jù)分組還可能因最大傳輸吞吐量和/或物理鏈路68處變化的狀況(諸如低帶寬可用性)而被緩沖在網(wǎng)絡(luò)棧44處。
在一些實例中,網(wǎng)絡(luò)棧44可以包括用于加速特定類型的話務(wù)的一些機制。例如,usb主機40可以使用ip模式向usb設(shè)備42發(fā)送數(shù)據(jù)。在該模式中,網(wǎng)絡(luò)棧44可以為數(shù)據(jù)分組形成ip報頭,并且傳輸和網(wǎng)絡(luò)層46可以使用該ip報頭中的服務(wù)類型(tos)字段來區(qū)分不同話務(wù)類型并為某些分組提供較高優(yōu)先級。然而,此類經(jīng)區(qū)分優(yōu)先級的分組遞送并不總是可用的。例如,usb主機40可以在不使用ip報頭的模式(例如,mausb原生模式)中操作。此外,一些網(wǎng)絡(luò)棧配置和/或傳輸介質(zhì)(例如,藍(lán)牙)可以不具有qos支持。
在一些實例(諸如qos支持在網(wǎng)絡(luò)棧44處不可用的實例)中,當(dāng)多個服務(wù)使用相同網(wǎng)絡(luò)棧時,或者在其他實例中,較高優(yōu)先級分組可能被其他較低優(yōu)先級分組阻塞,這導(dǎo)致了較高優(yōu)先級分組的增加的等待時間。在出于解說目的的示例中,usb設(shè)備42的緩沖器可以是相對較大的,這可以允許usb主機40向usb設(shè)備42發(fā)送大量數(shù)據(jù)(如例如以上關(guān)于圖1所描述的)。當(dāng)主機pal64向網(wǎng)絡(luò)棧44發(fā)出批量數(shù)據(jù)轉(zhuǎn)移的突發(fā)以供傳送給usb設(shè)備42時,可能發(fā)生線頭(hol)阻塞。與傳送數(shù)據(jù)分組相關(guān)聯(lián)的等待時間可以與正被發(fā)送的數(shù)據(jù)的隊列長度成比例。在此示例中,相對時間敏感(較高優(yōu)先級)的中斷或同步分組可被批量數(shù)據(jù)的突發(fā)阻塞。物理鏈路68處的低吞吐量、網(wǎng)絡(luò)棧44處實現(xiàn)的調(diào)度策略、或其他因素可以進(jìn)一步加重該等待時間問題。
例如,支持usb3.0標(biāo)準(zhǔn)的設(shè)備可以具有可以處置usb3.0數(shù)據(jù)的突發(fā)的相對較大的緩沖器。使用基于信用的流控制機制(諸如mausb規(guī)范中所描述的一者),批量端點可以具有大量的未完結(jié)數(shù)據(jù)轉(zhuǎn)移(例如,對其的請求已被釋放給網(wǎng)絡(luò)棧、但尚未接收到響應(yīng)的轉(zhuǎn)移),這可導(dǎo)致許多待決分組在網(wǎng)絡(luò)棧44的緩沖器中等待被傳送。存儲到緩沖器的數(shù)據(jù)量可隨著usb批量話務(wù)的突發(fā)而快速上升。
根據(jù)本公開的各方面,主機pal64可以基于usb數(shù)據(jù)的數(shù)據(jù)轉(zhuǎn)移類型來控制向網(wǎng)絡(luò)棧44發(fā)送的usb數(shù)據(jù)流。例如,主機pal64可以初始地確定正被傳送的usb數(shù)據(jù)的數(shù)據(jù)轉(zhuǎn)移類型。主機pal64可以基于所確定的轉(zhuǎn)移類型來確定usb數(shù)據(jù)的優(yōu)先級。主機pal64隨后可以基于所確定的優(yōu)先級來向網(wǎng)絡(luò)棧44轉(zhuǎn)移usb數(shù)據(jù)。在出于解說目的的示例中,主機pal64可以確定數(shù)據(jù)轉(zhuǎn)移類型是批量、中斷、同步還是另一轉(zhuǎn)移類型。主機pal64可以向這些轉(zhuǎn)移類型中的一者或多者指派比其他轉(zhuǎn)移類型高的優(yōu)先級。例如,主機pal64可以向中斷和同步轉(zhuǎn)移指派比批量轉(zhuǎn)移高的優(yōu)先級。
在一些示例中,主機pal64可以使用關(guān)于usb數(shù)據(jù)轉(zhuǎn)移類型的未完結(jié)轉(zhuǎn)移請求的閾值來確定usb數(shù)據(jù)的優(yōu)先級。例如,根據(jù)本公開的各方面,主機pal64可以針對一種或多種轉(zhuǎn)移類型確定用于控制未完結(jié)轉(zhuǎn)移請求(例如,已被發(fā)出、尚未被確收的轉(zhuǎn)移請求)的數(shù)目的閾值。主機pal64可以針對每種轉(zhuǎn)移類型或少于所有轉(zhuǎn)移類型確定閾值。
在出于解說目的的示例中,主機pal64可以使用關(guān)于批量數(shù)據(jù)轉(zhuǎn)移的閾值來限定未完結(jié)批量數(shù)據(jù)轉(zhuǎn)移類型的數(shù)目。在此示例中,主機設(shè)備20可以將未完結(jié)批量轉(zhuǎn)移請求的數(shù)目限于閾值數(shù)目,但是可以允許所有其他數(shù)據(jù)轉(zhuǎn)移類型在沒有限制的情況下發(fā)送給網(wǎng)絡(luò)棧44。限制未完結(jié)批量數(shù)據(jù)請求的數(shù)目可以阻止主機pal64向網(wǎng)絡(luò)棧44發(fā)送批量數(shù)據(jù)轉(zhuǎn)移(例如,并且代替地在主機pal64處緩沖該數(shù)據(jù))。通過控制向網(wǎng)絡(luò)棧44發(fā)送的批量數(shù)據(jù)量,主機pal64可以管理在網(wǎng)絡(luò)棧44處緩沖的批量數(shù)據(jù)量。以此方式,主機pal64可以限制在網(wǎng)絡(luò)棧44處緩沖的批量數(shù)據(jù)量,由此準(zhǔn)許在網(wǎng)絡(luò)棧44處更快速地處理其他轉(zhuǎn)移類型的數(shù)據(jù)。
盡管不限于任何特定標(biāo)準(zhǔn),但是在一些實例中,這些技術(shù)可以與mausb標(biāo)準(zhǔn)及相關(guān)聯(lián)的指定協(xié)議棧協(xié)同使用。例如,有線串行總線上的usb通信可以具有相對較高的帶寬和相對較低的分組遞送等待時間。然而,本公開的各技術(shù)可適用于可以具有相對較低的帶寬和較高的分組遞送等待時間的介質(zhì)。
圖3a是解說數(shù)據(jù)從(例如,usb主機40的)usbpal90向(例如,usb主機40的)網(wǎng)絡(luò)棧92轉(zhuǎn)移的概念圖。在圖3a的示例中,pal90包括與第一數(shù)據(jù)轉(zhuǎn)移類型相關(guān)聯(lián)的第一數(shù)據(jù)94以及與第二數(shù)據(jù)轉(zhuǎn)移類型相關(guān)聯(lián)的第二數(shù)據(jù)96,該第一數(shù)據(jù)轉(zhuǎn)移類型與高優(yōu)先級端點相關(guān)聯(lián),該第二數(shù)據(jù)轉(zhuǎn)移類型與低優(yōu)先級端點相關(guān)聯(lián)。網(wǎng)絡(luò)棧92包括緩沖器98,該緩沖器98在先進(jìn)先出(fifo)的基礎(chǔ)上操作,并且被用來在傳輸鏈路100上傳送接收自pal90的數(shù)據(jù)話務(wù)之前緩沖該數(shù)據(jù)話務(wù)。
在一些實例中,pal90向網(wǎng)絡(luò)棧92發(fā)送正接收數(shù)據(jù)的usb設(shè)備能接收的那樣多的數(shù)據(jù)。例如,pal90可以使用基于信用的系統(tǒng)來確定向網(wǎng)絡(luò)棧92發(fā)送多少第一數(shù)據(jù)94和第二數(shù)據(jù)96。在該示例中,pal90可以在網(wǎng)絡(luò)棧92一旦可用時就向其發(fā)送第一數(shù)據(jù)94和第二數(shù)據(jù)96,而無需參照正被發(fā)送的話務(wù)類型。
然而,當(dāng)在usb會話中服務(wù)多個端點時,一些端點(例如,中斷或同步端點)可能要求比其他端點(例如,批量端點)低的分組遞送等待時間。在圖3a的示例中,第一數(shù)據(jù)94與要求較低分組遞送等待時間的較高優(yōu)先級端點相關(guān)聯(lián),而第二數(shù)據(jù)96與較低優(yōu)先級端點相關(guān)聯(lián)。在網(wǎng)絡(luò)棧92不具有qos支持的實例中,所有傳出分組共享相同緩沖器98,并且高優(yōu)先級分組可被其他在先的較低優(yōu)先級分組阻塞在緩沖器98中。此類hol阻塞可導(dǎo)致高分組遞送等待時間,尤其在傳輸鏈路100的吞吐量較低時。
圖3b是解說數(shù)據(jù)從(例如,usb主機40的)usbpal110向(例如,usb主機40的)網(wǎng)絡(luò)棧112轉(zhuǎn)移的另一概念圖。在圖3b的示例中,pal110包括與第一數(shù)據(jù)轉(zhuǎn)移類型相關(guān)聯(lián)的第一數(shù)據(jù)114以及與第二數(shù)據(jù)轉(zhuǎn)移類型相關(guān)聯(lián)的第二數(shù)據(jù)116,該第一數(shù)據(jù)轉(zhuǎn)移類型與高優(yōu)先級端點相關(guān)聯(lián),該第二數(shù)據(jù)轉(zhuǎn)移類型與低優(yōu)先級端點相關(guān)聯(lián)。網(wǎng)絡(luò)棧112包括緩沖器118,該緩沖器118在先進(jìn)先出(fifo)的基礎(chǔ)上操作,并且被用來在傳輸鏈路120上傳送接收自pal110的數(shù)據(jù)話務(wù)之前緩沖該數(shù)據(jù)話務(wù)。
根據(jù)本公開的各方面,pal110可以使用基于優(yōu)先級的流控制機制來管理向網(wǎng)絡(luò)棧112提供第一數(shù)據(jù)114和第二數(shù)據(jù)116以用于傳輸鏈路120上的傳輸?shù)姆绞健@?,pal110(其在一些實例中可以由usb主機設(shè)備(諸如主機設(shè)備20或usb主機40)實現(xiàn))可以確定第一數(shù)據(jù)114和第二數(shù)據(jù)116的usb數(shù)據(jù)轉(zhuǎn)移類型。pal110可以基于所確定的轉(zhuǎn)移類型來確定usb數(shù)據(jù)的優(yōu)先級。例如,pal110可以確定與較低優(yōu)先級端點(例如,批量轉(zhuǎn)移類型)相關(guān)聯(lián)的數(shù)據(jù)(諸如第二數(shù)據(jù)116)具有相對較低的優(yōu)先級并且由此服從流控制。pal110隨后可以基于所確定的優(yōu)先級向網(wǎng)絡(luò)棧112轉(zhuǎn)移usb數(shù)據(jù)。
本文中所描述的流控制技術(shù)可以減少高優(yōu)先級分組(諸如圖3b中的第一數(shù)據(jù)114)的分組遞送等待時間。在一些示例中,根據(jù)本公開的各方面,pal110可以限制緩沖器118的最大隊列長度以避免對高優(yōu)先級分組(諸如第一數(shù)據(jù)114)的長hol阻塞時間。例如,pal110可以管控向網(wǎng)絡(luò)棧112發(fā)送第二數(shù)據(jù)116的速度。在一些示例中,pal110可以暫時地減小針對具有第二數(shù)據(jù)116的數(shù)據(jù)轉(zhuǎn)移類型的端點所允許的未完結(jié)轉(zhuǎn)移的限度。在此示例中,第二數(shù)據(jù)116(低優(yōu)先級分組)可以保持在pal110處的緩沖器中排隊,而非在網(wǎng)絡(luò)棧112的緩沖器118中等待。
例如,通過限制所允許的特定類型的未完結(jié)數(shù)據(jù)轉(zhuǎn)移的數(shù)目,pal110被限制向緩沖器118發(fā)送大量的第二數(shù)據(jù)116的分組。由于較少待決分組在緩沖器118中等待,pal110由此減少了高優(yōu)先級數(shù)據(jù)到達(dá)緩沖器118中時的hol阻塞時間。
在圖3b的示例中,pal110使向網(wǎng)絡(luò)棧112發(fā)送第一數(shù)據(jù)114優(yōu)先于向網(wǎng)絡(luò)棧112發(fā)送第二數(shù)據(jù)116。在此示例中,pal110對第二數(shù)據(jù)116的轉(zhuǎn)移類型的未完結(jié)數(shù)據(jù)轉(zhuǎn)移的數(shù)目強制閾值,但是不對第一數(shù)據(jù)114的轉(zhuǎn)移類型的數(shù)據(jù)轉(zhuǎn)移強加此類限制。例如,pal110將第二數(shù)據(jù)116的轉(zhuǎn)移類型的未完結(jié)數(shù)據(jù)轉(zhuǎn)移的數(shù)目限制為2(如括號122所指示的)。以此方式,pal110被阻止使用第二數(shù)據(jù)116填充緩沖器118,這潛在地減少了緩沖器118中第二數(shù)據(jù)116的量以及與此類數(shù)據(jù)相關(guān)聯(lián)的阻塞時間。盡管出于解說目的描述了閾值為2,但是應(yīng)當(dāng)理解,pal110可以使用各種其他閾值。
盡管對特定數(shù)據(jù)轉(zhuǎn)移類型的未完結(jié)數(shù)據(jù)轉(zhuǎn)移的數(shù)目強加閾值可以減少高優(yōu)先級分組的遞送等待時間,但是在一些實例中,此類技術(shù)可能減小某些數(shù)據(jù)轉(zhuǎn)移的端對端的數(shù)據(jù)吞吐量,尤其在傳輸鏈路120能夠提供較高吞吐量時。為了避免不必要地犧牲特定數(shù)據(jù)轉(zhuǎn)移類型的吞吐量,根據(jù)本公開的各方面,pal110可以動態(tài)地調(diào)節(jié)閾值(作為具有靜態(tài)閾值的補充或者作為替換)。在出于解說目的的示例中,pal110可以為所允許的未完結(jié)批量數(shù)據(jù)轉(zhuǎn)移的數(shù)目設(shè)置閾值。在此示例中,增大閾值允許更多的未完結(jié)批量轉(zhuǎn)移,從而導(dǎo)致潛在更高的數(shù)據(jù)吞吐量。相反,減小閾值降低緩沖器118的最大隊列長度以減少hol阻塞時間。
在一些實例中,pal110可以使用與緩沖器118分開的緩沖器來存儲已被限制向緩沖器118發(fā)送的數(shù)據(jù)(諸如第一數(shù)據(jù)114和第二數(shù)據(jù)116)。例如,pal110可以將該數(shù)據(jù)存儲到該緩沖器,直到未完結(jié)數(shù)據(jù)轉(zhuǎn)移的數(shù)目小于或等于閾值數(shù)目。pal110隨后可以從該緩沖器釋放該數(shù)據(jù)以轉(zhuǎn)移給緩沖器118。另外,pal110也可以解除分配與接收數(shù)據(jù)的usb設(shè)備相關(guān)聯(lián)的緩沖器的信用。也就是說,pal110可以基于數(shù)據(jù)正從緩沖器釋放來管理本文中所描述的用于數(shù)據(jù)轉(zhuǎn)移的基于信用的系統(tǒng)。
pal110可以基于與遞送特定usb數(shù)據(jù)相關(guān)聯(lián)的等待時間來動態(tài)地確定數(shù)據(jù)轉(zhuǎn)移類型閾值。例如,pal110可以基于觀察到的與中斷轉(zhuǎn)移相關(guān)聯(lián)的等待時間來動態(tài)地調(diào)節(jié)本文中所描述的流控制技術(shù)。存在若干可被用于估計中斷分組遞送等待時間的試探法,諸如與針對中斷轉(zhuǎn)移發(fā)送pal請求至接收pal響應(yīng)相關(guān)聯(lián)的時間量(例如,如使用mausb的transfercompletetime變量測得的)、轉(zhuǎn)移超時和/或重試計算、緩沖器118的隊列長度等。
根據(jù)本公開的各方面,pal110可以使用這些試探法來動態(tài)地確定一個或多個數(shù)據(jù)轉(zhuǎn)移類型閾值。例如,如果pal110確定中斷分組遞送等待時間(或另一類型的數(shù)據(jù)分組)較高,則pal110可以減小針對低優(yōu)先級分組所允許的未完結(jié)轉(zhuǎn)移的限度。在此示例中,低優(yōu)先級分組可以保持在pal110處的緩沖器中排隊,而非在網(wǎng)絡(luò)棧112的緩沖器118中等待。替換地,如果pal110確定中斷分組遞送等待時間(或另一類型的數(shù)據(jù)分組)較低,則pal110可以增大針對低優(yōu)先級分組所允許的未完結(jié)轉(zhuǎn)移的限度。在此示例中,相對較大量的低優(yōu)先級分組可被發(fā)送給網(wǎng)絡(luò)棧112的緩沖器118,由此增大吞吐量。通過動態(tài)地調(diào)節(jié)某些數(shù)據(jù)轉(zhuǎn)移類型的閾值,pal110可以減少高優(yōu)先級轉(zhuǎn)移的轉(zhuǎn)移等待時間(由此提供積極的用戶體驗),同時避免吞吐量的不必要犧牲。
在一些實例中,未完結(jié)數(shù)據(jù)轉(zhuǎn)移類型的閾值可以附加或替換地基于使用情形來確定和/或動態(tài)地調(diào)節(jié)。例如,某些類型的usb設(shè)備可以具有不同的特性。在出于解說目的的示例中,如以上所提及的,用戶可對與usb鼠標(biāo)光標(biāo)相關(guān)聯(lián)的指針滯后相對敏感,因此可存在對分組遞送等待時間的相對較低的容忍。在此示例中,未完結(jié)數(shù)據(jù)轉(zhuǎn)移類型的閾值可被確定和/或動態(tài)地調(diào)節(jié)以減小等待時間(例如,通過限制針對特定數(shù)據(jù)類型所允許的未完結(jié)轉(zhuǎn)移的數(shù)目)。在另一示例中,用戶可對與在usb鍵盤上鍵入相關(guān)聯(lián)的滯后較不敏感。在此示例中,未完結(jié)數(shù)據(jù)轉(zhuǎn)移類型的閾值可被確定和/或動態(tài)地調(diào)節(jié)以最大化吞吐量(例如,通過增大針對特定數(shù)據(jù)類型所允許的未完結(jié)轉(zhuǎn)移的數(shù)目)。相應(yīng)地,根據(jù)本公開的各方面,未完結(jié)數(shù)據(jù)轉(zhuǎn)移類型的閾值可以附加或替換地基于接收數(shù)據(jù)的usb設(shè)備的類型或者基于其他因素來確定和/或動態(tài)地調(diào)節(jié)。
根據(jù)一些示例,pal110可以完全啟用或禁用流控制。例如,pal110可以基于觀察到的分組遞送等待時間、接收usb設(shè)備能力(例如,接收usb設(shè)備的緩沖器的大小)、網(wǎng)絡(luò)狀況、或其他因素來動態(tài)地實現(xiàn)(或禁用)上述閾值。例如,pal110通??梢栽诓痪哂猩鲜鲩撝档那闆r下操作。pal110可以在觀察到分組遞送等待時間、接收到usb設(shè)備具有相對較大的緩沖器(例如,其可導(dǎo)致hol阻塞,如本文中所討論的)的指示、觀察到網(wǎng)絡(luò)具有相對較低的帶寬或其他因素之際啟用本公開的流控制技術(shù)。pal110可以在此類狀況被緩解之際禁用流控制技術(shù)。
根據(jù)本公開的各方面,流控制技術(shù)可以單獨在usb層(例如,諸如mausb層)中實現(xiàn),而無需對網(wǎng)絡(luò)棧(諸如網(wǎng)絡(luò)棧112)進(jìn)行任何修改。如以上所提及的,這些技術(shù)可以在網(wǎng)絡(luò)棧112不具有優(yōu)先級隊列支持時減少高優(yōu)先級分組遞送等待時間。然而,即使假定網(wǎng)絡(luò)棧112的確具有qos支持,其他話務(wù)也可以在usb轉(zhuǎn)移時共享緩沖器118。在此類實例中,這些技術(shù)仍可以被用來管控低優(yōu)先級話務(wù)。
在出于解說目的的示例中,miracast話務(wù)可以與第二數(shù)據(jù)116共享緩沖器118。在此示例中,pal110可以管控第二數(shù)據(jù)116向緩沖器118的流動以滿足miracast話務(wù)的等待時間和/或吞吐量要求。例如,如果pal110確定存在相對較大量的miracast話務(wù)(或高優(yōu)先級miracast話務(wù))存儲到緩沖器118以用于網(wǎng)絡(luò)上的傳輸,則pal110可以減小針對低優(yōu)先級分組所允許的未完結(jié)轉(zhuǎn)移的限度。在此示例中,低優(yōu)先級分組可以保持在pal110處的緩沖器中排隊,而非在網(wǎng)絡(luò)棧112的緩沖器118中等待,由此使得miracast話務(wù)能夠被發(fā)送。替換地,如果pal110確定緩沖器118相對沒有其他話務(wù),則pal110可以增大針對低優(yōu)先級分組所允許的未完結(jié)轉(zhuǎn)移的限度。在此示例中,相對較大量的低優(yōu)先級分組可被發(fā)送給網(wǎng)絡(luò)棧112的緩沖器118,由此增大usb數(shù)據(jù)的吞吐量。
圖4是解說根據(jù)本公開的各技術(shù)的usb數(shù)據(jù)傳輸?shù)氖纠牧鞒虉D。例如,圖4一般解說主機usb設(shè)備的pal向網(wǎng)絡(luò)層發(fā)送數(shù)據(jù)以用于跨傳輸介質(zhì)的傳輸。雖然出于示例的目的關(guān)于主機設(shè)備20進(jìn)行描述,但是應(yīng)當(dāng)理解,圖4的各技術(shù)可以由各種其他設(shè)備執(zhí)行。
在圖4的示例中,主機設(shè)備20接收usb數(shù)據(jù)以供傳送給usb設(shè)備(諸如usb設(shè)備24)(130)。例如,主機設(shè)備20可以從與主機設(shè)備20相關(guān)聯(lián)的驅(qū)動器接收數(shù)據(jù)。主機設(shè)備20隨后可以確定是否啟用優(yōu)先級調(diào)度(132)。例如,如以上所提及的,根據(jù)本公開的各方面,主機設(shè)備20可以基于觀察到的分組遞送等待時間、接收usb設(shè)備能力(例如,接收usb設(shè)備的緩沖器的大小)、網(wǎng)絡(luò)狀況、或其他因素來動態(tài)地啟用(或禁用)基于優(yōu)先級的流控制機制,該基于優(yōu)先級的流控制機制是基于正被傳送的數(shù)據(jù)的usb數(shù)據(jù)轉(zhuǎn)移類型的,如上所述。
當(dāng)啟用優(yōu)先級調(diào)度時(步驟132的‘是’分支),主機設(shè)備20可以確定正被傳送的數(shù)據(jù)類型的優(yōu)先級(134)。例如,根據(jù)本公開的各方面,主機設(shè)備20可以將正被傳送的數(shù)據(jù)標(biāo)識為批量數(shù)據(jù)、中斷數(shù)據(jù)、同步數(shù)據(jù)、或另一數(shù)據(jù)類型之一。在一些實例中,主機設(shè)備20可以確定此類數(shù)據(jù)轉(zhuǎn)移類型中的一者或多者的優(yōu)先級。
根據(jù)本公開的各方面,主機設(shè)備20可以根據(jù)正被傳送的數(shù)據(jù)類型的未完結(jié)數(shù)據(jù)轉(zhuǎn)移請求的閾值來確定優(yōu)先級。例如,主機設(shè)備20可以針對一種或多種轉(zhuǎn)移類型確定用于控制未完結(jié)轉(zhuǎn)移請求(例如,已被發(fā)出、尚未被確收的轉(zhuǎn)移請求)的數(shù)目的閾值。在一些示例中,當(dāng)正被傳送的usb數(shù)據(jù)的轉(zhuǎn)移類型的未完結(jié)轉(zhuǎn)移請求的數(shù)目低于或等于閾值時,主機設(shè)備20可以將該usb數(shù)據(jù)從主機設(shè)備20的pal向主機設(shè)備20的網(wǎng)絡(luò)層轉(zhuǎn)移。相反,當(dāng)該usb數(shù)據(jù)的轉(zhuǎn)移類型的未完結(jié)轉(zhuǎn)移請求的數(shù)目大于閾值時,主機設(shè)備20可以在主機設(shè)備20的pal處的轉(zhuǎn)移隊列中緩沖該usb數(shù)據(jù),直到該usb數(shù)據(jù)的轉(zhuǎn)移類型的未完結(jié)轉(zhuǎn)移請求的數(shù)目低于該閾值。
相應(yīng)地,在圖4的示例中,主機設(shè)備20可以確定正被傳送的數(shù)據(jù)類型的未完結(jié)轉(zhuǎn)移請求的數(shù)目是否小于閾值(136)。如果請求的數(shù)目不小于閾值(步驟136的‘否’分支),則主機設(shè)備120可以在pal級處緩沖數(shù)據(jù),直到未完結(jié)請求的數(shù)目小于閾值(138)。如果請求的數(shù)目小于閾值(步驟136的‘是’分支),則主機設(shè)備20可以向網(wǎng)絡(luò)層轉(zhuǎn)移數(shù)據(jù)(例如,將數(shù)據(jù)從pal緩沖器釋放到網(wǎng)絡(luò)棧的緩沖器)以供傳送給usb設(shè)備(140)。
還應(yīng)當(dāng)理解,關(guān)于圖4所示及所描述的各步驟僅作為一個示例來提供。也就是說,圖4的方法的各步驟不一定按照圖4中所示的次序來執(zhí)行,并且可以執(zhí)行更少、附加、或替換的步驟。
如以上所提及的,盡管關(guān)于usb標(biāo)準(zhǔn)一般地描述了本公開的某些技術(shù),但是應(yīng)當(dāng)理解,usb標(biāo)準(zhǔn)僅是可以與本公開一致的通信標(biāo)準(zhǔn)的示例。由此,盡管在usb標(biāo)準(zhǔn)的上下文中描述了這些技術(shù),但是其他類似通信標(biāo)準(zhǔn)(例如,ieee1394標(biāo)準(zhǔn)(被稱為“火線(firewire)”)、以太網(wǎng)標(biāo)準(zhǔn)、串行高級技術(shù)附連標(biāo)準(zhǔn)、高清晰度多媒體接口(hdmi)標(biāo)準(zhǔn)、以及雷電標(biāo)準(zhǔn))或甚至將來的類似通信標(biāo)準(zhǔn)或技術(shù)可以同樣從本公開的教導(dǎo)中獲益。
在一個或多個示例中,所描述的功能可以在硬件、軟件、固件、或其任何組合中實現(xiàn)。如果在軟件中實現(xiàn),則各功能可以作為一條或多條指令或代碼存儲在計算機可讀介質(zhì)上或者通過該計算機可讀介質(zhì)來傳送并且由基于硬件的處理單元來執(zhí)行。計算機可讀介質(zhì)可包括計算機可讀存儲介質(zhì),該計算機可讀存儲介質(zhì)對應(yīng)于包括例如根據(jù)通信協(xié)議來促成計算機程序從一地向另一地轉(zhuǎn)移的任何介質(zhì)的有形介質(zhì)(諸如數(shù)據(jù)存儲介質(zhì)或通信介質(zhì))。以此方式,計算機可讀介質(zhì)一般可對應(yīng)于(1)為非瞬態(tài)的有形計算機可讀存儲介質(zhì),或者(2)通信介質(zhì)(諸如信號或載波)。數(shù)據(jù)存儲介質(zhì)可以是能由一個或多個計算機或者一個或多個處理器訪問以取回用于實現(xiàn)本公開中描述的技術(shù)的指令、代碼、和/或數(shù)據(jù)結(jié)構(gòu)的任何可用介質(zhì)。計算機程序產(chǎn)品可包括計算機可讀介質(zhì)。
作為示例而非限定,這樣的計算機可讀存儲介質(zhì)可包括ram、rom、eeprom、cd-rom或其它光盤存儲、磁盤存儲或其它磁存儲設(shè)備、閃存、或能用于存儲指令或數(shù)據(jù)結(jié)構(gòu)形式的期望程序代碼且能被計算機訪問的任何其它介質(zhì)。任何連接也被正當(dāng)?shù)胤Q為計算機可讀介質(zhì)。例如,如果指令是使用同軸電纜、光纖電纜、雙絞線、數(shù)字訂戶線(dsl)、或諸如紅外、無線電、以及微波之類的無線技術(shù)從web網(wǎng)站、服務(wù)器、或其它遠(yuǎn)程源傳送而來,則該同軸電纜、光纖電纜、雙絞線、dsl、或諸如紅外、無線電、以及微波之類的無線技術(shù)就被包括在介質(zhì)的定義之中。然而,應(yīng)當(dāng)理解,計算機可讀存儲介質(zhì)和數(shù)據(jù)存儲介質(zhì)不包括連接、載波、信號、或其他瞬態(tài)介質(zhì),而是取而代之涉及非瞬態(tài)有形存儲介質(zhì)。如本文所用的盤(disk)和碟(disc)包括壓縮碟(cd)、激光碟、光碟、數(shù)字多功能碟(dvd)、軟盤和藍(lán)光碟,其中盤(disk)通常以磁的方式再現(xiàn)數(shù)據(jù),而碟(disc)通常用激光以光學(xué)方式再現(xiàn)數(shù)據(jù)。上述的組合應(yīng)當(dāng)也被包括在計算機可讀介質(zhì)的范圍內(nèi)。
指令可以由一個或多個處理器執(zhí)行,諸如一個或更多個數(shù)字信號處理器(dsp)、通用微處理器、專用集成電路(asic)、現(xiàn)場可編程邏輯陣列(fpga)、或者其他等效的集成或分立邏輯電路系統(tǒng)。相應(yīng)地,如本文中所使用的術(shù)語“處理器”可以指任何前述結(jié)構(gòu)或者適用于實現(xiàn)本文中所描述的技術(shù)的任何其他結(jié)構(gòu)。另外,在一些方面,本文中所描述的功能性可被提供在配置成用于編碼和解碼的專用硬件和/或軟件模塊內(nèi),或者納入在組合編解碼器中。同樣,各技術(shù)可完全實現(xiàn)在一個或多個電路或邏輯元素中。
本公開的技術(shù)可在各種設(shè)備或裝置中實現(xiàn),包括無線手持機、集成電路(ic)或ic集(例如,芯片集)。在本公開中描述了各種組件、模塊、或單元以強調(diào)被配置成執(zhí)行所公開的技術(shù)的設(shè)備的功能性方面,但不必要求通過不同硬件單元來實現(xiàn)。確切而言,如以上所描述的,各種單元可在編解碼器硬件單元中組合或者由可互操作的硬件單元集合(包括如以上所描述的一個或多個處理器)結(jié)合合適的軟件和/或固件來提供。
已經(jīng)描述了各種示例。這些及其他示例均落在所附權(quán)利要求的范圍之內(nèi)。