本申請要求于2014年6月18日提交的題為“UNIVERSAL SERIAL BUS(USB)COMMUNICATION SYSTEMS AND METHODS(通用串行總線(USB)通信系統(tǒng)和方法)”的美國專利申請序列號14/308,053的優(yōu)先權(quán),該申請通過援引全部納入于此。
背景
I.公開領(lǐng)域
本公開的技術(shù)一般涉及控制經(jīng)由遵循通用串行總線(USB)的連接來耦合的各組件之間的通信。
II.背景
計算設(shè)備常常是從在某種形式的數(shù)據(jù)總線上彼此通信的多個模塊來構(gòu)建的。附加地,一個或多個外圍組件可以通過與這種數(shù)據(jù)總線互操作的連接器或電纜來耦合至計算設(shè)備。例如,臺式計算機可以通過將可移除的閃存存儲器棒插入卡座來耦合至該存儲器棒,或者通過用電纜來耦合計算機和電話來耦合至電話。用于互連諸模塊或外圍組件的許多數(shù)據(jù)總線可以遵循通用串行總線(USB)協(xié)議。盡管存在多個版本的USB協(xié)議,但最常用的是USB 2.0和USB 3.0。
在USB協(xié)議內(nèi),單個遵循USB的連接器可以將主機連接至具有最多達(dá)三十二(32)個端點的設(shè)備。USB協(xié)議的規(guī)范允許各種類型的端點,包括同步、中斷、控制、和批量。批量數(shù)據(jù)傳輸通常是突發(fā)的并且包含大量的時間不敏感的數(shù)據(jù)(例如,被發(fā)送至打印機的打印作業(yè))。USB協(xié)議的規(guī)范要求端點間的公平性。該公平性是通過向每個端點提供微幀內(nèi)的時隙來實現(xiàn)的。另外,在USB 2.0中,通過循環(huán)格式來達(dá)成公平性,其中主機依次輪詢設(shè)備的每個端點。在批量端點的情形中,如果不存在數(shù)據(jù),則該批量端點返回NAK信號。USB 3.0提供了端點可藉以返回所存儲的未準(zhǔn)備好(NRDY)信號的替換過程。隨后,當(dāng)數(shù)據(jù)在批量端點處為可用時,該設(shè)備發(fā)送端點準(zhǔn)備好信號(ERDY),并且主機可以重新調(diào)度該事務(wù)。
在實踐中,可以輪詢?nèi)舾膳慷它c,其重復(fù)地返回NAK信號。該循環(huán)要求指示:即使主機知道一不同的端點具有要傳輸?shù)臄?shù)據(jù)(例如,因為該端點在它最后一次被輪詢時具有要傳輸?shù)臄?shù)據(jù),并且并非所有數(shù)據(jù)都能落在微幀中所分配的空間內(nèi)),那些相同的端點也將再次被輪詢。另外,這種恒定的輪詢妨礙進(jìn)入低功率模式中。即使在USB 3.0中,也可以基于哪個端點具有要傳輸?shù)臄?shù)據(jù)來作出吞吐量優(yōu)化。
公開概述
詳細(xì)描述中公開的各方面包括通用串行總線(USB)通信系統(tǒng)和方法。具體而言,本公開的各方面優(yōu)化來自通過USB連接來連接的批量端點的批量數(shù)據(jù)傳輸?shù)妮喸兒驼{(diào)度。通過減少輪詢量以及通過偏向于已知具有要傳輸?shù)臄?shù)據(jù)的端點,避免了不必要的信令。信令的縮減允許在更短的時間量中傳輸更多的數(shù)據(jù)。減少數(shù)據(jù)傳輸所需要的時間可允許使用低功率模式,這進(jìn)而進(jìn)一步省電。
在第一示例性方面,該優(yōu)化是通過一旦批量端點已經(jīng)發(fā)送了否定指示(例如,NAK、NYET、NRDY)信號就不輪詢或者跳過它們來達(dá)成的。這一跳過可以持續(xù)預(yù)定義的時間段。在第二示例性方面,當(dāng)不存在要完成的批量傳輸時,調(diào)度與中斷傳輸相關(guān)聯(lián)的信號,而不是等待在新幀的開始處進(jìn)行中斷傳輸。在每種情形中,通過減少到不活躍端點的信令并且將信令合并到較短的時間和較少的幀中,該優(yōu)化導(dǎo)致功率節(jié)省以使得可以使用低功率模式。
鑒于此,在一個方面,公開了一種控制通過USB連接的數(shù)據(jù)傳輸?shù)姆椒?。該方法包括在與耦合至USB連接的主機相關(guān)聯(lián)的控制系統(tǒng)處接收來自多個批量端點中的至少一個批量端點的否定指示,該否定指示指示該多個批量端點中的該至少一個批量端點不具有準(zhǔn)備好要傳輸?shù)臄?shù)據(jù)。該方法還包括基于該否定指示來使通過USB連接至該多個批量端點中的其他端點的批量數(shù)據(jù)傳輸優(yōu)先。
在另一方面,公開了一種計算設(shè)備。該計算設(shè)備包括配置成耦合至USB連接的主機。該計算設(shè)備還包括與該主機和USB連接相關(guān)聯(lián)的控制系統(tǒng)。該控制系統(tǒng)被配置成接收來自多個批量端點中的至少一個批量端點的否定指示,該否定指示指示該多個批量端點中的該至少一個批量端點不具有要傳輸?shù)臄?shù)據(jù)。該控制系統(tǒng)還被配置成基于該否定指示來使通過USB連接至該多個批量端點中的其他端點的批量數(shù)據(jù)傳輸優(yōu)先。
在另一方面,公開了一種控制通過USB連接的數(shù)據(jù)傳輸?shù)姆椒āT摲椒òù_定多個批量端點中的每一個批量端點都不具有要傳輸至主機的數(shù)據(jù)。該方法還包括確定待決幀包括一個或多個中斷傳輸。該方法還包括在待決幀開始之前將中斷查詢發(fā)送至中斷端點。
在另一方面,公開了一種計算設(shè)備。該計算設(shè)備包括配置成耦合至USB連接的主機。該計算設(shè)備還包括與該主機相關(guān)聯(lián)的控制系統(tǒng)。該控制系統(tǒng)被配置成確定多個批量端點中的每一個批量端點都不具有要傳輸至主機的數(shù)據(jù)。該控制系統(tǒng)還配置成確定待決幀包括一個或多個中斷傳輸。該控制系統(tǒng)還配置成在待決幀開始之前通過USB連接將中斷查詢發(fā)送至中斷端點。
附圖簡述
圖1A是具有耦合至多個設(shè)備的主機的計算設(shè)備的簡化框圖,該多個設(shè)備各自具有一個或多個端點,該主機通過通用串行總線(USB)連接來耦合至該多個設(shè)備;
圖1B是圖1A的多個設(shè)備中的一個設(shè)備的簡化框圖,其中解說了端點;
圖2是解說常規(guī)USB 2.0循環(huán)批量傳輸序列的查詢響應(yīng)的具有時間戳的幀的簡化示圖;
圖3是通過USB 2.0總線至具有四個批量IN端點的設(shè)備的常規(guī)循環(huán)查詢的簡化解說;
圖4是根據(jù)本公開的示例性方面的具有耦合至多個設(shè)備的主機的計算設(shè)備的簡化框圖,每個設(shè)備具有一個或多個端點,其中該主機通過USB連接來耦合至這些設(shè)備;
圖5是經(jīng)優(yōu)化的批量傳輸過程的示例性方面的簡化解說;
圖6是經(jīng)加權(quán)的批量傳輸過程的示例性方面的簡化解說;
圖7是經(jīng)優(yōu)化的中斷過程的示例性方面的簡化解說;
圖8是允許使用低功率模式的經(jīng)優(yōu)化的批量傳輸?shù)暮喕庹f;
圖9是示出根據(jù)本公開的示例性方面的用于USB 2.0的示例性端點仲裁過程的流程圖;
圖10是示出根據(jù)本公開的示例性方面的用于USB 3.0的示例性端點仲裁過程的流程圖;
圖11是可用于優(yōu)化通過USB連接器的數(shù)據(jù)傳輸?shù)耐獠空{(diào)度器的框圖;以及
圖12是根據(jù)本公開的示例性方面的可包括經(jīng)優(yōu)化的USB連接器的基于處理器的示例性系統(tǒng)的框圖。
詳細(xì)描述
現(xiàn)在參照附圖,描述了本公開的若干示例性方面。措辭“示例性”在本文中用于表示“用作示例、實例或解說”。本文中描述為“示例性”的任何方面不必被解釋為優(yōu)于或勝過其他方面。
詳細(xì)描述中公開的各方面包括通用串行總線(USB)通信系統(tǒng)和方法。具體而言,本公開的各方面優(yōu)化來自通過USB連接來連接的批量端點的批量數(shù)據(jù)傳輸?shù)妮喸兒驼{(diào)度。通過減少輪詢量以及通過偏向于已知具有要傳輸?shù)臄?shù)據(jù)的端點,避免了不必要的信令。信令的縮減允許在更短的時間量中傳輸更多的數(shù)據(jù)。減少數(shù)據(jù)傳輸所需要的時間可允許使用低功率模式,這進(jìn)而進(jìn)一步省電。
在第一示例性方面,該優(yōu)化是通過一旦批量端點已經(jīng)發(fā)送了否定指示(例如,NAK、NYET、NRDY)信號就不輪詢或者跳過它們來達(dá)成的。這一跳過可以持續(xù)預(yù)定義的時間段。在第二示例性方面,在沒有要進(jìn)行的批量傳輸時而不是在幀的開始處調(diào)度與中斷傳輸相關(guān)聯(lián)的信號。在每種情形中,通過減少到不活躍端點的信令以及將信令合并到較短的時間和較少的幀中,該優(yōu)化導(dǎo)致功率節(jié)省,以使得可以使用低功率模式。
在解決本公開的示例性方面之前,參照圖1A-3討論了通過USB連接來耦合至多個設(shè)備的常規(guī)主機的簡要概覽。本公開的示例性方面在以下參照圖4開始。
在此方面,圖1A是具有主機12的計算設(shè)備10的簡化框圖。主機12可具有可包括提供USB主機的常規(guī)功能性的硬件和/或軟件的控制系統(tǒng)(CS)14。主機12可以通過USB連接18來耦合至USB集線器16。USB連接18可以是連接器、連接器和電纜、或者固定的連接,這是很好理解的并且可以根據(jù)USB 2.0、USB 3.0、或者USB 3.1標(biāo)準(zhǔn)來操作。USB集線器16可以通過相應(yīng)的USB連接22(1)-22(N)(一般是連接22)來耦合至一個或多個設(shè)備20(1)-20(N)(一般是設(shè)備20)。USB連接22(1)-22(N)可以是連接器、具有電纜的連接器、或者固定的連接,這是很好理解的并且可以根據(jù)USB 2.0、USB 3.0、或者USB 3.1標(biāo)準(zhǔn)來操作。此外,一個或多個USB連接22可以具有居間的附加USB集線器26。例如,如解說的,USB連接22(N)具有居間的附加USB集線器26。注意,USB集線器16和居間的附加USB集線器26都是可任選的。
舉例而言,主機12是耦合至USB集線器16(諸如USB 2.0 4端口超小型集線器或者具有9個USB 3.0數(shù)據(jù)端口+1個智能充電端口的AH231 USB集線器)的臺式計算機,并且設(shè)備20(1)-20(N)是外圍設(shè)備,諸如USB存儲器棒、打印機、揚聲器、鼠標(biāo)、鍵盤等。居間的附加USB集線器26可以用于擴展短的電纜或者提供附加的端口,這是很好理解的。
參照圖1B來更好地解說設(shè)備20。具體而言,圖1B的設(shè)備20可包括一個或多個端點(EP)28(1)-28(M)。USB標(biāo)準(zhǔn)允許設(shè)備內(nèi)的最多達(dá)三十二個EP。由此,M可以在一和三十二之間。EP 28(1)-28(M)可以是各種類型的端點中的任一者,包括同步、中斷、控制、和批量。同樣,EP 28(1)-28(M)可以是輸入(IN)或者輸出(OUT)EP,這是很好理解的。
參照圖1A和圖1B兩者,CS 14使用主機控制器接口(HCI)標(biāo)準(zhǔn)來查詢設(shè)備20(1)-20(N)的EP 28。例如,在遵循USB 2.0的系統(tǒng)中,HCI可遵循增強型HCI(eHCI)標(biāo)準(zhǔn)并且在遵循USB 3.0或者3.1的系統(tǒng)中,HCI可遵循可擴展(xHCI)標(biāo)準(zhǔn)。在這種HCI標(biāo)準(zhǔn)下,可存在四種類型的數(shù)據(jù)傳輸:控制、中斷、批量、以及同步。由此,EP 28可以是控制端點、中斷端點、批量端點、或者同步端點。感興趣的是批量數(shù)據(jù)傳輸,該批量數(shù)據(jù)傳輸通常是大的、突發(fā)式的、時間不敏感的數(shù)據(jù)塊,諸如舉例而言被發(fā)送至打印機的打印作業(yè)或者被發(fā)送至存儲的文件。
繼續(xù)參照圖1A和1B,為了確保公平性,CS 14以循環(huán)格式來查詢設(shè)備20(1)-20(N)的EP 28之中的批量端點。然而,此類循環(huán)查詢不是高效的,尤其是對于批量端點而言。具體而言,如果批量端點不具有要傳輸至主機12的數(shù)據(jù),則批量端點將否定指示發(fā)送回主機12。在USB 2.0中,否定指示是NAK信號。在USB 3.0和3.1中,否定指示是NRDY(未準(zhǔn)備好)或者NYET信號。每當(dāng)發(fā)送查詢和否定指示時,丟失了原本可用于來自具有數(shù)據(jù)的其他批量端點的傳輸數(shù)據(jù)的時間。
鑒于此,圖2解說了由圖1A的主機12發(fā)送的假設(shè)幀30。出于示例的考慮,假定每個設(shè)備20(1)-20(N)的所有EP 28(1)-28(M)都是批量端點并且在下文中被稱為批量EP 28。幀的起始(SOF)32使幀30開始。主機在34(1)處以輸入(IN)令牌的形式向第一批量EP 28(1)發(fā)送查詢。第一批量EP 28(1)發(fā)送NAK信號36(1)。如由時間戳38中的值所證明的,這可花費0.2微秒。附加的輸入令牌在34(2)、34(3)處被發(fā)送至其他批量EP 28(1)-28(M),并且接收到附加的NAK信號36(2)、36(3)。如在時間戳38中指示的,發(fā)送附加的輸入令牌消耗6.2微秒。最后,34(4)處的到第四批量EP 28(4)的輸入令牌導(dǎo)致數(shù)據(jù)40被發(fā)送至主機12并且后續(xù)的ACK信號42被發(fā)送。這一過程在整個幀30中繼續(xù),其中輸入令牌被發(fā)送至批量EP 28并且否定指示由主機12接收。對于給定的幀30,在給定批量傳輸?shù)耐话l(fā)特性的情況下,如果批量EP 28中給定的一個EP 28通過NAK信號來指示一次沒有數(shù)據(jù),則很有可能對于該幀30的其他部分,該批量EP 28將繼續(xù)返回NAK信號。同樣,如果在接收輸入令牌之后批量EP 28返回數(shù)據(jù),則在給定與批量傳輸相關(guān)聯(lián)的較大數(shù)據(jù)文件的情況下,批量EP 28很有可能不能夠在幀30內(nèi)的單個時隙中發(fā)送其所有的數(shù)據(jù)。
圖3中解說了循環(huán)法要求的后果的簡化解說,其假定存在要被查詢的四個批量端點EP 28(1)-28(4)。這些EP 28(1)-28(4)可以在單個設(shè)備20中或者跨多個設(shè)備20擴展。出于圖3的目的,批量EP 28(1)、28(2)、以及28(4)都具有要傳輸至主機12的數(shù)據(jù)。批量EP 28(3)沒有要傳輸?shù)臄?shù)據(jù)。在幀30的子幀44中,主機12依次將輸入令牌發(fā)送至每個端點,并且從EP 28(1)和EP 28(2)接收數(shù)據(jù),但是從EP 28(3)接收NAK信號,并且隨后從EP 28(4)接收數(shù)據(jù)。在子幀46中,發(fā)生同樣的結(jié)果并且以此類推貫穿幀30到子幀48以及幀30的結(jié)束。
如容易領(lǐng)會的,每個查詢和否定指示消耗功率。同樣,針對每個EP 28的恒定查詢意味著數(shù)據(jù)傳輸頻繁地持續(xù)多于一個幀30,這意味著主機12通過多個幀30保持活躍。這種活動妨礙進(jìn)入低功率狀態(tài)。過多的消息收發(fā)以及缺乏低功率狀態(tài)兩者都對功耗有貢獻(xiàn)。盡管在臺式計算設(shè)備中功耗可能不屬于關(guān)注問題,但是移動終端(諸如智能電話、平板設(shè)備、以及膝上型設(shè)備)具有減少功耗以延長重新充電之間的可用時間的壓力。
本公開的示例性方面通過優(yōu)化批量數(shù)據(jù)傳輸來減少功耗。具體而言,代替xHCI和eHCI的循環(huán)格式,在本公開的示例性方面中,給予已知具有數(shù)據(jù)的批量端點優(yōu)先級,并且在后續(xù)子幀中跳過發(fā)送否定指示的端點??梢栽谥敝翈慕Y(jié)束或者在否定指示之后的預(yù)定義的時間(例如,數(shù)毫秒)內(nèi)作出該跳過。
鑒于此,圖4解說了具有帶有CS 54的主機52的計算設(shè)備50。主機52通過USB連接58來耦合至設(shè)備56。設(shè)備56可包括多個EP 60(1)-60(N)(通稱為(諸)EP 60)。CS 54可包括實現(xiàn)本公開的示例性方面的硬件和/或軟件。USB連接58可以根據(jù)如由本文公開的諸方面修改的USB 2.0、USB 3.0、或者USB 3.1標(biāo)準(zhǔn)來操作。
如以上所提及的,在示例性方面,控制系統(tǒng)54可以通過跳過不具有數(shù)據(jù)的批量端點來優(yōu)化數(shù)據(jù)傳輸。在圖5中解說這一跳過。具體地,解說了具有幀的起始(SOF)72的幀70幀70進(jìn)一步具有子幀74(1)-74(N)。在第一子幀74(1)中,向計算設(shè)備50的EP 60(1)-60(4)中的每一者發(fā)送查詢(圖4)。該查詢可以是如先前討論的輸入令牌。第一EP 60(1)返回數(shù)據(jù),第二EP 60(2)也返回數(shù)據(jù)。然而,第三EP 60(3)返回NAK信號。第四EP 60(4)返回數(shù)據(jù)。由此,在后續(xù)子幀74(2)-74(N)中跳過第三EP 60(3)。通過跳過第三EP 60(3),主機52不使用功率和時間來發(fā)送將可能生成NAK信號的輸入令牌。在后續(xù)幀中,主機52可以再次查詢第三EP 60(3)。然而,考慮到批量數(shù)據(jù)傳輸一般時間不敏感的特性,對第三EP 60(3)的這種查詢之間的延遲是可接受的。代替延遲對后續(xù)幀的后續(xù)查詢,主機52可以延遲此類后續(xù)查詢達(dá)預(yù)定義的時間。
代替通過參照圖5描述的跳過來達(dá)成優(yōu)化或者除了通過跳過參照圖5描述的跳過來達(dá)成優(yōu)化之外,可以通過將特定端點進(jìn)行加權(quán)來完成進(jìn)一步的優(yōu)化。鑒于此,圖6解說了對第一EP 60(1)進(jìn)行加權(quán)并且在順序子幀中繼續(xù)查詢剩余的EP 60(2)、60(3)、60(4)。由此,在所提供的示例中,幀78內(nèi)的每個子幀76(1)-76(3)給予第一EP 60(1)三個時隙。子幀76(1)-76(3)各自將一個時隙給予其他EP 60(2)-60(4)之一(即第一子幀76(1)也查詢第二EP 60(2),第二子幀76(2)查詢第三EP 60(3)等)。這一經(jīng)修改的公平性可以被用于使來自占優(yōu)勢的端點的特別大的數(shù)據(jù)傳輸優(yōu)先,或者在批量數(shù)據(jù)傳輸實際上對時間敏感的不太可能的事件中提供及時的批量數(shù)據(jù)傳輸。經(jīng)加權(quán)的循環(huán)法還可以基于給定EP 60、設(shè)備56的所有EP 60(1)-60(N)的歷史ACK/NAK響應(yīng)、或者按需求或按期望的其他準(zhǔn)則。
代替使批量數(shù)據(jù)傳輸優(yōu)先或者除了使批量數(shù)據(jù)傳輸優(yōu)先之外,本公開的示例性方面還可被應(yīng)用于中斷傳輸。正常情況下,在USB協(xié)議中,如果EP 60要求主機52的關(guān)注,則EP 60必須等待直到主機52輪詢EP 60。主機52周期性地輪詢中斷EP 60(即,被指定為中斷端點的EP 60)。輪詢的速率是由端點描述符來設(shè)置的,但是通常發(fā)生在幀的開始處。然而,經(jīng)常有時候不存在要作出的可有利地用于輪詢中斷端點的批量傳輸。
鑒于此,圖7解說了具有子幀82(1)-82(N)的簡化幀80.在第一子幀82(1)中,EP 60(1)-60(4)是批量EP,并且僅有一個EP 60(3)返回NAK。在后續(xù)子幀82(2)中,剩余的EP 60(1)、60(2)和60(4)返回NAK。如以上提及的,EP 60(3)由于其先前的NAK信號而已經(jīng)被跳過。在本公開的示例性方面下,一旦所有的批量EP 60都已經(jīng)返回NAK信號,則每個EP 60都被跳過直至幀80的結(jié)束。如所解說的,如果所有EP 60的這一跳過發(fā)生在幀80內(nèi)的最后子幀82(N)之前,則剩余的子幀82可以被用于將中斷查詢84發(fā)送至中斷EP 60。后續(xù)幀86可以在幀90的起始之后消除或者跳過其經(jīng)正常地調(diào)度的中斷查詢88。
代替如以上參照圖7描述的移動中斷查詢或者除了移動中斷查詢之外,有可能充分地優(yōu)化批量傳輸?shù)恼{(diào)度,從而主機可以進(jìn)入低功率或者睡眠模式。進(jìn)入這種低功率或者睡眠模式對于移動終端而言節(jié)省了功率并且延長了電池壽命。鑒于此,參照圖8,與控制系統(tǒng)54相關(guān)聯(lián)的軟件可以包括與調(diào)度控制器94進(jìn)行通信的軟件調(diào)度寄存器92,調(diào)度控制器94可以對批量傳輸?shù)牟煌俾蔬M(jìn)行優(yōu)先級排序以優(yōu)化批量數(shù)據(jù)傳輸。具體而言,調(diào)度控制器94可以知曉待決批量數(shù)據(jù)傳輸?shù)拇笮。⑶以u估如何最佳地調(diào)度傳輸以在最短的時間量中完成所有的傳輸。例如,如果一個批量傳輸特別大,則幀98的子幀96(1)中的所有時隙可以專用于該數(shù)據(jù)傳輸。隨后,后續(xù)子幀96(2)可以專用于下一最大的批量數(shù)據(jù)傳輸,其中一個(或者數(shù)個)時隙專用于其他數(shù)據(jù)傳輸。因為已經(jīng)傳輸了來自較大傳輸?shù)拇蠖鄶?shù)數(shù)據(jù),所以可以為稍后的子幀(例如,子幀96(3))調(diào)度更多甚至平衡的數(shù)據(jù)傳輸。相對于USB標(biāo)準(zhǔn)的常規(guī)HCI的循環(huán)格式而言,此類調(diào)度允許將更多的數(shù)據(jù)投入到給定的幀98中。相應(yīng)地,有可能整個幀可以是沒有數(shù)據(jù)傳輸?shù)?。調(diào)度控制器94可以識別沒有為特定幀調(diào)度數(shù)據(jù),并且針對此類未被占據(jù)的幀100進(jìn)入低功率或者睡眠模式。注意,這一方面也適用于USB 3.0和3.1。
盡管以上附圖表示在幀或者子幀內(nèi)可能發(fā)生什么的簡化版本,但是討論已經(jīng)聚焦于至主機52的數(shù)據(jù)傳輸。本公開并不被如此限定。對于從主機到特定端點的數(shù)據(jù)傳輸可以作出類似優(yōu)化。
鑒于此,圖9在適用于USB 2.0的過程110的單個流程圖中解說了各種各樣的優(yōu)化技術(shù)。在主機52開始EP仲裁時,過程110開始(框112)。CS 54等待幀的起始(框114)。在幀(例如,幀80)的起始之后,CS 54使得主機52向任何相關(guān)的中斷或者同步EP 60發(fā)出輸入令牌(框116)。CS 54評估EP組成是否包括任何所需要的批量EP 60(框118)。EP組成是每一應(yīng)用以及經(jīng)連接的相關(guān)設(shè)備的主機52的活躍EP 60的列表。如此,EP組成取決于設(shè)備和主機驅(qū)動器。如果對框118的回答為否,則過程110返回到框114。然而,如果對框118的回答為是,則CS 54開始批量EP循環(huán)查詢(框120)。
繼續(xù)參照圖9,CS 54可以根據(jù)現(xiàn)有數(shù)據(jù)和公平共享限制來向主機52正向其發(fā)送數(shù)據(jù)的批量EP 60發(fā)出輸出(OUT)令牌(框122)。CS 54評估是否存在更多的輸出EP 60(框124)。如果對框124的回答為是,則在框122處發(fā)出更多的輸出令牌。如果對框124的回答為否,則以CS 54向批量EP 60發(fā)出批量輸入令牌(框126)來繼續(xù)過程110。CS 54確定是否存在ACK且沒有短分組(即,在USB 2.0中少于512字節(jié)或者在USB 3.0中少于1024字節(jié)的分組,并且通常意味著完成了傳輸,這暗示下一傳輸中有數(shù)據(jù)的概率較低;如果不存在短分組,則在這一輸入EP 60處存在更多數(shù)據(jù)的概率較高)(框128)。如果回答為是,則存在ACK,通過返回到框126,該過程對于下一批量EP 60重復(fù)。對于N個批量EP 60(1)-60(N)中的每一個批量EP重復(fù)框128,并且隨后過程110繼續(xù)。CS 54保存用于下一仲裁或者幀的ACK的數(shù)目。如果僅返回NAK,則CS 54配置再次發(fā)出針對此EP 60的批量輸入令牌之前的等待時間(框130)。CS 54檢查是否存在具有數(shù)據(jù)的更多的潛在批量EP 60(框132)。如果回答為是,則過程110移動至下一批量EP 60(框134)并且隨后過程110返回到具有批量循環(huán)的框120。
繼續(xù)參照圖9,如果對框132的回答為否,則不存在潛在的批量EP 60,CS 54評估是否存在來自待決幀的待決中斷EP 60(框136)。如果對框136的回答為是,則CS 54向相關(guān)的中斷EP(而不是在下一幀處)發(fā)出輸入令牌(框138)。該過程隨后返回到框114。如果對框136的回答為否,則過程返回到框114,而不發(fā)出此類搶先的輸入令牌。
過程110允許EP響應(yīng)的自適應(yīng)學(xué)習(xí)并且允許批量EP傳輸?shù)恼{(diào)度,以優(yōu)化令牌并且減少將被用于發(fā)送查詢和接收否定指示的時間和功率的可能性。另外,該過程允許基于吞吐量需求和基于先前的響應(yīng)來用批量EP 60進(jìn)行傳輸。由此,如果不需要傳輸,則計算設(shè)備50可以進(jìn)入低功率模式達(dá)可配置的時間。類似地,優(yōu)先級可以被給予具有要傳輸?shù)臄?shù)據(jù)的EP 60并且在幀內(nèi)分配更多的時隙。作為進(jìn)一步優(yōu)化的方面,如果批量輸出EP 60正在傳輸數(shù)據(jù),則為了更好的效率,CS 54可以使該數(shù)據(jù)傳輸優(yōu)先直至該傳輸完成即,經(jīng)常在EP 60之間改變會消耗額外的時間。當(dāng)數(shù)據(jù)在特定的EP 60處可用時,停留在該EP 60并且繼續(xù)作出批量輸出EP 60或者批量輸入EP 60,直至輸出中沒有數(shù)據(jù)或者根據(jù)在輸入EP 60中將不會有數(shù)據(jù)的預(yù)測一般會更高效。
盡管過程110對于USB 2.0是恰適的,但是USB 3.0具有不同的輸入令牌和響應(yīng)過程。相應(yīng)地,本公開的示例性方面可被修改以便按USB 3.0和3.1來操作。此類過程140的示例性方面參照圖10來提供。過程140開始于主機52開始EP仲裁(框142)。CS 54等待幀的起始(框144)。在幀(例如,幀80)的起始之后,CS 54使得主機52向任何相關(guān)的中斷或者同步EP 60發(fā)出輸入令牌(框146)。CS 54評估組成是否包括任何所需要的批量EP 60(框148)。如果對框148的回答為否,則過程140返回到框144。然而,如果框148的回答為是,則CS 54開始批量EP循環(huán)查詢(框150)。
繼續(xù)參照圖10,CS 54可以根據(jù)現(xiàn)有數(shù)據(jù)和公平共享限制來向主機52正向其發(fā)送數(shù)據(jù)的批量EP 60發(fā)出輸出令牌(框152)。CS 54評估是否存在更多的輸出EP 60(框154)。如果對框154的回答為是,則在框152處發(fā)出更多的輸出令牌。如果對框154的回答為否,則以CS 54向批量EP 60發(fā)出批量輸入令牌來繼續(xù)過程140或者在接收來自EP 60的ERDY信號之后繼續(xù)過程140(框156)。CS 54確定是否存在數(shù)據(jù)并且沒有短分組(框158)。如果回答為是,則存在數(shù)據(jù),通過返回到框156,該過程對于下一批量EP 60重復(fù)。對于N個批量EP中的每一個批量EP重復(fù)框158,并且隨后過程140繼續(xù)。CS 54保存用于下一仲裁或者幀的數(shù)據(jù)響應(yīng)的數(shù)目。如果僅返回否定指示(NRDY或者NYET),則CS 54針對下一次接收到ERDY減小該EP的優(yōu)先級(框160)。CS 54檢查是否存在具有數(shù)據(jù)的更多的潛在批量EP 60(框162)。如果回答為是,則過程140移動至下一批量EP 60(框164)并且隨后過程140返回到具有批量循環(huán)的框150。
繼續(xù)參照圖10,如果對框152的回答為否,則不存在潛在的批量EP 60,CS 54評估是否存在來自待決幀的待決中斷EP 60(框166)。如果對框166的回答為是,則CS 45向相關(guān)的中斷EP 60(而不是在下一幀處)發(fā)出輸入令牌(框168)。該過程隨后返回到框144。如果對框166的回答為否,則過程返回到框134而不發(fā)出此類搶先的輸入令牌。
盡管以上討論構(gòu)想了CS 54是在主機52的內(nèi)部,但是本公開并不被如此限定。還可以使用外部的控制器或者外部的調(diào)度器。鑒于此,圖11解說了使用高級高性能總線(AHB)從模塊174通過作為從設(shè)備的AHB 172來耦合至主機52的外部調(diào)度器170。配置數(shù)據(jù)被傳遞至軟件調(diào)度和設(shè)置寄存器176。外部調(diào)度器170可以在高級可擴展接口(AXI)主模塊180處進(jìn)一步耦合至AXI 178。如所提及的,外部主機調(diào)度器模塊182接收數(shù)據(jù),并且通過AHB主模塊184和AXI從模塊186來與USB主機/雙重角色控制器188發(fā)送數(shù)據(jù),以便通過USB連接58來與設(shè)備56通信??扇芜x的集線器116可以被放置在外部調(diào)度器170與設(shè)備56之間。由此,如所解說的,基于至系統(tǒng)存儲器的AXI寫入來分析響應(yīng)。如果外部調(diào)度器170藉由NAK來標(biāo)識不存在來自特定EP 60的數(shù)據(jù),則外部調(diào)度器170可以指令控制器停止查詢該特定EP 60。
根據(jù)本文中所公開的諸方面的用于改進(jìn)USB和相關(guān)的組件上的性能的系統(tǒng)和方法可以被提供在或集成到任何基于處理器的設(shè)備中。不作為限定的示例包括機頂盒、娛樂單元、導(dǎo)航設(shè)備、通信設(shè)備、固定位置數(shù)據(jù)單元、移動位置數(shù)據(jù)單元、移動電話、蜂窩電話、計算機、便攜式計算機、臺式計算機、個人數(shù)字助理(PDA)、監(jiān)視器、計算機監(jiān)視器、電視機、調(diào)諧器、無線電、衛(wèi)星無線電、音樂播放器、數(shù)字音樂播放器、便攜式音樂播放器、數(shù)字視頻播放器、視頻播放器、數(shù)字視頻碟(DVD)播放器、以及便攜式數(shù)字視頻播放器。
鑒于此,圖12解說了可采用本文中所公開的方法和硬件的基于處理器的系統(tǒng)190的示例。在該示例中,基于處理器的系統(tǒng)190包括一個或多個中央處理單元(CPU)192,其各自包括一個或多個處理器194。(諸)CPU 192可具有耦合至(諸)處理器194以用于對臨時存儲的數(shù)據(jù)進(jìn)行快速訪問的高速緩存存儲器196。(諸)CPU 192被耦合至系統(tǒng)總線198,并且可將基于處理器的系統(tǒng)190中所包括的設(shè)備進(jìn)行相互耦合。如圖4中解說的,系統(tǒng)總線198可以是具有主機52和設(shè)備56的遵循USB的總線。如眾所周知的,(諸)CPU 192通過在系統(tǒng)總線198上交換地址、控制、以及數(shù)據(jù)信息來與這些其他設(shè)備通信。例如,(諸)CPU 192可將總線事務(wù)請求傳達(dá)到存儲器控制器200。
其它設(shè)備可連接到系統(tǒng)總線198。如圖12中所解說的,作為示例,這些設(shè)備可包括存儲器系統(tǒng)200、一個或多個輸入設(shè)備202、一個或多個輸出設(shè)備204、一個或多個網(wǎng)絡(luò)接口設(shè)備206、以及一個或多個顯示器控制器208。(諸)輸入設(shè)備202可包括任何類型的輸入設(shè)備,包括但不限于輸入鍵、開關(guān)、語音處理器等。(諸)輸入設(shè)備202可以是通過USB連接來耦合至基于處理器的系統(tǒng)190的外圍設(shè)備。(諸)輸出設(shè)備204可包括任何類型的輸出設(shè)備,包括但不限于音頻、視頻、其他視覺指示器等。(諸)輸出設(shè)備204可以是通過USB連接來耦合至基于處理器的系統(tǒng)190的外圍設(shè)備。(諸)網(wǎng)絡(luò)接口設(shè)備206可以是被配置成允許去往和來自網(wǎng)絡(luò)210的數(shù)據(jù)交換的任何設(shè)備。網(wǎng)絡(luò)210可以是任何類型的網(wǎng)絡(luò),包括但不限于:有線或無線網(wǎng)絡(luò)、私有或公共網(wǎng)絡(luò)、局域網(wǎng)(LAN)、廣域網(wǎng)、無線局域網(wǎng)、以及因特網(wǎng)。(諸)網(wǎng)絡(luò)接口設(shè)備216可被配置成支持所期望的任何類型的通信協(xié)議。
(諸)CPU 192還可被配置成在系統(tǒng)總線198上訪問(諸)顯示器控制器208以控制發(fā)送至一個或多個顯示器212的信息。(諸)顯示器控制器208經(jīng)由一個或多個視頻處理器214向(諸)顯示器212發(fā)送要顯示的信息,視頻處理器214將要顯示的信息處理成適于(諸)顯示器212的格式。(諸)顯示器212可包括任何類型的顯示器,包括但不限于:陰極射線管(CRT)、發(fā)光二極管(LED)顯示器、液晶顯示器(LCD)、等離子顯示器等。
本領(lǐng)域技術(shù)人員將進(jìn)一步領(lǐng)會,結(jié)合本文所公開的諸方面描述的各種解說性邏輯塊、模塊、電路和算法可被實現(xiàn)為電子硬件、存儲在存儲器中或在另一計算機可讀介質(zhì)中并由處理器或其它處理設(shè)備執(zhí)行的指令、或兩者的組合。作為示例,本文中描述的設(shè)備可在任何電路、硬件組件、集成電路(IC)、或IC芯片中采用。本文所公開的存儲器可以是任何類型和大小的存儲器,且可被配置成存儲所期望的任何類型的信息。為了清楚地解說這種可互換性,以上已經(jīng)以其功能性的形式一般地描述了各種解說性組件、框、模塊、電路和步驟。此類功能性如何被實現(xiàn)取決于具體應(yīng)用、設(shè)計選擇、和/或加諸于整體系統(tǒng)上的設(shè)計約束。技術(shù)人員可針對每種特定應(yīng)用以不同方式來實現(xiàn)所描述的功能性,但此類實現(xiàn)決策不應(yīng)當(dāng)被解讀為致使脫離本公開的范圍。
結(jié)合本文中公開的諸方面描述的各種解說性邏輯塊、模塊、以及電路可用設(shè)計成執(zhí)行本文中描述的功能的處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或其他可編程邏輯器件、分立的門或晶體管邏輯、分立的硬件組件、或其任何組合來實現(xiàn)或執(zhí)行。處理器可以是微處理器,但在替代方案中,處理器可以是任何常規(guī)處理器、控制器、微控制器或狀態(tài)機。處理器還可以被實現(xiàn)為計算設(shè)備的組合,例如DSP與微處理器的組合、多個微處理器、與DSP核心協(xié)同的一個或多個微處理器、或任何其它此類配置。
本文所公開的諸方面可被實施在硬件和存儲在硬件中的指令中,并且可駐留在例如隨機存取存儲器(RAM)、閃存、只讀存儲器(ROM)、電可編程ROM(EPROM)、電可擦可編程ROM(EEPROM)、寄存器、硬盤、可移動盤、CD-ROM,或本領(lǐng)域中所知的任何其它形式的計算機可讀介質(zhì)中。示例性存儲介質(zhì)被耦合到處理器,以使得處理器能從/向該存儲介質(zhì)讀取/寫入信息。在替換方案中,存儲介質(zhì)可以被整合到處理器。處理器和存儲介質(zhì)可駐留在ASIC中。ASIC可駐留在遠(yuǎn)程站中。在替換方案中,處理器和存儲介質(zhì)可作為分立組件駐留在遠(yuǎn)程站、基站或服務(wù)器中。
還注意到,本文任何示例性方面中描述的操作步驟是為了提供示例和討論而被描述的。所描述的操作可按除了所解說的順序之外的眾多不同順序來執(zhí)行。此外,在單個操作步驟中描述的操作實際上可在多個不同步驟中執(zhí)行。另外,示例性方面中討論的一個或多個操作步驟可被組合。將理解,如對本領(lǐng)域技術(shù)人員顯而易見地,在流程圖中解說的操作步驟可進(jìn)行眾多不同的修改。本領(lǐng)域技術(shù)人員還將理解,可使用各種不同技術(shù)中的任何一種來表示信息和信號。例如,貫穿上面描述始終可能被述及的數(shù)據(jù)、指令、命令、信息、信號、位(比特)、碼元、以及碼片可由電壓、電流、電磁波、磁場或磁粒子、光場或光粒子、或其任何組合來表示。
提供對本公開的先前描述是為使得本領(lǐng)域任何技術(shù)人員皆能夠制作或使用本公開。對本公開的各種修改對本領(lǐng)域技術(shù)人員而言將容易是顯而易見的,并且本文中所定義的普適原理可被應(yīng)用到其他變型而不會脫離本公開的精神或范圍。由此,本公開并非旨在被限定于本文中所描述的示例和設(shè)計,而是應(yīng)被授予與本文中所公開的原理和新穎特征一致的最廣義的范圍。