通過網絡隧道傳輸數據的方法和裝置制造方法
【專利摘要】本申請涉及用于通過網絡隧道有效傳輸數據的方法和裝置。在一種實施例中,開隧道的設備向網絡的對等設備通告某些能力,并且發現網絡的對等設備的能力。在另一種實施例中,開隧道的網絡設備中的每個設備都從中轉協議參數導出在數據聯網中使用的網絡參數。
【專利說明】通過網絡隧道傳輸數據的方法和裝置
[0001]優先權
[0002]本申請要求與本申請同期于2012年5月2日提交的相同標題的美國專利申請序列號13/462,603的優先權,該申請13/462,603又要求于2011年5月2日提交且標題為“METHODS AND APPARATUS FOR TRANSPORTING DATA THROUGH NETWORK TUNNELS” 的共同未決美國臨時專利申請號61/481,641的優先權,以上每個申請都在此引入其全部作為參考。
【技術領域】
[0003]本發明總體上涉及計算機化設備、網絡和總線的【技術領域】。更具體地說,在一個示例性方面,本發明針對通過網絡隧道有效地傳輸數據。
【背景技術】
[0004]在數據聯網的背景下,“隧道”是聯網元件之間的網絡通信通道,這種聯網元件在(中轉或承載網絡固有的)中轉協議中嵌入了(聯網元件共享的)網絡協議。開隧道通常用于邏輯上連接不能物理組合的子網絡。例如,專用網絡可以通過公共網絡建立安全隧道,以便創建共享的虛擬專用網絡。開隧道還可以用于在公共傳輸之上嵌入若干個網絡協議。例如,初期的ThunderboIt?高速數據總線可以在單個、成本有效的接口上同時支持PC1-Express? (高速外設部件互連)和DisplayPort?數據。
[0005]當前的Thunderbolt接口實現在單個串行數據接口中提供了 PCI Express(PCIe)隧道、DisplayPort (DP)隧道及通用的本機主機接口(NHI) /用戶傳輸接口(UTI)隧道。在操作過程中,PCIe流與DP流被打包到Thunderbolt分組中以進行傳輸。分組交織到一起,用于在共享的Thunderbolt連接上發送,然后在接收器被解交織到它們各自的組成流中。由于PCIe和DP數據流在中轉過程中都不能修改,因此結果產生的流自然與現有的PCIExpress和DisplayPort硬件與軟件兼容。
[0006]但是,廣泛地認識到,總線協議的能力與功能性廣泛變化。例如,PCIe不提供為給定數據流預留帶寬的方式。作為代替,PCIe規范定義了可以用于優先化典型PCIe系統中的事務的業務類和虛擬通道。不幸的是,這些能力沒有包括在當前的Thunderbolt解決方案中;現有的Thunderbolt收發器不支持在PCIe協議中使用的虛擬通道或業務類。作為代替,Thunderbolt收發器只能優先化在融合的輸入/輸出(CIO)層(如本文所使用的,融合的輸入/輸出(CIO)協議是用于Thunderbolt收發器的中轉協議)的業務。例如,Thunderbolt收發器可以只讓DP業務比PCIe業務優先。
[0007]而且,Thunderbolt可熱插拔的傳輸將理想地提供一般化、普遍存在的硬件與軟件接口,類似于USB (通用串行總線)和FireWire?設備。為此,當前的研究針對最小化用于Thunderbolt設備的特種設備驅動器的使用,從而為消費者和開發者提供類似的“透明”操作。
[0008]相應地,需要供Thunderbolt傳輸技術使用的、在開隧道的PCIe流中讓某些類型的業務優先的解決方案。理想地,這種解決方案不應當需要專門的軟件或硬件結構,而且對用戶實際上是透明的。更一般地說,需要在開隧道的數據網絡中啟用某些特定于協議的能力的解決方案。
【發明內容】
[0009]本發明通過尤其提供了通過網絡隧道有效傳輸數據的方法和裝置滿足了以上需求。
[0010]在本發明的一方面,公開了一種用于實現網絡中優先化的設備類的方法。在一種實施例中,所述方法包括:發現網絡中的一個或多個設備類;為所述一個或多個設備類分配一個或多個資源;并且根據所分配的一個或多個中轉資源來路由來自所發現的一個或多個設備類的數據業務。
[0011]在本發明的第二方面,公開了一種用于從中轉協議參數導出網絡協議參數的方法。在一種實施例中,所述方法包括:提取中轉參數;至少部分地基于所提取出的中轉參數確定網絡參數;并且至少部分地基于所確定的網絡協議參數進行操作。
[0012]在本發明的第三方面,公開了一種計算機可讀存儲裝置。在一種實施例中,所述裝置包括具有存儲在其上的至少一個計算機程序的存儲介質。所述至少一個程序配置成,當被執行時,(i)發現一個或多個設備類,(ii)為所發現的一個或多個設備類中的至少一個分配一個或多個中轉資源,和/或(iii)根據所分配的一個或多個中轉資源來路由數據。
[0013]在另一種實施例中,所述至少一個程序配置成,當被執行時,(i)提取中轉參數,(ii)從所提取出的中轉參數確定網絡參數,和/或(iii)根據所確定的網絡參數進行操作。
[0014]在本發明的第四方面,公開了一種配置成利用一個或多個隧道流以優先化一種或多種類型的業務的計算機化裝置。在一種實施例中,所述裝置包括計算機,而且隧道流跨Thunderbolt 接 口開隧道。
[0015]在本發明的第五方面,公開了一種利用一個或多個隧道流傳輸一種或多種類型的業務的系統。在一種實施例中,所述系統包括發送設備、接收設備及至少一個置于其間的承載介質。
[0016]在本發明的第六方面,公開了一種用于優先化網絡中的數據業務的方法。在一種實施例中,所述方法包括:發現與網絡中的一個或多個優先化的類關聯的一個或多個設備;為所述一個或多個優先化的類分配一個或多個中轉資源;以及在對應分配的一個或多個中轉資源上只路由與所述一個或多個優先化的類關聯的數據。
[0017]在一種變體中,所述一個或多個優先化的類基于一種或多種多媒體數據類型。例如,所述一種或多種多媒體數據類型可以包括音頻數據。在另一種此類變體中,所述一個或多個優先化的類基于設備類型。例如,所述一種或多種設備類型可以包括音頻設備和非音頻設備。在還有其它變體中,所述一個或多個傳送資源包括直接存儲器訪問(DMA)物理資源。例如,所述DMA物理資源經本機主機接口(NHI)耦合到主機接口,或者作為代替,所述DMA物理資源經用戶傳輸接口(UTI)耦合到外圍設備接口。
[0018]在還有其它變體中,所發現的所述一個或多個設備中的每一個都共享公共時間參考。
[0019]在本發明的第七方面,公開了一種配置成優先化網絡中的數據業務的裝置。在一種實施例中,所述裝置包括:一個或多個網絡接口 ;處理器;非臨時性計算機可讀介質,包括存儲在其上的至少一個計算機程序,所述至少一個計算機程序配置成,當在處理器上執行時:發現與網絡中一個或多個優先化的類關聯的一個或多個設備;為所述一個或多個優先化的類分配一個或多個中轉資源;以及在對應分配的一個或多個中轉資源上只路由與所述一個或多個優先化的類關聯的數據。
[0020]在一種變體中,所述一個或多個網絡接口包括與Thunderbolt兼容的網絡接口。作為替代,所述一個或多個網絡接口包括與高速外設部件互連(PCIe)兼容的網絡接口。在還有其它變體中,所述一個或多個網絡接口包括與DisplayPort兼容的網絡接口。
[0021]在一種變體中,所述一個或多個傳送資源包括直接存儲器訪問(DMA)物理資源。在其它變體中,所述一個或多個傳送資源包括專用存儲緩沖器。
[0022]在本發明的第八方面,公開了一種用于實現網絡中優先化的設備類的系統。在一種實施例中,所述方法包括:為網絡的一個或多個設備確定同步主設備;基于由該同步主設備提供的同步信息導出時間參考;以及為所述一個或多個設備支持的數據類型分配一個或多個中轉資源,其中所述一個或多個中轉資源被同步到所導出的時間參考。
[0023]在一種變體中,所述網絡包括多個同步主設備,其中每個同步主設備都與一個網絡片段關聯。在一個此類的系統中,所述多個同步主設備經一個或多個邊界設備中繼同步信息。
[0024]在一種變體中,所述網絡包括一個或多個與Thunderbolt兼容的設備。
[0025]在還有其它變體中,所述一個或多個傳送資源包括直接存儲器訪問(DMA)物理資源。
[0026]參考附圖和以下給出的示例性實施例的具體描述,本領域的普通技術人員將立刻認識到本發明的其它特征和優點。
【專利附圖】
【附圖說明】
[0027]圖1是說明示例性現有技術Thunderbolt?收發器設備的功能性框圖。
[0028]圖2是說明一種涉及圖1現有技術Thunderbolt?收發器設備的幾個連接能力的示例性使用場景的功能性框圖。
[0029]圖3是根據本發明用于在網絡中實現優先化的設備類的方法的一種示例性實施例的邏輯流程圖。
[0030]圖4是根據本發明用于從中轉協議參數導出網絡協議參數的方法的一種示例性實施例的邏輯流程圖。
[0031]圖5是對實現本發明的各種方法和方面有用的計算機化裝置的一種示例性實施例。
[0032]圖6是說明根據本發明的一種特定于實現的Thunderbolt?收發器設備實施例的框圖。
[0033]圖7是說明對從由圖6的Thunderbolt設備提供的參考時間生成同步音頻樣本時鐘有用的裝置的一種示例性實施例的框圖。
具體實施例
[0034]現在參考附圖,其中貫穿全文,相同的標號指相同的部分。[0035]概述
[0036]本發明特別提供了通過網絡隧道有效傳輸數據的方法和裝置。本發明的一種示例性實施例適于讓第一種類型的業務(例如,音頻業務)比其它類型(非音頻業務)優先在具有Thunderbolt能力的網絡上輸送。如本文中更具體地描述的,Thunderbolt設備將向網絡的對等設備通告音頻能力,并且還發現對等設備的音頻能力。
[0037]在本發明的第二種實施例中,與Thunderbolt網絡關聯的每個音頻設備都利用Thunderbolt時間管理單元(TMU)來提供網絡同步,這種網絡同步改進音頻重構和通過網絡的音頻數據傳播。Thunderbolt TMU可以提供跨所有Thunderbolt音頻設備都共用的高度準確和精確的時間參考。
[0038]示例性實施例的具體描述
[0039]現在更具體地描述本發明的示例性實施例。盡管這些實施例主要是就現有的Thunderbolt?高速數據總線和PC1-Express? (高速外設部件互連)及DisplayPort?協議來討論的,但是本領域普通技術人員將認識到,本發明不是要以任何方式限定到以上技術或協議。事實上,本發明的各方面可以適用于能夠通過一種或多種傳輸技術在一種或多種網絡協議中開隧道的任何網絡中。
[0040]類似地,盡管以下討論是關于音頻數據和音頻數據網絡給出的,但是本領域普通技術人員將認識到,本發明不是要以任何方式限定到音頻數據。事實上,本發明的各方面可以適用于可以比其它數據優先的任何數據類型中。常見的例子包括多媒體數據(例如,音頻數據、視頻數據等)、特定于應用的數據及實時數據。
[0041]如本文所使用的,術語“網絡”不加限制地指配置成把數據作為被稱為分組的合適大小的編組來傳輸的任何網絡或裝置。分組網絡可以把(由分組序列組成的)數據流輸送到設備群。在傳輸過程中,分組被緩沖并排隊,而且,依賴于網絡中的業務負載,可能經歷變化的延遲與吞吐量。基于分組的網絡的常見例子包括互聯網(即,互連的計算機網絡的全球系統),及私有化的互聯網和內聯網。
[0042]如本文所使用的,術語“源”不加限制地指配制成打包信息以便經基于分組的網絡傳輸的設備或接口。術語“目的地”、“目標”和/或“接收器”不加限制地指配置成從分組提取信息的設備或接口。
[0043]而且,術語“端點”通常而且不加限制地指作為設備之間通信流中信息的“源”和/或“目的地”的設備的一部分。類似地,如本文所使用的,“節點”不加限制地指接收分組并且把分組轉發到另一個設備的設備。
[0044]這些定義不應當以任何方式認為是限制;例如,客戶端設備或其它實體可以包括或者可以不包括網絡中的邏輯或物理“端點”和/或“節點”。
[0045]應當進一步認識到,設備可以(而且通常將)同時實現源、目的地和節點的功能性;以上所進行的區分僅僅是為了澄清本發明的各方面。
[0046]此外,盡管在有線數據總線或連接的背景下示出了某些實施例,但是本發明同等地適用于無線替代方案或接口,例如但不限于,像IEEE標準802.11無線網絡的WLAN、像IEEE標準802.16無線網絡的WMAN、個人區域網絡(PAN)、Bluetooth?、紅外線及光通信鏈路。
[0047]示例性現有技術Thunderbolt?收發器[0048]圖1說明了結合本發明各方面有用的一種示例性現有技術Thunderbolt收發器100。如所示出的,該Thunderbolt收發器包括:(i)一個或多個高速PCI (PCIe)接口,(ii)一個或多個 DisplayPort (DP)接口, (iii) 一個或多個 Thunderbolt 接口,(iv) 一個或多個用戶傳輸接口(UTI),(V) PCIe交換機,(vi)本機主機接口(NHI),及(vii) Thunderbolt交換機。Thunderbolt收發器的各當前實現把DP接口限定到僅DP數據;所有其它業務都作為PCIe數據來處理。
[0049]在操作過程中,NHI通過單個外部PCIe連接與本地主機處理器通信。本地主機處理器可以配置NHI中的直接存儲器訪問(DMA)引擎來讀和/或寫可以經PCIe總線訪問的系統存儲器。現有的Thunderbolt收發器具有一個外部PCIe連接,用于所有Thunderbolt命令事務、控制事務及所有的非顯示端口數據流(包括NHI)。外圍設備一般使用UTI接口,該接口連接到Thunderbolt交換機并且提供對UTI Thunderbolt分組的原始訪問。如所示出的,圖1的設備既有NHI又有UTI,這使得主機與外圍設備操作都可以進行(例如,只作主機的設備將不具有UTI,而只作外圍設備的設備將不具有NHI)。
[0050]主機處理器可以經它自己的NHI接口訪問外圍設備PCIe寄存器。事務經Thunderbolt交換機開隧道至外圍設備;其中訪問是通過UTI指引的,以便訪問PCIe寄存器。類似地,外圍設備可以經它們的UTI到主機的NHI (通過Thunderbolt網絡)執行對該主機的訪問。類似地,主機到主機的事務(對于多主機系統)可以NHI到NHI地執行,而外圍設備到外圍設備的事務(對于多外圍設備系統)可以UTI到UTI地執行。
[0051]圖2繪出了第一、第二和第三現有技術Thunderbolt收發器(100A、100B、100C)的一種示例性使用場景200,說明了各種連接能力。如所示出的,第一設備接收第一 PCIe數據流(由音頻數據與文件傳輸組成)和第一 DP數據流。第一設備100A打包第一 PCIe數據流和第一DP數據流,用于在第一 Thunderbolt高速串行總線上發送,并且發送第一 Thunderbolt數據流。
[0052]第二設備100B接收第一 Thunderbolt數據流,并且把該數據解包成第二 PCIe流和第二 DP數據流。第二 DP數據流驅動輸出DP接口。第二 PCIe流進一步分成其組成音頻數據和文件傳輸流。音頻數據驅動USB音頻輸出。剩余的文件傳輸重新打包成第二Thunderbolt數據流,用于在第二 Thunderbolt高速串行總線上發送。
[0053]第三設備100C接收第二 Thunderbolt數據流,并且把該數據解包成第三PCIe流。第三PCIe流驅動文件傳輸。
[0054]音頻聯網
[0055]如前面所描述的,DP接口只攜帶DP數據;S卩,所有非DP數據一般都通過單個PCIe鏈路開隧道。不幸的是,音頻數據會被延遲足夠多,造成音頻流中斷,尤其是在PCIe鏈路被其它非音頻業務嚴重阻塞的時候。而且,不像例如FireWire和USB (通用串行總線)的其它總線協議,PCIe不提供明確地預留帶寬的機制。此外,如前所述,現有技術的Thunderbolt收發器只能優先化在融合的輸入/輸出(CIO)層的業務(B卩,開隧道的PCIe與DP分組的交織)。
[0056]相應地,本發明的各種實施例適于解決現有技術收發器中上面提到的缺陷。在一種實施例中,Thunderbolt設備向網絡的對等設備通告音頻能力,并且發現該網絡的對等設備的音頻能力,由此使得設備能夠讓音頻業務比非音頻業務優先。在另一種實施例中,Thunderbolt網絡的每個音頻設備都利用Thunderbolt時間管理功能性來提供網絡同步,這有利地既改進了音頻重構,又改進了音頻數據通過網絡的傳播。
[0057]例如,在一種示例性實現中,MacOS X? Thunderbolt驅動器(由本受讓人自己開發并經銷)配置成發現所有連接的Thunderbolt設備,并且確定關聯的設備類(或者如果沒有另外指示的話就是缺省的類)。與Thunderbolt音頻類設備的事務被歸類為比其它PCIe事務具有更高的優先等級。在某些變體中,可能存在附加類型的設備類,每個都相對于其它設備類具有優先級(例如,類或類型的層次結構)。
[0058]具體而言,連同用于Thunderbolt網絡的相關參數一起,MacOS X Thunderbolt音頻類驅動器確定Thunderbolt音頻類設備列表;其中的參數例如:(i)可用于音頻的帶寬,
(ii)總帶寬,和/或(iii)消耗的帶寬。每個Thunderbolt設備都利用描述符模型向MacOS XThunderbolt音頻類驅動器通告其能力。例如,在一種此類的實施例中,描述符是音頻設備的PCIe可訪問存儲器中的數據結構。音頻設備操作的各方面可以由MacOS X Thunderbolt音頻類驅動器經PCIe可訪問的寄存器來控制。
[0059]此外,在本發明的輔助示例性實施例中,Thunderbolt收發器的Thunderbolt時間管理單元(TMU)用于設備級的時間同步,而且也作為音頻樣本時鐘重構的基礎。雖然應當認識到,其它時間基礎或參考源也可以與本發明一致地使用,但是Thunderbolt TMU提供了跨所有Thunderbolt音頻設備共用的高度準確與精確的時間參考。例如,Thunderbolt TMU的現有實現可以跨Thunderbolt網絡把設備同步維持在十納秒(10ns)內。
[0060]在操作過程中,MacOS X Thunderbolt音頻類驅動器可以配置音頻源設備在指定的最后期限之前把其樣本寫到另一個目的地設備的緩沖器中。類似地,只有在該最后期限過去之后,目的地設備才消費該樣本。以對遲滯的最小考慮,(由TMU在每個設備生成的)共享的時間參考的精度確保源和目的地設備都可以利用相同的時間參考。此外,Thunderbolt網絡的每個設備監視一個或多個樣本緩沖器(例如,設備自己的緩沖器,和/或對等設備的緩沖器),以防止和/或解決緩沖器欠載運行和緩沖器超載運行。
[0061]最后,在本發明的某些變體中,Thunderbolt TMU用于重構音頻樣本時鐘,由此在網絡的每個設備提供同步的、重構的高質量音頻時鐘信號。
[0062]現在更具體地描述本發明的兩個示例性實施例,以便進一步說明前面的原理。
[0063]本機豐機梓口(NHI),用戶傳輸梓口(UTI)
[0064]在本發明的第一種示例性實施例中,給音頻類設備分配專用的融合輸入/輸出(CIO)隧道。每個Thunderbolt音頻類設備都連接到專用的音頻類CIO隧道,而且只有音頻樣本通過該專用的CIO隧道發送。由于音頻類CIO隧道是優先的隧道,因此音頻樣本可以及時到達它們的目的地,而不管其它PCIe業務。在一種此類的實施例中,專用的音頻類CIO隧道是經到本機主機接口(NHI) /用戶傳輸接口(UTI)的Thunderbolt傳輸實現的。主機寫到其NHI,該NHI通過Thunderbolt網絡開隧道到第一外圍設備的UTI,第一外圍設備的UTI通過Thunderbolt網絡開隧道到另一個設備(例如,到第二外圍設備的UTI,或者返回到主機的NHI)。以這種方式,可以產生任意長的設備“環”。本地主機處理器把NHI DMA引擎配置成從本地主機處理器的系統存儲器讀/向其寫音頻數據樣本,然后本地主機處理器的系統存儲器又通過環形網絡開隧道。
[0065]Thunderbolt收發器的現有實現在每個UTI接口的每個方向只提供單個CIO隧道。相應地,現有的NHI/UTI實現有幾個顯著的限制。具體而言,單個NHI/UTI接口只能在所謂的“環形”拓撲結構中為多個設備提供服務;即,每個Thunderbolt音頻類設備從一個對等設備讀,并且寫到一個對等設備,以便傳輸音頻樣本(即使它們基于PCIe的控制連接在邏輯上被布置成總線)。(在每個方向以每秒2.5千兆傳輸(GT/s)操作的)UTI信號對可以建立大約一千個48千赫茲(kHz)、32位的音頻通道的每環限制,這對于簡單布置足夠了,但是在更復雜的配置中會很快被淹沒。
[0066]在某些使用場景中,環形拓撲結構是期望的。例如,環形拓撲結構相對來說是資源有效的,因為環形拓撲結構對于每個設備只消耗一個入站和一個出站路徑。另一個優點是,由于簡單的輸送結構(即,不需要地址解析、總線爭用等),Thunderbolt音頻類設備可以極低的等待時間(小于其發送整個分組所花費的時間量)傳遞分組。
[0067]但是,在其它使用場景中,環形拓撲結構可能是不期望的;例如,盡管可以使通過Thunderbolt音頻類設備的等待時間非常小(一毫秒的一小部分),但是通過其它類型設備(例如,像由本申請受讓人制造的Macbook?類型設備)的等待時間會受內部處理時間的支配,而且可能會顯著更長(幾毫秒)。由于環形拓撲結構是單向的,因此任何兩個設備之間的音頻等待時間將非常顯著地依賴于音頻樣本數據是否流經這種更長等待時間的設備。此夕卜,等待時間將隨著加入環中的設備的數量增加,而且在有設備添加到/或者從環中去除的時候,環業務必須中斷(每次拓撲結構改變時,必須形成新的環)。
[0068]NHI/UTI方法還有的其它限制可能涉及網絡的設備類型。例如,Macbook類型的設備將使用Thunderbolt NHI DMA引擎來發送和接收CIO分組。DMA操作需要使用(系統存儲器中的)中間緩沖器,這在某些應用中是不期望的。
[0069]而且,DMA系統存儲器是利用事務“昂貴”的所謂“非發布”PCIe讀事務訪問的。作為一個簡單的介紹,PCI Express支持所謂的“發布”和“非發布”事務。在PCIe中,典型的事務(即,非發布的讀或寫)是利用完成事務層分組(TLP)確認的。TLP完成分組向發送方確認接收方(或者“完成方”)已經接收到請求。對于讀請求,該完成包括,如果成功的話就是返回的讀數據,或者如果不成功的話就是錯誤狀態。對于寫請求,該完成包括,如果成功的話就是接收到確認,或者如果寫沒有成功完成的話就是錯誤狀態。相反,發布事務不提供任何確認(即使在事務不成功的時候)。PCIe不支持發布讀。
[0070]但是,以上提到的NHI/UTI方法的限制在某些實現場景中可能不太顯著(例如,當預期少量的連接設備時,當主要使用Thunderbolt音頻類設備時,等等)。作為替代,對設備技術的未來改進可能完全避免這樣的限制(例如,當未來的實現提供附加的UTI接口、改善設備的等待時間,等等)。
[0071]PCI Express (PCIe)
[0072]在本發明的第二種示例性實施例中,每個音頻類設備都為要從網絡接收的所有音頻通道分配存儲器。在操作過程中,音頻數據被“推送”通過PCIe隧道;即,音頻流是由源設備直接寫到目的地設備上的存儲緩沖器中的。在一種實現中,寫事務是“發布的”;即,不需要目的地與源設備之間的確認傳輸。在某些實施例中,寫事務進一步利用編程的1/0來處理(直接存儲器訪問)。
[0073]這種Thunderbolt PCIe統一尋址模型自然可以支持對等的音頻路由。這種能力使Thunderbolt PCIe設備能夠訪問Thunderbolt網絡上的任何其它Thunderbolt音頻類設備。更一般地說,不像前面描述過的環形拓撲結構,Thunderbolt網絡可以物理地布置成所謂的“樹”,這可以利用邏輯總線尋址支持每個PCIe設備(啟用更直接的路由)。
[0074]而且,不像上面提到的NHI/UTI方案,這種方法不需要專用的CIO資源,而且可以通過現有的PCIe分配來開隧道。CIO資源在當前的設備解決方案中是受限的;但是,如果期望更高的性能(而且CIO資源可用),則可以給Thunderbolt音頻類設備分配ThunderboltPCIe樹中它們自己的高優先級分支(B卩,Thunderbolt音頻類設備附連到專用的邏輯總線)。這種實現將增加音頻分組及時到達它們的目的地的機會,尤其是在對等事務的情況下。
[0075]此外,PCIe方法可以完全利用發布寫事務執行。具體而言,以上提到的NHI/UTI環形拓撲結構需要每個設備必須仍然執行對中間緩沖器的PCIe讀事務,及從該中間緩沖器的PCIe寫事務。這種PCIe讀事務是非發布的;S卩,需要確認。相反,PCIe方法(不使用NHI/UTI)可以完全利用PCIe “發布”寫事務,這最大化了吞吐量并最小化了等待時間,因為不需要來自目的地設備的響應。例如,示例性Macbook處理器可以把樣本直接寫到PCIe設備,而不需要結合直接存儲器訪問(DMA)引擎使用中間緩沖器。
[0076]方法
[0077]現在更具體地描述本發明的一般化方法。
[0078]在本發明的一方面,設備可以向網絡的對等設備通告各種優先化的類,并且發現開隧道的網絡的優先化的對等設備類。隧道資源(或者“中轉”資源)分配給網絡隧道支持的各種優先化的類。
[0079]在第二方面,開隧道的網絡的每個設備都從中轉協議提取一個或多個參數,其中每個設備可以從該中轉協議參數導出網絡協議參數。
[0080]現在參考圖3,描述了用于實現網絡中優先化的設備類的方法300的一種示例性實施例。在一種實施例中,優先化的類基于媒體類型。作為替代,優先化的類可以基于設備應用、設備能力、設備類型等。例如,設備可以歸類為音頻設備和非音頻設備。在另一個此類的例子中,設備可以根據以下(但不限于此)來歸類:(i)吞吐量,(ii)等待時間,(iii)異步性,(iv)等時性,和/或(V)可靠性。在還有其它例子中,設備可以根據設備類型(例如,主設備、從設備、邊界設備、集線器設備等)歸類。
[0081]在方法300的步驟302,每個設備為開隧道的網絡執行類發現。例如,在一種示例性實施例中,每個設備都執行配置成發現對等設備類(或者如果沒有另外指示的話就指定一個或多個缺省類)的軟件。設備可以向開隧道的網絡的其它設備通告它們適當的設備類。作為替代,設備向對等設備詢問它們的設備類。在還有其它實現中,設備向中央網絡實體(例如網絡主機、注冊服務等)注冊它們的設備類,并且從該中央網絡實體檢索注冊的對等設備類。
[0082]在一種示例性場景中,每個Thunderbolt設備都利用描述符模型向其它Thunderbolt設備通告它的能力。例如,描述符可以包括可以經網絡協議訪問的數據結構。網絡協議可以是例如PCI ExpresMPCIe)。例如,設備可以把它自己識別為PCIe存儲器中可以經Thunderbolt協議訪問的音頻設備。在還有其它場景中,一個或多個設備可以是網絡管理實體,例如,MacOS X Thunderbolt驅動器可以充當中央網絡管理實體,為網絡執行設備發現與設備管理。
[0083]一旦網絡的所有設備都已經歸類,設備及其關聯的類的結果列表就可以編譯到網絡列表中,并且提供給每個設備(或者其子集)。在某些實施例中,網絡列表可以附加地利用其它相關的參數,例如可用的總帶寬、消耗掉的帶寬、帶寬限制等,來增強。
[0084]在方法300的步驟304,為網絡中一個或多個優先化的類分配一個或多個中轉資源。在一種實施例中,為網絡的一個或多個類分配專用的中轉資源。中轉資源可以是在網絡開隧道過程中使用的物理或虛擬資源。例如,在一種此類的變體中,中轉資源可以包括邏輯路徑、邏輯通道等。在其它情況下,中轉資源可以包括物理處理資源(例如,直接存儲器訪問(DMA)等)、物理路徑、物理通道等。
[0085]數據業務也可以分配給例如專用輸入、存儲緩沖器和專用輸出的物理資源。例如,如前面所描述過的(參見本機主機接口(NHI),用戶傳輸接口(UTI)),音頻數據業務可以分配給NHI/UTI DMA物理資源。在另一個例子中,如前面所描沭討的(參見PCI Express(PCIe)),每個設備都為音頻數據業務分配內部系統存儲器中PCIe可訪問的存儲緩沖器。
[0086]在方法300的步驟306,優先化的業務根據所分配的一個或多個中轉資源而被路由。
[0087]現在參考圖4,描述用于從中轉協議參數導出網絡協議參數的方法400的一種示例性實施例。在一種實現中,時間同步是從貫穿整個網絡分布的中轉時間戳參數來確定的。例如,Thunderbolt時間管理單元(TMU)可以為音頻樣本時鐘重構生成設備級的時間同步。
[0088]在方法400的步驟402,每個設備都提取中轉協議參數。中轉協議參數的常見例子包括但不限于:時間、帶寬、錯誤檢查能力等。在一種示例性實施例中,每個設備都從中轉協議提取時間戳。在另一種此類的實施例中,每個設備都確定中轉網絡支持的總網絡帶寬。
[0089]要特別指出的是,中轉協議被所有連接的設備共享,而不管它們執行的應用或者開隧道的網絡協議等。例如,Thunderbolt網絡的所有設備都將共享公共Thunderbolt時間參考,而不管Thunderbolt設備的內部時間參考、應用軟件等。相應地,底層的中轉協議可以有利地用于同步Thunderbolt連接的設備的活動。
[0090]在步驟404,每個設備都至少部分地基于中轉協議參數確定網絡協議參數。
[0091]作為簡單的介紹,Thunderbolt收發器包含高級時間管理單元(TMU),TMU把Thunderbolt網絡時間準確且精確地傳送到Thunderbolt網絡上的每個設備。在典型的操作期間,為Thunderbolt網絡選同步主機。該同步主機把同步信息發送到駐留在其網絡片段上的設備。每個設備都基于同步信息本地計算時鐘參考。邊界設備可以把準確的時間中繼到其它片段,從而啟動同步主機之間的同步。以這種方式,整個網絡可以被同步到非常精細的容差。例如,在Thunderbo11設備網絡中,任何兩個設備都將在不多于十納秒(IOns )的時間內變化。Thunderbolt收發器使用稱為串行時間鏈路協議(STLP)的簡單、單線協議把當前的Thunderbolt時間傳送到印刷電路板上的其它芯片。這種跨分布式網絡的時間同步的另一個例子包括(但不限于)IEEE1588精密時間協議(PTP)。
[0092]在本發明的一種示例性實施例中,中轉參數用于確定網絡協議參數。例如,在Thunderbolt收發器中,Thunderbolt網絡時間用于為PCI Express(PCIe)網絡協議確定網絡時間。在備選實施例中,Thunderbolt網絡時間可以用于同步DisplayPort (DP)網絡協議。而且,設備可以基于可用的中轉帶寬確定一個或多個網絡參數(例如,服務質量(QoS)、合適的編碼方案等)。
[0093]在步驟406,每個設備都基于所確定的網絡協議參數進行操作,其中為每個設備確定的網絡協議參數基本上是相似的。例如,在Thunderbolt操作期間,嵌入的PCIe網絡協議可以使用導出的網絡時間來調度數據的發送和/或接收。
[0094]而且,在本發明的某些變體中,導出的網絡時間還用于幫助數據處理和/或消耗。例如,導出的網絡時間可以用作用于音頻處理的準確且精確的時間參考。在一種此類的實現中,導出的時間參考確保音頻數據在適當的時間讀寫到系統存儲器(讀緩沖器太早或者寫緩沖器太晚會引起不期望的數據沖突)。
[0095]導出的時間參考的其它常見使用包括但不限于:測量音頻樣本時鐘以確保所有音頻時鐘都一致地操作、調度音頻樣本從一個設備到另一個設備的傳輸并且監視音頻樣本傳輸的PCIe性能。
[0096]示例性裝置
[0097]圖5說明了對實現本發明的各種方法和方面有用的裝置500的一種示例性實施例。圖5的裝置包括處理器子系統502,例如數字信號處理器、微處理器、現場可編程門陣列(FPGA)或者安裝在一個或多個基板上的多個處理組件。該處理子系統還可以包括內部高速緩存存儲器。該處理子系統與包括存儲器的存儲器子系統504通信,其中存儲器可以例如包括SRAM、閃存和SDRAM組件。存儲器子系統可以實現一個或多個DMA類型硬件,從而方便數據訪問,如本領域中眾所周知的。存儲器子系統包含可以由處理器子系統執行的計算機可執行指令。
[0098]此外,該裝置包括隧道通信控制器506,它管理端點之間的數據隧道。隧道通信控制器與一個或多個網絡接口 510操作通信。網絡接口進一步配置成發送和/或接收打包的業務。在一種實施例中,隧道通信控制器配置成開隧道來自所述一個或多個網絡接口的打包的業務,在中轉網絡上輸送。隧道通信控制器交織分組,用于在中轉網絡上發送。接收到的數據解交織成適當的分組,并且路由到適當的網絡接口。
[0099]通信控制器506進一步配置成跟蹤主時基508。該主時基可以從例如內部振蕩器電路(例如,電壓控制的溫控晶體振蕩器(VCTCXO))等的內部時鐘導出,或者可以從外部設備或實體,例如提供串行時間鏈路協議(STLP )的對等設備、全球定位系統(GPS )、IEEE標準1588 (精密時間協議)等,報告或接收。
[0100]在裝置500的一種示例性實施例中,所述一個或多個網絡接口 510至少包括PCIExpress (PCIe)接口和DisplayPort接口。對本發明有用的其它網絡接口的常見例子包括但不限于:通用串行總線(USB)、FireWire (IEEE標準1394)、以太網、高清晰多媒體接口(HDMI)、數字視頻接口( DVI)及Di spIayPort。在某些變體中,所述一個或多個網絡接口進一步配置成與DMA類型的存儲器和關聯的DMA引擎一起用來執行大存儲器傳輸。
[0101]如前面所描述的,為了在中轉網絡上進行傳輸,打包網絡協議業務。打包的數據是已經格式化成離散的數據單元或分組的數據。每個分組都至少包括路由信息和有效載荷。路由信息提供例如源和目的地地址、錯誤檢測代碼及序列信息。此外,某些類型的數據分組可以包含呈現信息,例如,媒體分組(諸如音頻數據和視頻數據)可以具有關聯的重放時間,以確保媒體以規律的和平滑的速率重放。
[0102]在本發明的某些實施例中,打包的業務可以提供或者可以不提供對可靠性的各種保證。例如,“非發布的”事務可以提供明確的確認(ACK)或者非確認(NAK),而“發布的”事務可能不提供關于發送成功或失敗的任何反饋。[0103]回過頭來參考圖5,用戶接口子系統510耦合到處理子系統502,而且可以包括任意數目的眾所周知的1/0,包括但不限于:鍵區、觸摸屏(例如,多觸摸接口)、音頻/可視(AV)系統、背光、揚聲器和/或麥克風。但是,要認識到,在某些應用中,這些組件中的一個或多個可以避免。
[0104]圖6說明了實現本發明各種方法和方面的外圍設備裝置600的一種具體實現(基于Thunderbolt)。圖6的裝置包括I禹合到Thunderbolt路由器芯片604的現場可編程門陣列(FPGA) 602。FPGA還耦合到時間生成邏輯606和音頻控制器608。在示例性操作中,現場可編程門陣列(FPGA)602使用STLP協議把本地計數器同步到Thunderbolt網絡時間;由此,為FPGA中的其它邏輯提供定時服務。前往這種Thunderbolt外圍設備的音頻樣本將經PCIe在預定的時間最后期限之前寫到附連到FPGA的RAM (隨機存取存儲器)。一旦最后期限已過,Thunderbolt音頻控制器608就從RAM讀取該樣本并且把它們饋送到I2S輸出,從而驅動數模轉換器。用于操作I2S (Integrated Interchip Sound?集成音頻接口芯片)接口與相關聯轉換器的音頻時鐘是由PLL (鎖相環路)生成的。該PLL基于經PCIe接收到的Thunderbolt時間與時間戳生成時鐘。
[0105]類似地,連接到ADC的I2S接口將以音頻PLL確定的速率運行并且產生由Thunderbolt音頻控制器寫到RAM的樣本。在規定的時間,控制器將在PCIe連接上把樣本寫到配置好的目的地地址。
[0106]圖7說明了用于從Thunderbolt參考時間生成同步的音頻樣本時鐘的一種具體解決方案。如所示出的,時間戳在TMU702被接收,并且分發到PCIe物理層(PHY) 704和時鐘生成電路706。PCIe PHY依賴該參考時間來確保數據在適當的時間讀入/讀出存儲器。時鐘生成電路使用該系統時間生成高精度的時鐘,該時鐘用于從音頻數據FIFO讀,并且合成
音頻信號。
[0107]將認識到,盡管關于一種方法的具體步驟順序描述了本發明的某些方面,但是這些描述僅僅是說明本發明更廣泛的方法,而且根據需要可以被特定的應用修改。在某些條件下,可以使某些步驟成為不必要的或者可選的。此外,某些步驟或功能性可以添加到所公開的實施例,或者兩個或更多個步驟的執行次序可以改變。所有這些變體都被認為要涵蓋在本文所公開和要求權利的發明當中。
[0108]盡管以上具體描述已經示出、描述和指出了本發明適用于各種實施例的新穎特征,但是應當理解,在不背離本發明的情況下,可以由本領域技術人員關于所說明設備或過程的形式與細節做出各種忽略、替換和改變。以上所述是目前預期執行本發明的最佳模式。這種描述不以任何方式意味著限制,而是應當理解為說明本發明的通用原理。本發明的范圍應當參考權利要求來確定。
【權利要求】
1.一種優先化網絡中的數據業務的方法,包括: 發現與網絡中的一個或多個優先化的類關聯的一個或多個設備; 為所述一個或多個優先化的類分配一個或多個中轉資源;以及 在對應分配的一個或多個中轉資源上只路由與所述一個或多個優先化的類關聯的數據。
2.如權利要求1所述的方法,其中所述一個或多個優先化的類基于一種或多種多媒體數據類型。
3.如權利要求2所述的方法,其中所述一種或多種多媒體數據類型包括音頻數據。
4.如權利要求1所述的方法,其中所述一個或多個優先化的類基于設備類型。
5.如權利要求4所述的方法,其中一種或多種所述設備類型包括音頻設備和非音頻設備。
6.如權利要求1所述的方法,其中所述一個或多個傳送資源包括直接存儲器訪問(DMA)物理資源。
7.如權利要求6所述的方法,其中所述DMA物理資源經本機主機接口(NHI)耦合到主機接口。
8.如權利要求6所述的方法,其中所述DMA物理資源經用戶傳輸接口(UTI)耦合到外圍設備接口。
9.如權利要求1所述的方法,其中所發現的所述一個或多個設備中的每一個都共享公共時間參考。
10.一種配置成優先化網絡中的數據業務的裝置,包括: 一個或多個網絡接口; 處理器; 非臨時性計算機可讀介質,包括存儲在其上的至少一個計算機程序,所述至少一個計算機程序配置成,當在處理器上執行時: 發現與網絡中一個或多個優先化的類關聯的一個或多個設備; 為所述一個或多個優先化的類分配一個或多個中轉資源;以及 在對應分配的一個或多個中轉資源上只路由與所述一個或多個優先化的類關聯的數據。
11.如權利要求10所述的裝置,其中所述一個或多個網絡接口包括與Thunderbolt兼容的網絡接口。
12.如權利要求10所述的裝置,其中所述一個或多個網絡接口包括與高速外設部件互連(PCIe)兼容的網絡接口。
13.如權利要求10所述的裝置,其中所述一個或多個網絡接口包括與DisplayPort兼容的網絡接口。
14.如權利要求10所述的裝置,其中所述一個或多個傳送資源包括直接存儲器訪問(DMA)物理資源。
15.如權利要求10所述的裝置,其中所述一個或多個傳送資源包括專用存儲緩沖器。
16.一種用于實現網絡中優先化的設備類的系統,包括: 為網絡的一個或多個設備確定同步主設備;基于由所述同步主設備提供的同步信息導出時間參考;以及 為所述一個或多個設備支持的數據類型分配一個或多個中轉資源,其中所述一個或多個中轉資源被同步到所導出的時間參考。
17.如權利要求16所述的系統,其中所述網絡包括多個同步主設備,其中每個同步主設備都與一個網絡片段關聯。
18.如權利要求17所述的系統,其中所述多個同步主設備經一個或多個邊界設備中繼同步信息。
19.如權利要求16所述的系統,其中所述網絡包括一個或多個與Thunderbolt兼容的設備。
20.如權利要求16所述的系統,其中所述一個或多個傳送資源包括直接存儲器訪問(DMA)物理資源 。
【文檔編號】H04J3/06GK103891223SQ201280021418
【公開日】2014年6月25日 申請日期:2012年5月2日 優先權日:2011年5月2日
【發明者】N·D·瓦仁, G·W·小瓊斯, R·B·蒙太尼, M·X·莫拉, B·D·喬治, M·W·墨菲, W·P·康尼勒斯 申請人:蘋果公司