用于在網(wǎng)絡(luò)上傳輸并發(fā)數(shù)據(jù)流的系統(tǒng)的制作方法
【專利摘要】在網(wǎng)絡(luò)上傳輸并發(fā)數(shù)據(jù)流的系統(tǒng),其包括含有數(shù)據(jù)流中數(shù)據(jù)的存儲器(MEM);多個被分別分配給數(shù)據(jù)流的隊列(10),被組織為接收數(shù)據(jù)作為原子傳輸單元;流調(diào)節(jié)器(REGL),被配置為按順序查詢隊列,并且在被查詢的隊列含有完整傳輸單元的情況下以網(wǎng)絡(luò)標稱流速率在網(wǎng)絡(luò)上發(fā)送該單元;定序器(SEQ),被配置為按照循環(huán)方式查詢隊列,并在被查詢隊列填充水平低于通用于所有隊列的閾值(σ)時啟用數(shù)據(jù)請求信號(SELi),所述閾值大于最大傳輸單元的尺寸;和直接存儲器訪問電路(DMA),被配置為接收數(shù)據(jù)請求信號并通過以系統(tǒng)標稱速度從存儲器傳輸數(shù)據(jù)至相應(yīng)隊列直至達到共同閾值作為對所述數(shù)據(jù)請求信號的響應(yīng)。
【專利說明】用于在網(wǎng)絡(luò)上傳輸并發(fā)數(shù)據(jù)流的系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及芯片上的網(wǎng)絡(luò),具體涉及負責(zé)在網(wǎng)絡(luò)中傳輸數(shù)據(jù)流的路由器級調(diào)度系 統(tǒng)。
【背景技術(shù)】
[0002] 有許多流量調(diào)度算法試圖提高網(wǎng)絡(luò)帶寬利用和服務(wù)質(zhì)量。在通信網(wǎng)絡(luò)的 情況下,由 Cruz ( "A Calculus for Network Delay",Part I:Network Elements in Isolation and part II:Network Analysis,RL Cruz, IEEE Transactions on Information Theory, vol. 37, No. 1Januaryl991)和 Stiliadis( "Latency-Rate Servers:A General Model for Analysis of Traffic Scheduling Algorithms",Dimitrios Stiliadis 等 人,IEEE/ACM TRANSACTIONS ON NETWORKING, VOL 6, NO. 51998 年 10 月)開始的工作建立了 涉及服務(wù)速率的概念、最差情況下共享通信信道時延以及網(wǎng)絡(luò)單元中存儲資源利用率的理 論。
[0003] 該理論起到了不同流量管理系統(tǒng)的基礎(chǔ)的作用。路由器級最常使用的方法是由 Andrew Tannenbaum 在《計算機網(wǎng)絡(luò)(第四版)》("Computer Networks (4th Edition) ") 法語版第441頁描述的加權(quán)公平排隊算法(weighted fair queuing method)。Andrew Tannenbaum在《計算機網(wǎng)絡(luò)(第四版)》("Computer Networks (4th Edition) ")法語版第 434頁描述了使用漏桶機制注入(inject)流量的備選方案,其更適合于芯片上的網(wǎng)絡(luò)。
[0004] 在每種情況下,這都會將網(wǎng)絡(luò)鏈路上的平均流p i分配給"會話"Si。
[0005] 每個數(shù)據(jù)傳輸會話Si (i = 1,2, ... η)均被分配緩沖區(qū)或隊列以實例信道、連接或 流。這些隊列的內(nèi)容以標稱鏈接速度r在網(wǎng)絡(luò)鏈路L上按順序傳輸。
[0006] 流調(diào)節(jié)器操作每個隊列以限制相應(yīng)會話Si的平均速率使其值PiSr。該速率Pi 通常被選擇以使其和小于或等于r。
[0007] 為在整體上理解該操作,可以想象并行進入網(wǎng)絡(luò)的隊列中的內(nèi)容分別以速率P i 被清空。事實上,隊列被按順序查詢,而流管理通過以較低的頻次對與較低比特率相關(guān)的隊 列執(zhí)行查詢,以謀求在多個查詢周期中達到平均化的效果。
[0008] 在這些條件下,Stiliadis等人證明了對于特定類型的調(diào)度算法,讀取隊列中包的 第一詞與在鏈路L上發(fā)送包中最后一詞之間的時延是有界的。在加權(quán)公平隊列(WFQ)的情 況下,該時延的邊界為S Pi/p i+Sp^/r,其中SPi為會話i中最大包的尺寸,而Spmax為運行 中的會話中最大包的尺寸。
[0009] 該時延成分不受隊列的尺寸的影響。目前眾所周知的是,在共享鏈路上使用多重 隊列來作為多重流信道的系統(tǒng)中,隊列的尺寸會在隊列中寫入數(shù)據(jù)至讀取同一數(shù)據(jù)以在網(wǎng) 絡(luò)中傳輸之間引入另一個時延成分。
【發(fā)明內(nèi)容】
[0010] 多數(shù)據(jù)流傳輸系統(tǒng)有降低從隊列中數(shù)據(jù)到達至該數(shù)據(jù)通過網(wǎng)絡(luò)被發(fā)送之間總時 延的需求。 toon] 該需求有可能被一種在網(wǎng)絡(luò)上傳輸并發(fā)數(shù)據(jù)流的系統(tǒng)所解決,該系統(tǒng)包括存儲 器,其含有數(shù)據(jù)流中的數(shù)據(jù);多個隊列,其被分別分配給數(shù)據(jù)流,并被組織起來接收數(shù)據(jù)作 為原子傳輸單元(或不可分割的傳輸單元,atomic transmission units);流調(diào)節(jié)器,被配 置為按順序查詢隊列,并且如果被查詢的隊列中包含完整的傳輸單元,就在網(wǎng)絡(luò)上以該網(wǎng) 絡(luò)的標稱流速率傳送該單元;定序器,被配置用于以循環(huán)的方式查詢隊列并且當被查詢的 隊列填充水平低于所有隊列共同閾值時啟用數(shù)據(jù)請求信號,所述閾值大于最大的傳輸單元 的尺寸;和直接存儲器訪問電路,被配置為接收數(shù)據(jù)請求信號并且以系統(tǒng)的標稱速率從存 儲器傳輸數(shù)據(jù)至相應(yīng)的隊列直至到達共同閾值來對其進行響應(yīng)。
[0012] 該需求還可以被一種在網(wǎng)絡(luò)上傳輸并發(fā)數(shù)據(jù)流的系統(tǒng)所解決,該系統(tǒng)包括存儲 器,其包含數(shù)據(jù)流中的數(shù)據(jù);多個隊列,被分別分配給數(shù)據(jù)流,并被組織為接收數(shù)據(jù)作為原 子傳輸單元;流調(diào)節(jié)器,其被配置為按順序查詢隊列,并且如果被查詢的隊列中包含完整的 傳輸單元,就在網(wǎng)絡(luò)上以該網(wǎng)絡(luò)的標稱流速率傳送該單元;隊列管理電路,其被配置以系統(tǒng) 標稱速率使用存儲器中的數(shù)據(jù)單獨填充每個隊列,直至到達所有隊列共同閾值;配置電路, 其被配置為提供隊列共同閾值;和處理器,其被編程為生成數(shù)據(jù)流并控制數(shù)據(jù)流分配至隊 列,并且其與配置電路相連接以按照被傳輸?shù)牧髦凶畲蟮膫鬏攩卧獎討B(tài)地調(diào)整閾值。
[0013] 共同閾值可以小于最大傳輸單元尺寸的兩倍。
[0014] 該系統(tǒng)可能包括網(wǎng)絡(luò)界面,其包括隊列、流調(diào)節(jié)器和定序器;處理器,其被編程為 生成數(shù)據(jù)流、管理隊列至流的分配,并且確定流的平均速率;系統(tǒng)總線,其將處理器、存儲器 和直接存儲器訪問電路相互連接;和根據(jù)可被處理器編程的兩個寄存器的內(nèi)容計算共同閾 值的電路,其中一個寄存器包含最大傳輸單元的尺寸,而另一個包含1到2之間的倍增因 子。
[0015] 流調(diào)節(jié)器可被配置為通過在連續(xù)窗口中限制通過網(wǎng)絡(luò)傳輸?shù)膫鬏攩卧獢?shù)目來調(diào) 整流平均速率。
【專利附圖】
【附圖說明】
[0016] 如下僅為示例性目的而提供的本發(fā)明專用實施例的描述以及附圖中的描繪更清 楚的給出了本發(fā)明的其它優(yōu)點和特性,其中:
[0017] 圖1概要展示了在共享網(wǎng)絡(luò)鏈路上傳輸多個并發(fā)流的系統(tǒng),其可以通過應(yīng)用上述 教導(dǎo)的傳統(tǒng)方式完成;
[0018] 圖2為示出了圖1系統(tǒng)工作的圖表;
[0019] 圖3概要展示了優(yōu)化后的在一個或多個共享網(wǎng)絡(luò)鏈路上傳輸多個并發(fā)流系統(tǒng)的 實施例;
[0020] 圖4為示出了圖3系統(tǒng)工作的圖表;
[0021] 圖5為示出了圖3系統(tǒng)中隊列填充水平變化的圖表;
[0022] 圖6示出了系統(tǒng)平均帶寬利用效率隨著隊列的實際尺寸的變化而變化;并且
[0023] 圖7展示了包括動態(tài)調(diào)整全隊列閾值的傳輸系統(tǒng)的實施例。
【具體實施方式】
[0024] 圖1概要展示了諸如直接按照介紹中提過的Cruz, Stiliadis和Tannenbaum的教 導(dǎo)應(yīng)用完成的在共享網(wǎng)絡(luò)鏈路L上傳輸多個并發(fā)流的系統(tǒng)的示例。
[0025] 該系統(tǒng)包括被系統(tǒng)總線B相互連接的處理器CPU,存儲器MEM,和直接存儲器訪問 電路DMA。連接網(wǎng)絡(luò)界面NI以通過網(wǎng)絡(luò)鏈路L發(fā)送由DMA電路提供的數(shù)據(jù)。該網(wǎng)絡(luò)界面包 括被安排為執(zhí)行如加權(quán)公平隊列(WFQ)的若干隊列10。隊列的填充由仲裁電路ARB進行管 理,同時網(wǎng)絡(luò)鏈路L中隊列的排空由流管理電路REGL進行管理。
[0026] DMA電路被配置為當數(shù)據(jù)已準備發(fā)出時發(fā)送請求信號REQ至網(wǎng)絡(luò)界面NI。優(yōu)選 地,DMA電路和傳輸時儲存數(shù)據(jù)的高速緩存一同提供,這樣該系統(tǒng)總線就可被釋放。網(wǎng)絡(luò)界 面中的仲裁電路的設(shè)計目的在于處理請求信號并向DMA電路返回確認信號ACK。
[0027] 雖然在任意大小的突發(fā)脈沖中,數(shù)據(jù)由存儲器至DMA電路并到達隊列10的傳輸可 以以系統(tǒng)總線的寬度字完成,但從隊列10到網(wǎng)絡(luò)鏈路L的傳輸應(yīng)當與網(wǎng)絡(luò)類型兼容。從網(wǎng) 絡(luò)的角度出發(fā),在隊列中的數(shù)據(jù)被組織為"傳輸單元",如同ATM網(wǎng)絡(luò)中的"信元",IP網(wǎng)絡(luò)和 常用于片上網(wǎng)絡(luò)中的"包",或以太網(wǎng)中的"幀"。因為本公開的寫作背景為片上網(wǎng)絡(luò),那么 術(shù)語"包"將會被使用,但應(yīng)記住所述的原理可以更普遍地應(yīng)用在傳輸單元上。
[0028] 包通常是"原子的"(或不可分割,atomic),也就是說形成包的字在網(wǎng)絡(luò)鏈路L上 連續(xù)傳送,而不會將屬于各并發(fā)流的字混淆。僅當完整的包在鏈路上傳送完畢后才會傳送 新的包。另外,僅當隊列包含完整的包時流調(diào)節(jié)器REGL才會決定對其進行發(fā)送。
[0029] 圖2為示出一批數(shù)據(jù)在圖1系統(tǒng)中傳輸階段更多細節(jié)的圖表。其在垂直的時間軸 上展示了系統(tǒng)成份之間的交互。"數(shù)據(jù)批"(data batch)指定了數(shù)據(jù)流的可分離部分,而數(shù) 據(jù)流通常是連續(xù)的。數(shù)據(jù)流可以對應(yīng)于與視頻的傳輸,而(數(shù)據(jù))批例如與圖像幀或圖像 掃描線相對應(yīng)。
[0030] 在T0時,在本地存儲器MEM中生成數(shù)據(jù)批之后,處理器CPU使用批的源地址和目 的地址初始化DMA電路,其與網(wǎng)絡(luò)界面隊列10之一相關(guān)。
[0031] 在T1時刻,DMA電路將數(shù)據(jù)批從存儲器MEM傳輸至其內(nèi)置高速緩存中,并釋放系 統(tǒng)總線。
[0032] 在T2時刻,DMA電路發(fā)送接入請求REQ至網(wǎng)絡(luò)界面NI。該請求確定數(shù)據(jù)準備寫入 的隊列10。
[0033] 在T3時刻,網(wǎng)絡(luò)界面使用ACK信號確認該請求,這意味著被選擇的隊列10具有可 用空間來接收數(shù)據(jù)。
[0034] 在T4時刻,DMA電路作出對該確認信號的響應(yīng)--將數(shù)據(jù)由其高速緩存?zhèn)鬏斨辆W(wǎng) 絡(luò)界面NI,在那里數(shù)據(jù)被寫入相應(yīng)的隊列10。
[0035] 在T5時刻,網(wǎng)絡(luò)界面檢測到該隊列已滿并向DMA電路發(fā)出信號結(jié)束傳輸。
[0036] 在T6時刻,DMA電路還有需要傳輸?shù)臄?shù)據(jù),則發(fā)出新的請求要求進行傳輸,重復(fù)上 述循環(huán)。
[0037] 網(wǎng)絡(luò)中隊列10清空的執(zhí)行與仲裁請求無關(guān),根據(jù)流管理機制僅當隊列包含完整 包時才會對其進行處理。
[0038] 當數(shù)據(jù)生產(chǎn)者時常需要網(wǎng)絡(luò)時,換句話說,當生產(chǎn)者不以持續(xù)的方式占用網(wǎng)絡(luò)鏈 路帶寬時,本傳輸協(xié)議是令人滿意的。這是在通信網(wǎng)絡(luò)下的情況。
[0039] 在芯片上的網(wǎng)絡(luò)中,尋求完全占用網(wǎng)絡(luò)鏈路的帶寬,因此生產(chǎn)者被設(shè)計為持續(xù)地 飽和使用其網(wǎng)絡(luò)鏈路。
[0040] 如上所述,生產(chǎn)者可在其網(wǎng)絡(luò)鏈路上發(fā)送多個并發(fā)流。這將體現(xiàn)在圖2中的DMA 電路高速緩存中多個相應(yīng)數(shù)據(jù)批的傳輸以及對網(wǎng)絡(luò)界面NI的多個并發(fā)請求的描述。每次 單一請求都被確認為仲裁結(jié)果,而仲裁結(jié)果也考慮了隊列10中的可用空間。
[0041] 在隊列10對多個未決請求進行響應(yīng)而發(fā)生持續(xù)處于填充階段的情況下,仲裁延 遲可能耗費大部分的帶寬。
[0042] 由于這個原因,目標隊列有可能在一段時間內(nèi)保持為空,因此將網(wǎng)絡(luò)訪問機會"輪 空(passes its turn)"具有降低實際使用帶寬的效果。按照管理隊列的理論,當隊列尺寸 增長時,隊列變?yōu)榭盏臋C率降低,這就是為什么隊列經(jīng)常選擇的過大。另一個解決方案是通 過增加生產(chǎn)者過程(producer process)發(fā)送請求的頻率來降低該幾率(隊列變?yōu)榭盏臋C 率)。在片上網(wǎng)絡(luò)的情況下兩種方案均會影響效率,這就是為什么這里提出了接入網(wǎng)絡(luò)的備 選系統(tǒng)。
[0043] 圖3概要展示了該系統(tǒng)的實施例。該實施例在片上網(wǎng)絡(luò)背景下描述了如美國專利 申請2011-0026400所述的折疊環(huán)形陣列拓撲。該網(wǎng)絡(luò)的每個節(jié)點均包括五路雙向路由器, 該五路雙向路由器包括指配給DMA電路的本地信道和分別與陣列中毗鄰的四個路由器連 接的四個信道(北LN、南LS、東LE、西LW)。
[0044] 假定本地信道為網(wǎng)絡(luò)進入點。通過該本地信道進入的包可被按照其網(wǎng)絡(luò)中的目的 地交換至其它四個信道中任意的信道,所述其它四個信道將被認為是獨立的網(wǎng)絡(luò)鏈路。因 此,包可通過四個鏈路LN、LS、LE和LW中任意一條進行傳輸,而不是如圖1所示的在網(wǎng)絡(luò)中 單獨鏈路L中傳輸。大量網(wǎng)絡(luò)鏈路并不影響這里描述的可應(yīng)用于單獨鏈路的原理。原則上 流與單獨網(wǎng)絡(luò)鏈路相關(guān)聯(lián),所述單獨網(wǎng)絡(luò)鏈路可被看作圖1中的單獨鏈路。當多個并發(fā)流 被指配到不同的鏈路上時,在總網(wǎng)絡(luò)帶寬上有所差異:通過流調(diào)節(jié)器這些流可被并行的傳 輸,所以總帶寬臨時性地變成單獨鏈路帶寬的多倍。
[0045] 圖3的系統(tǒng)與圖1系統(tǒng)不同的本質(zhì)在于通信協(xié)議在DMA電路和網(wǎng)絡(luò)界面NI之間的 執(zhí)行。DMA電路不再發(fā)送請求至網(wǎng)絡(luò)界面來傳送數(shù)據(jù),而是通過啟動標識要服務(wù)的隊列10 的選擇信號SELi來等待網(wǎng)絡(luò)界面NI請求數(shù)據(jù)。信號SELi由定序器SEQ生成,定序器SEQ 替換了圖1中的請求仲裁電路。
[0046] 定序器SEQ可能被簡單地設(shè)計為對隊列10執(zhí)行循環(huán)查詢并在當被查詢隊列具有 容納數(shù)據(jù)的空間時啟用選擇信號SELi。在這種情況下定序器停止并等待該隊列被DMA電路 裝滿,之后禁用SELi信號,然后移動到下一個隊列。
[0047] 圖4示出了該操作更多的細節(jié)。
[0048] 在T0時刻,該系統(tǒng)處于空閑狀態(tài)并且所有的隊列10均為空。定序器SEQ啟用第 一個隊列的選擇信號SEL1并等待數(shù)據(jù)。
[0049] 在T1時刻,處理器CPU在存儲器MEM中生成了多個數(shù)據(jù)批。處理器初始化網(wǎng)絡(luò)界 面NI,例如通過將信息寫入定序器SEQ的寄存器中,來將各個隊列分配給(數(shù)據(jù))批。
[0050] 在T2時刻,處理器初始化DMA電路來將多個批傳輸至相應(yīng)隊列。
[0051] 在T3時刻,DMA電路讀取數(shù)據(jù)批至其高速緩存中。當信號SEL1激活時,DMA電路即 可將數(shù)據(jù)從第一批(Txl)開始傳輸至網(wǎng)絡(luò)界面NI,在網(wǎng)絡(luò)界面數(shù)據(jù)批被寫入第一隊列10。
[0052] 在T4時刻,第一隊列已滿。定序器禁用信號SEL1并啟用標識要填充的第二隊列 的信號SEL2。
[0053] 在T5時刻,DMA電路將數(shù)據(jù)從第二批(Tx2)傳輸至網(wǎng)絡(luò)界面,在網(wǎng)絡(luò)界面數(shù)據(jù)批 被寫入第二隊列10,直至信號SEL2被禁用而新的信號SEL3被啟用以傳輸下一個批。
[0054] 在該系統(tǒng)中,不同的流傳輸被順序處理而無需仲裁決定哪個流可被傳輸。DMA電路 與隊列之間的帶寬可以被100%的使用。
[0055] 減少隊列10引入的時延是可取的。為達成這一目標,隊列的尺寸應(yīng)當被減小。既 然僅當隊列包含完整包時流調(diào)節(jié)器才對其進行處理,那么隊列最小的尺寸即為包的尺寸 Sp。問題在于,是否這個隊列尺寸就是令人滿意的尺寸,或者隊列尺寸有更佳的可能。
[0056] 圖5為描繪了運行中的隊列10填充變化示例的曲線圖。如示例所述,填充速度π 被選擇為等于網(wǎng)絡(luò)標稱傳輸速率r的兩倍。速度π可能為DMA電路的標稱傳輸速率,該標 稱傳輸速率一般比網(wǎng)絡(luò)鏈路的標稱傳輸速率高。包的尺寸記為Sp,隊列的尺寸記為 〇。
[0057] 在t0時刻,定序器SEQ選擇要填充的隊列。該隊列的剩余填充水平為a l〈Sp。隊 列以速率π進行填充。
[0058] 在tl時刻,隊列填充水平達到Sp。該隊列包含完整包,并且可以開始在網(wǎng)絡(luò)中隊 該隊列進行清空。如果流調(diào)節(jié)器REGL在tl時實際選擇了該隊列,那么該隊列將以速率r 清空。該隊列將以顯示的較慢速度n _r繼續(xù)進行填充。
[0059] 在t2時刻,隊列的填充水平達到了界限〇。填充停止,但清空繼續(xù)。該隊列以速 率r清空。定序器SEQ選擇下一隊列進行填充。
[0060] 在t3時刻,完整的包已經(jīng)傳輸至網(wǎng)絡(luò)。隊列到達剩余填充水平a 2〈Sp,因而無法 發(fā)送新的完整包。流調(diào)節(jié)器繼續(xù)處理下一個隊列。
[0061] 在t4時刻,隊列又一次被選擇進行填充,并從新剩余填充水平α 2開始重復(fù)進行 如t0時的循環(huán)。隊列t5時包含了新的完整包。
[0062] 該圖沒有展示應(yīng)用于流的速率限制P的影響。其展示的是在網(wǎng)絡(luò)鏈路標稱速率 r下清空隊列。事實上,流速率的限制可通過平均化的效果來實現(xiàn):隊列總是以最高可用速 度清空,但是查詢的頻率(未在本圖示出)由流調(diào)節(jié)器調(diào)整以獲取平均流速率值。例如,在 三個隊列A、B和C的流速率分別為0. 5、0. 25和0. 25時,可以使用接下來的查詢順序:A, B, A, C, A, B, A, C......
[0063] 優(yōu)選地,使用如美國專利申請2011-0026400的流速率管理。該管理基于流在滑動 時間窗口中通過網(wǎng)絡(luò)可傳輸?shù)陌呐漕~。在這樣的流管理下,所有的隊列在窗口起始時被 查詢,并且每個隊列將其擁有的包進行傳輸,即使其關(guān)聯(lián)的流速率值較低。但是一旦隊列發(fā) 送完了它在窗口中的包配額,其查詢將被掛起,直至下一個窗口開始。這樣,流在每個窗口 中可通過網(wǎng)絡(luò)傳輸?shù)陌臄?shù)目是有限的,但包可在窗口中的任意時間進行傳輸。
[0064] 如上所述,僅當隊列包含完整包時才會開始對隊列的清空。在圖5中,這發(fā)生在tl 至t5時刻。注意在每輪循環(huán)的開始,隊列無法進行清空時有一平靜階段。既然流調(diào)節(jié)器的 工作與定序器是獨立的,那么控制器就有可能在這一平靜階段查詢隊列。于是該流調(diào)節(jié)器 跳過這一隊列并移動到下個隊列,降低了系統(tǒng)的效率。
[0065] 直觀地看,可以觀察到當提高隊列尺寸σ時,平靜階段會減少,并且當σ = 2Sp 時它們會消失。
[0066] 圖6為示出了基于隊列尺寸〇的系統(tǒng)帶寬利用效率曲線圖。該圖表為在四個隊 列在π = 2r情況下的仿真結(jié)果。相應(yīng)流的速率P被選為0. 2、0. 3、0. 7和0. 8 (加起來為 理論最高值2,見圖表的縱軸)。
[0067] 注意效率由〇 = 1下的合理值1.92開始,并且趨向于接近2。在〇 = 1.6時效 率幾乎達到了 1.99。換句話說,當〇 = 1時獲得了 96%的效率,而當〇 = 1.6時獲得了 99. 5%的效率。
[0068] 這樣的系統(tǒng)對于尺寸在1至2個包之間的隊列非常高效,為了顯著地降低時延,該 尺寸值相當?shù)牡汀?br>
[0069] 根據(jù)傳輸數(shù)據(jù)的性質(zhì),包的尺寸可能因不同的流而異。在這個案例中,為了使所述 系統(tǒng)適合所有的情況,隊列尺寸應(yīng)該按照需處理的包的最大尺寸來選擇,而這在當處理的 大部分流的包尺寸較小的情況下會對系統(tǒng)造成損害。
[0070] 該危害可通過將動態(tài)調(diào)整隊列尺寸作為并行流處理的一個功能來加以緩和。實踐 中,網(wǎng)絡(luò)界面中的隊列為尺寸不可變的硬件成分。這樣,物理隊列尺寸可按照系統(tǒng)中可能會 處理的流的最大包的尺寸進行選擇,但是對隊列指定可調(diào)的填充閾值σ。定序器正是檢查 關(guān)于該閾值的填充水平從而啟動相應(yīng)的選擇信號SELi (圖3)。
[0071] 圖7展示了網(wǎng)絡(luò)界面實施例的示例,其集成的隊列10具有可調(diào)的填充閾值。將包 尺寸Sp和乘法因子K(如1. 6)寫入網(wǎng)絡(luò)界面各自的寄存器12、14中。該寫入可發(fā)生在圖 4中的T1時刻,當處理器CPU配置網(wǎng)絡(luò)界面將隊列分配給待傳輸?shù)牧鲿r。如果待傳輸?shù)牧?具有不同的包尺寸,寫入寄存器12的值Sp為其中的最大值。
[0072] 寄存器12和14的內(nèi)容在寄存器16相乘,生成閾值〇。該閾值在與各自隊列10 關(guān)聯(lián)的比較器30中被使用。當相應(yīng)隊列10的填充水平達到值 〇時,每個比較器30啟用 滿信號給定序器SEQ。當滿信號被啟用時,定序器選擇下一個隊列來進行填充。
[0073] 雖然優(yōu)選地在圖3所示的系統(tǒng)中使用可調(diào)閾值,這種方法的優(yōu)點與該系統(tǒng)是獨立 的。因此,該方法可以在圖1所示的或其他任意系統(tǒng)中使用。
【權(quán)利要求】
1. 一種用于在網(wǎng)絡(luò)上傳輸并發(fā)數(shù)據(jù)流的系統(tǒng),包括: 存儲器(MEM),包含數(shù)據(jù)流中的數(shù)據(jù); 多個隊列(10),被分別分配給數(shù)據(jù)流,并被組織為接收數(shù)據(jù)作為原子傳輸單元; 流調(diào)節(jié)器(REGL),被配置為順序查詢隊列并且在被查詢的隊列含有完整的傳輸單元的 情況下,在網(wǎng)絡(luò)上以網(wǎng)絡(luò)標稱流速率發(fā)送該單元; 定序器(SEQ),被配置為按照循環(huán)方式查詢隊列,并在被查詢隊列填充水平低于所有隊 列的共同閾值(σ)時啟用數(shù)據(jù)請求信號(SELi),所述閾值大于最大傳輸單元的尺寸;和 直接存儲器訪問電路(DMA),被配置為接收數(shù)據(jù)請求信號并通過以系統(tǒng)標稱速度從存 儲器傳輸數(shù)據(jù)至相應(yīng)隊列直至達到共同閾值來對所述數(shù)據(jù)請求信號進行響應(yīng)。
2. 如權(quán)利要求1所述的系統(tǒng),其中所述共同閾值小于最大傳輸單元尺寸的兩倍。
3. 如權(quán)利要求2所述的系統(tǒng),其中所述共同閾值是動態(tài)可調(diào)整的,以將正在傳輸?shù)牧?中實際使用的傳輸單元尺寸考慮在內(nèi)。
4. 如權(quán)利要求2所述的系統(tǒng),包括: 網(wǎng)絡(luò)界面(NI),包括隊列、流管理器以及定序器; 處理器(CPU),被編程為生成數(shù)據(jù)流、管理隊列至流的分配、以及確定流的平均速率; 系統(tǒng)總線(B),將處理器、存儲器和直接存儲器訪問電路(DMA)相互連接;和 用于根據(jù)處理器可編程的兩個寄存器的內(nèi)容計算共同閾值的電路,一個寄存器包含最 大傳輸單元尺寸(Sp),而另一個寄存器包含1至2之間的倍增系數(shù)(K)。
5. 如權(quán)利要求1所述的系統(tǒng),其中流調(diào)節(jié)器被配置為通過限制連續(xù)時間窗口中在網(wǎng)絡(luò) 上傳輸?shù)膫鬏攩卧臄?shù)目來調(diào)整流的平均速率。
【文檔編號】H04L12/801GK104067576SQ201280062719
【公開日】2014年9月24日 申請日期:2012年12月19日 優(yōu)先權(quán)日:2011年12月19日
【發(fā)明者】Y·杜蘭德, A·布蘭佩 申請人:卡爾雷公司