網(wǎng)絡(luò)包的并行處理的制作方法
【專利摘要】一種包處理電路包含多個標(biāo)頭提取電路(208-214)和耦合到所述多個標(biāo)頭提取電路的調(diào)度電路(206)。所述調(diào)度電路經(jīng)配置以接收從具有多個數(shù)據(jù)巷道的數(shù)據(jù)總線(202)提取相應(yīng)包的標(biāo)頭數(shù)據(jù)的一個或多個請求(302)。響應(yīng)于每一請求,所述調(diào)度電路確定含有所述請求指定的相應(yīng)標(biāo)頭的所述多個數(shù)據(jù)巷道的第一子集(304),且指派所述多個標(biāo)頭提取電路的相應(yīng)一者以從所述多個數(shù)據(jù)巷道的所述第一子集提取相應(yīng)標(biāo)頭數(shù)據(jù)(306)。
【專利說明】網(wǎng)絡(luò)包的并行處理
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的一個或多個實(shí)施例大體涉及通信協(xié)議,且更特定來說涉及用于操縱數(shù)據(jù)包的包處理器。
【背景技術(shù)】
[0002]隨著電信線路速率不斷增加,有必要使用越來越寬的硬件數(shù)據(jù)總線來維持處理量。舉例來說,在FPGA實(shí)施方案中,512位數(shù)據(jù)總線通常用于100Gb/S包處理,且2048位數(shù)據(jù)總線用于400Gb/s包處理。一個結(jié)果是,越來越有可能在并行橫越數(shù)據(jù)總線的位集合中包含多個包。如本文所使用,經(jīng)由數(shù)據(jù)總線的完全寬度并行發(fā)射的每一位集合稱為字。
[0003]作為一個實(shí)例,給定最小包大小為64字節(jié),一些包可不完全包含在512位字中。第一數(shù)據(jù)包可在前一字中開始且在當(dāng)前字中結(jié)束,且第二數(shù)據(jù)包可在當(dāng)前字中開始且在后一字中結(jié)束。作為另一實(shí)例,單一 2048位字可包含一個包的結(jié)束部分、三個完整包,以及另一包的開始部分。為維持所要水平的處理量,可需要并行硬件以在單一循環(huán)中處理多個包。然而,并行硬件在所要邏輯資源和功率消耗方面較昂貴。
[0004]包處理硬件通常組織為管線。簡單的解決方案采用包處理硬件的多個相同例項(xiàng)。如果一次可呈現(xiàn)最多K個包,那么用于提取標(biāo)頭信息和數(shù)據(jù)的包處理硬件被復(fù)制K次。
[0005]一些先前解決方案實(shí)施多個管線,每一者經(jīng)配置以從在數(shù)據(jù)總線上接收的字的任何偏移處接收和提取數(shù)據(jù)。舉例來說,在一個并行化方法中,整個數(shù)據(jù)路徑扇出為K個獨(dú)立硬件管線。另一方法采用單一管線,每一級具有K個并行單元。盡管所有數(shù)據(jù)仍可能為所有單元使用,但僅存在單一數(shù)據(jù)路徑,且并行單元可選擇性地接進(jìn)數(shù)據(jù)路徑。在任一方法中,每一管線經(jīng)配置以從所接收字的任何偏移處提取包的標(biāo)頭和數(shù)據(jù)字段。此類解決方案提供允許調(diào)度并行電路中的任一者來處理所接收的包集合中的任一包的靈活性。然而,這些解決方案在硬件要求方面可較昂貴。
[0006]經(jīng)由稱為提取的過程將包的數(shù)據(jù)和/或標(biāo)頭字段與所接收字分離。提取涉及將數(shù)據(jù)的相關(guān)字段移出所接收的字。如果包字段可在所接收字內(nèi)的任何偏移處開始,那么需要能夠移位穿過整個所接收字的一般移位器。以上方法需要用于提取包的標(biāo)頭和數(shù)據(jù)字段的大量電路,這是因?yàn)槊恳还芫€必須能夠從整個字中的任何偏移處提取相關(guān)位。這些方法在路由資源和功率消耗方面也較昂貴,因?yàn)樵S多冗余數(shù)據(jù)正發(fā)送到并行管線。
[0007]一個或多個實(shí)施例可解決以上問題的一者或一者以上。
【發(fā)明內(nèi)容】
[0008]在一個實(shí)施例中,提供一種包處理電路。所述包處理電路包含多個標(biāo)頭提取電路和耦合到所述多個標(biāo)頭提取電路的調(diào)度電路。所述調(diào)度電路經(jīng)配置以接收從具有多個數(shù)據(jù)巷道的數(shù)據(jù)總線提取相應(yīng)包的標(biāo)頭數(shù)據(jù)的一個或多個請求。響應(yīng)于每一請求,所述調(diào)度電路確定含有所述請求指定的相應(yīng)標(biāo)頭的所述多個數(shù)據(jù)巷道的第一子集,且指派所述多個標(biāo)頭提取電路的相應(yīng)一者以從所述多個數(shù)據(jù)巷道的所述第一子集提取相應(yīng)標(biāo)頭數(shù)據(jù)。[0009]在一些實(shí)施例中,所述多個標(biāo)頭提取電路的每一者經(jīng)耦合以從數(shù)據(jù)總線的所述多個數(shù)據(jù)巷道的相應(yīng)第二子集接收數(shù)據(jù),且針對被指派所述多個標(biāo)頭提取電路的相應(yīng)一者以從其提取相應(yīng)標(biāo)頭數(shù)據(jù)的所述多個數(shù)據(jù)巷道的每一第一子集,將所述多個數(shù)據(jù)巷道的第一子集包含在相應(yīng)標(biāo)頭提取電路經(jīng)耦合以接收的所述多個數(shù)據(jù)巷道的第二子集中。
[0010]在一些實(shí)施例中,數(shù)據(jù)總線是N位數(shù)據(jù)總線;且所述多個標(biāo)頭提取電路包含若干(K個)標(biāo)頭提取電路,K大于或等于可在數(shù)據(jù)總線上并行接收的包的最大數(shù)目。每一數(shù)據(jù)巷道可為Q位。在N位數(shù)據(jù)中接收的數(shù)據(jù)包的標(biāo)頭的最大標(biāo)頭大小可占據(jù)S個數(shù)據(jù)巷道。數(shù)據(jù)巷道的第一子集可包含若干(L個)數(shù)據(jù)巷道,L*Q等于可在數(shù)據(jù)總線上接收的最小大小數(shù)據(jù)包。
[0011]在一些實(shí)施例中,L可等于2,且針對標(biāo)頭提取電路i,l〈=i〈=K:對于i=l,標(biāo)頭提取電路i經(jīng)配置以專門從數(shù)據(jù)巷道I到2+(S-1)接收數(shù)據(jù),及接收來自在S個數(shù)據(jù)巷道上接收的先前字的數(shù)據(jù);對于l〈i〈K,標(biāo)頭提取電路i經(jīng)配置以專門從數(shù)據(jù)巷道2*1-2到2*i+(S-1)接收數(shù)據(jù);且對于i=K,標(biāo)頭提取電路i經(jīng)配置以專門從數(shù)據(jù)巷道2*K、2*K-1和2*Κ-2接收數(shù)據(jù)。調(diào)度電路可經(jīng)配置以響應(yīng)于接收在數(shù)據(jù)巷道J(J〈K)上接收的請求:對于J為不包含包的結(jié)尾的偶數(shù)數(shù)據(jù)巷道,向標(biāo)頭提取電路J/2+1指派所述請求;且否則,向標(biāo)頭提取電路(J+D/2指派所述請求。調(diào)度電路可進(jìn)一步經(jīng)配置以響應(yīng)于接收所有所需要的標(biāo)頭數(shù)據(jù)都未呈現(xiàn)在當(dāng)前數(shù)據(jù)字中的請求而緩沖所述請求以供在后一數(shù)據(jù)字中處理。
[0012]在一些實(shí)施例中,L可大于2,且針對標(biāo)頭提取電路i(l〈=i〈=K):對于i=l,標(biāo)頭提取電路i經(jīng)配置以專門從數(shù)據(jù)巷道I到3+S接收數(shù)據(jù),且接收來自在S個數(shù)據(jù)巷道上接收的先前字的數(shù)據(jù);對于l〈i〈K,標(biāo)頭提取電路i經(jīng)配置以僅從數(shù)據(jù)巷道L*(1-2)+2到L*(1-l) + (S+3)接收數(shù)據(jù);且對于i=K,標(biāo)頭提取電路i經(jīng)配置以僅從數(shù)據(jù)巷道L*(K-2)+2到N/Q接收數(shù)據(jù)。調(diào)度電路響應(yīng)于接收在數(shù)據(jù)巷道J上接收的請求可進(jìn)一步經(jīng)配置以:對于J除以L的余數(shù)=2且J〈(N/Q)以及包含包的開始的數(shù)據(jù)巷道J,向標(biāo)頭提取電路(J+3L-3)/L指派所述請求;且對于J除以L的余數(shù)=3以及包含包的結(jié)尾的數(shù)據(jù)巷道J,向標(biāo)頭提取電路(J+L_3)/L指派所述請求;且否則,向標(biāo)頭提取電路(J+2L-3)/L指派所述請求。
[0013]在一些實(shí)施例中,包處理電路進(jìn)一步包含路由電路,其經(jīng)配置以響應(yīng)于調(diào)度電路指派所述多個標(biāo)頭提取電路的一者以從所述多個數(shù)據(jù)巷道的第一子集提取標(biāo)頭數(shù)據(jù)而將來自數(shù)據(jù)總線的巷道的第一子集的數(shù)據(jù)路由到所述多個標(biāo)頭提取電路的所指派的一者。
[0014]在一些實(shí)施例中,所述一個或多個請求的每一者指定包標(biāo)頭類型、包識別符和標(biāo)頭地址。包標(biāo)頭提取電路的每一者可經(jīng)配置以響應(yīng)于經(jīng)指派以從數(shù)據(jù)巷道的第一子集提取標(biāo)頭數(shù)據(jù)而確定數(shù)據(jù)巷道的第一子集內(nèi)的標(biāo)頭數(shù)據(jù)的偏移以及來自所述請求指示的包標(biāo)頭類型的標(biāo)頭數(shù)據(jù)的長度。
[0015]在一些實(shí)施例中,標(biāo)頭數(shù)據(jù)包含一個或多個標(biāo)頭字段的數(shù)據(jù)。在一些實(shí)施例中,標(biāo)頭數(shù)據(jù)包含到相應(yīng)標(biāo)頭字段的一個或多個指針。在一些實(shí)施例中,調(diào)度電路經(jīng)配置和布置以接收針對在數(shù)據(jù)總線上接收的每一字從數(shù)據(jù)總線提取相應(yīng)包的標(biāo)頭數(shù)據(jù)的所述一個或多個請求的集合。
[0016]在另一實(shí)施例中,提供一種管線包處理電路。所述管線包處理電路包含在管線中經(jīng)配置和布置以緩沖從數(shù)據(jù)總線接收的字的多個存儲器緩沖器,每一存儲器緩沖器具有多個數(shù)據(jù)巷道。多個提取級布置在管線中且耦合到所述多個存儲器緩沖器的相應(yīng)者。每一提取級經(jīng)配置以提取在存儲器緩沖器的管線上緩沖的字的數(shù)據(jù)包的不同層級的標(biāo)頭。每一提取級包含多個包標(biāo)頭提取電路和一調(diào)度電路。所述調(diào)度電路經(jīng)配置以接收從存儲在存儲器緩沖器的管線的對應(yīng)一者中的字提取對應(yīng)層級的相應(yīng)包標(biāo)頭的一個或多個請求。對于每一請求,調(diào)度電路確定對應(yīng)存儲器緩沖器的含有所述請求指定的相應(yīng)標(biāo)頭的數(shù)據(jù)巷道的第一子集。調(diào)度電路指派標(biāo)頭提取電路的相應(yīng)一者以從對應(yīng)存儲器緩沖器的所確定的巷道的第一子集提取標(biāo)頭。
[0017]在一些實(shí)施例中,管線化包處理器進(jìn)一步包含耦合到存儲器緩沖器的一者的包檢測電路。包檢測電路可經(jīng)配置和布置以檢測每一數(shù)據(jù)包的開始。響應(yīng)于檢測到包的開始,包檢測電路可產(chǎn)生從存儲在所述多個存儲器緩沖器的第一者中的字提取對應(yīng)包標(biāo)頭的請求,且將所產(chǎn)生的請求發(fā)射到所述多個提取級的第一者。
[0018]在一些實(shí)施例中,管線化包處理器進(jìn)一步包含耦合到提取級的相應(yīng)一者的至少一個請求構(gòu)建電路。每一請求構(gòu)建電路可經(jīng)配置和布置以:產(chǎn)生響應(yīng)于相應(yīng)提取級提取的指示包包含第二層級標(biāo)頭的信息提取包的第二層級標(biāo)頭的請求,且將所產(chǎn)生的請求發(fā)射到所述多個提取級的另一者。
[0019]在又一實(shí)施例中,提供一種產(chǎn)生網(wǎng)絡(luò)包處理電路的方法。輸入描述包參數(shù)的規(guī)格。包參數(shù)包含數(shù)據(jù)總線寬度(N)、數(shù)據(jù)總線的數(shù)據(jù)巷道的巷道寬度(Q)、待經(jīng)由數(shù)據(jù)總線接收的包的最小包大小,以及待經(jīng)由數(shù)據(jù)總線接收的包的最大標(biāo)頭大小。基于包參數(shù)確定標(biāo)頭提取電路的數(shù)目(K)。基于包參數(shù)針對K個標(biāo)頭提取電路的每一者確定數(shù)據(jù)巷道的相應(yīng)第一子集。產(chǎn)生電路規(guī)格,其描述具有K個標(biāo)頭提取電路、路由電路和耦合到所述K個標(biāo)頭提取電路的調(diào)度電路的包處理器。路由電路經(jīng)配置以將來自數(shù)據(jù)巷道的每一相應(yīng)子集的數(shù)據(jù)路由到所述K個標(biāo)頭提取電路的對應(yīng)一者。調(diào)度電路經(jīng)配置以接收從具有多個數(shù)據(jù)巷道的數(shù)據(jù)總線提取相應(yīng)包的標(biāo)頭數(shù)據(jù)的一個或多個請求。響應(yīng)于每一請求,調(diào)度電路確定含有所述請求指定的相應(yīng)標(biāo)頭的所述多個數(shù)據(jù)巷道的第二子集,且指派所述多個標(biāo)頭提取電路的相應(yīng)一者以從所述多個數(shù)據(jù)巷道的第二子集提取相應(yīng)標(biāo)頭數(shù)據(jù)。第二子集包含在所述多個標(biāo)頭提取電路的所指派者的相應(yīng)第一子集中。
[0020]在一些實(shí)施例中,包參數(shù)包含最大標(biāo)頭深度(M),且電路規(guī)格描述包處理管線。包處理管線包含:M個緩沖器,其布置在管線中且經(jīng)配置以針對在數(shù)據(jù)總線上接收的M個字緩沖數(shù)據(jù)總線的所述多個數(shù)據(jù)巷道;包處理器中的M者,包處理器的每一者經(jīng)配置以從所述M個緩沖器的相應(yīng)一者提取相應(yīng)標(biāo)頭數(shù)據(jù);以及M個請求產(chǎn)生電路,其耦合到所述M個包處理器的相應(yīng)一者。每一請求產(chǎn)生電路可經(jīng)配置以針對所述M個包處理器電路的對應(yīng)一者產(chǎn)生所述一個或多個請求。
[0021]將了解,在以下【具體實(shí)施方式】和所附權(quán)利要求書中陳述各個其它實(shí)施例。
【專利附圖】
【附圖說明】
[0022]在審查以下【具體實(shí)施方式】后且在參看圖式后將了解本發(fā)明的各個方面和優(yōu)點(diǎn),圖式中:
[0023]圖1展示根據(jù)一個或多個實(shí)施例的實(shí)例包處理管線;
[0024]圖2展示可用于實(shí)施圖1所示的包處理管線的提取級的實(shí)例包處理電路;
[0025]圖3展示根據(jù)一個或多個實(shí)施例的用于提取數(shù)據(jù)包的標(biāo)頭的實(shí)例過程的流程圖;[0026]圖4說明根據(jù)一個或多個實(shí)施例的數(shù)據(jù)巷道子集到相應(yīng)標(biāo)頭提取電路的實(shí)例路由;
[0027]圖5展示根據(jù)一個或多個實(shí)施例的可用于實(shí)施標(biāo)頭提取請求的調(diào)度的實(shí)例請求調(diào)度電路;
[0028]圖6展示根據(jù)一個或多個實(shí)施例的標(biāo)頭提取電路的實(shí)例實(shí)施方案;
[0029]圖7展示可用于實(shí)施圖6展示的數(shù)據(jù)提取電路的實(shí)例電路;
[0030]圖8展示用于產(chǎn)生根據(jù)一個或多個實(shí)施例配置的數(shù)據(jù)包處理電路的過程的流程圖;
[0031]圖9展示可經(jīng)配置以實(shí)施根據(jù)一個或多個實(shí)施例的數(shù)據(jù)包處理電路的可編程集成電路;以及
[0032]圖10展示可經(jīng)配置以實(shí)施本文描述的過程和功能的計算機(jī)架構(gòu)。
【具體實(shí)施方式】
[0033]一個或多個實(shí)施例提供用于包處理電路的在硬件上高效的并行架構(gòu)。所述包處理電路包含多個標(biāo)頭提取電路,其用于處理在數(shù)據(jù)總線上接收的多個包的標(biāo)頭信息。數(shù)據(jù)總線劃分為多個數(shù)據(jù)巷道。每一標(biāo)頭提取電路經(jīng)配置以從數(shù)據(jù)巷道的相應(yīng)子集接收和提取標(biāo)頭信息。因?yàn)槊恳惶崛‰娐穬H接收數(shù)據(jù)巷道的一子集,所以需要較少路由電路,且每一提取電路執(zhí)行的提取可使用較小移位電路來實(shí)施。
[0034]圖1展示根據(jù)一個或多個實(shí)施例配置的實(shí)例包處理管線100。接口電路124接收并在N字節(jié)存儲器緩沖器的管線中緩沖來自N字節(jié)數(shù)據(jù)總線102的字。對于所接收的每一字,所述字存儲在第一存儲器緩沖器中,且先前接收的字被沿著存儲器緩沖器的管線傳遞以供各個提取級108、114和120存取。
[0035]每一包可包含標(biāo)頭的堆棧,直到最大標(biāo)頭層級深度M。在此實(shí)例中,管線包含M個提取級(108、114和120),用于從標(biāo)頭堆棧的多個層級提取標(biāo)頭信息,每一級處理標(biāo)頭堆棧中的一個標(biāo)頭。管線可具有少于M個級,其中每一級處理一個或多個連續(xù)標(biāo)頭。
[0036]對于經(jīng)由數(shù)據(jù)總線102接收的每一字,包開頭(SOP)檢測電路104產(chǎn)生提取在字中檢測到的每一包的標(biāo)頭信息的請求。所述包是基于與字相關(guān)聯(lián)的SOP數(shù)據(jù)檢測的。提取請求被發(fā)送到第一提取級108,其經(jīng)配置以從在接口電路124中緩沖的字提取對應(yīng)于提取請求的每一者的標(biāo)頭信息。
[0037]SOP檢測電路104產(chǎn)生的提取請求指示待提取的所要標(biāo)頭信息位于所接收的數(shù)據(jù)字內(nèi)何處。標(biāo)頭提取請求可以多種替代格式實(shí)施,所述格式可包含各種數(shù)據(jù)值以指示包的待提取的標(biāo)頭信息。在此實(shí)例中,每一提取請求包含所請求標(biāo)頭在所接收字中開始于的偏移處以及標(biāo)頭格式指示符,其可用于確定標(biāo)頭內(nèi)各個字段的位置。所述請求還可包含包識別符,其經(jīng)選擇為在至少兩個連續(xù)字循環(huán)內(nèi)為唯一的。包識別符可在所述多個提取級的每一者中用于識別對應(yīng)于包的標(biāo)頭信息。
[0038]每一提取級包含多個標(biāo)頭提取電路(未圖示),針對可包含在所接收字中的最大數(shù)目的包的每一包有一個標(biāo)頭提取電路。對于所接收的每一提取請求,提取級經(jīng)配置以指派所述多個標(biāo)頭提取電路的相應(yīng)一者以提取所請求的標(biāo)頭信息。所提取的標(biāo)頭信息數(shù)據(jù)可包含(例如)各個標(biāo)頭字段的數(shù)據(jù)或參考所請求標(biāo)頭的各個標(biāo)頭字段的指針數(shù)據(jù)。[0039]來自每一提取級的所提取標(biāo)頭信息經(jīng)輸出以供例如數(shù)據(jù)處理電路122進(jìn)一步處理。數(shù)據(jù)處理電路122使用所提取的標(biāo)頭字段值和指針以供進(jìn)一步包處理。依據(jù)包的標(biāo)頭層級深度,所述包可需要由管線中的一個或多個額外提取級114和120處理。所述額外提取級提取包的標(biāo)頭堆棧的嵌套層級的標(biāo)頭信息。在此實(shí)例中,管線包含在提取級之間的請求構(gòu)建電路110和116以確定所述包是否含有標(biāo)頭堆棧的另一層級中的額外標(biāo)頭。如果是,那么產(chǎn)生請求且將其發(fā)射到下一提取級114或120。提取級114和120以類似于提取級108的操作的方式使用存儲在接口電路124的存儲器緩沖器的管線的對應(yīng)者中的數(shù)據(jù)字操作。
[0040]雖然主要參考對每一提取級中的包的單一標(biāo)頭層級的提取描述實(shí)例和實(shí)施例,但應(yīng)認(rèn)識到,如果外部邏輯沒有必要決定在一個標(biāo)頭與下一標(biāo)頭之間的動作,那么可在一個級中提取標(biāo)頭堆棧的多個標(biāo)頭。
[0041]圖2展示可用于實(shí)施圖1所示的包處理管線的提取級的實(shí)例包處理電路。包處理電路200包含數(shù)據(jù)總線接口電路204,其用于從具有多個Q字節(jié)數(shù)據(jù)巷道的N字節(jié)數(shù)據(jù)總線接收數(shù)據(jù)字。所述電路包含K個標(biāo)頭提取電路208、210、212和214,其每一者經(jīng)配置以接收數(shù)據(jù)巷道的相應(yīng)子集并從數(shù)據(jù)巷道的所述子集的一者或一者以上提取標(biāo)頭信息。換句話說,每一提取電路經(jīng)配置以從N字節(jié)總線的數(shù)據(jù)巷道的相應(yīng)范圍提取標(biāo)頭信息。標(biāo)頭提取電路的數(shù)目K等于可在單一N字節(jié)字中接收的最小大小包和包碎片的最大數(shù)目。因?yàn)槊恳惶崛‰娐穬H接收數(shù)據(jù)巷道的子集,所以需要較少路由電路,且可使用較小移位電路實(shí)施提取。
[0042]對于在數(shù)據(jù)總線202上接收的每一字,調(diào)度器電路206接收從所接收數(shù)據(jù)字中包含的相應(yīng)包提取標(biāo)頭信息的提取請求的集合。對于每一提取請求,調(diào)度器電路確定字的哪些數(shù)據(jù)巷道被所指示的標(biāo)頭占據(jù),且將提取請求指派到標(biāo)頭提取電路,所述標(biāo)頭提取電路的相應(yīng)巷道子集包含對應(yīng)于提取請求的所確定的數(shù)據(jù)巷道。在此實(shí)例中,通過將請求轉(zhuǎn)發(fā)到所指派的標(biāo)頭提取電路而執(zhí)行提取請求向標(biāo)頭提取電路的指派。然而,應(yīng)認(rèn)識到,一些實(shí)施例可在轉(zhuǎn)發(fā)之前調(diào)整提取請求的格式,或可以其它方式指導(dǎo)所指派的標(biāo)頭提取電路提取所請求的標(biāo)頭信息。
[0043]圖3展示用于提取在數(shù)據(jù)總線上接收的數(shù)據(jù)包的標(biāo)頭的實(shí)例過程的流程圖??墒褂脠D2所示的包處理電路實(shí)施所述過程。在框302處,基于從數(shù)據(jù)總線接收的字輸入標(biāo)頭提取請求(ER)。對于每一提取請求,在框304處確定字的含有提取請求指示的標(biāo)頭的數(shù)據(jù)巷道的子集。在框306處將每一提取請求指派到所述多個標(biāo)頭提取電路的相應(yīng)一者。在框308處將數(shù)據(jù)巷道的每一子集的數(shù)據(jù)發(fā)射到標(biāo)頭提取電路的相應(yīng)一者。在框310處使用所指派的標(biāo)頭提取電路從數(shù)據(jù)巷道的子集提取標(biāo)頭數(shù)據(jù)。
[0044]應(yīng)理解,路由到標(biāo)頭提取電路的數(shù)據(jù)巷道的相應(yīng)子集并不互斥,因?yàn)闃?biāo)頭可跨越數(shù)據(jù)巷道的邊界。如果數(shù)據(jù)巷道被均勻地劃分為互斥的子集,那么不同標(biāo)頭提取電路無法并行處理參考同一子集的多個標(biāo)頭提取請求。為了確??刹⑿刑幚硖崛≌埱螅酚傻较噜彉?biāo)頭提取電路的數(shù)據(jù)巷道的相應(yīng)子集重疊以在調(diào)度所接收標(biāo)頭提取請求的過程中提供某一靈活性。此重疊允許執(zhí)行調(diào)度使得針對在數(shù)據(jù)總線202上接收的每一字向每一標(biāo)頭提取電路指派至多一個提取請求。
[0045]圖4說明根據(jù)一個或多個實(shí)施例的數(shù)據(jù)巷道子集到相應(yīng)標(biāo)頭提取電路的實(shí)例路由。標(biāo)頭提取電路的數(shù)目和數(shù)據(jù)巷道402的路由(其可確保標(biāo)頭提取電路404可并行處理所有標(biāo)頭提取請求)取決于若干架構(gòu)參數(shù),包含最小大小的包所占據(jù)的巷道(L)的數(shù)目,和最大大小(H)的標(biāo)頭占據(jù)的數(shù)據(jù)巷道(S)的數(shù)目。
[0046]為便于說明,本文主要參考從N字節(jié)數(shù)據(jù)總線路由到多個標(biāo)頭提取電路404的N/Q數(shù)據(jù)巷道描述實(shí)例和實(shí)施例,其中數(shù)據(jù)巷道為Q字節(jié),S=2個巷道且L=2個巷道。
[0047]一般來說,N/Q數(shù)據(jù)巷道可分割為互斥的群組,其經(jīng)指派且路由到標(biāo)頭提取電路,如實(shí)線箭頭展示。標(biāo)頭提取電路I經(jīng)配置以接收數(shù)據(jù)巷道I和2,中間標(biāo)頭提取電路2到K-1的每一者經(jīng)配置以接收L數(shù)據(jù)巷道,且標(biāo)頭提取電路K經(jīng)配置以接收任何剩余數(shù)據(jù)巷道。在此實(shí)例中,在L=2的情況下,N/Q數(shù)據(jù)巷道均勻劃分為各自具有2個數(shù)據(jù)巷道的互斥群組。
[0048]通過路由額外數(shù)據(jù)巷道而提供數(shù)據(jù)巷道的子集的重疊,如虛線箭頭展示。為便于說明,具有實(shí)線箭頭的路由到標(biāo)頭提取電路的數(shù)據(jù)巷道可稱為標(biāo)頭提取電路的默認(rèn)數(shù)據(jù)巷道,且具有虛線箭頭的路由到標(biāo)頭提取電路的額外數(shù)據(jù)巷道可稱為標(biāo)頭提取電路的非默認(rèn)數(shù)據(jù)巷道。重疊的量由參數(shù)S和L確定。在L=2的情況下,每一標(biāo)頭提取電路接收:S-1個非默認(rèn)數(shù)據(jù)巷道,其是路由到上方的相鄰標(biāo)頭提取電路(如果可用)的默認(rèn)巷道;以及I個非默認(rèn)數(shù)據(jù)巷道,其是路由到下方的相鄰標(biāo)頭提取電路(如果可用)的默認(rèn)巷道。
[0049]由于以上路由的緣故,標(biāo)頭提取電路I從數(shù)據(jù)巷道I到2+(S_l)接收數(shù)據(jù)。每一中間標(biāo)頭提取電路i從數(shù)據(jù)巷道2*1-2到2*i+(S-l)接收數(shù)據(jù)。標(biāo)頭提取電路K從數(shù)據(jù)巷道2*K、2*K-1和2*Κ-2接收數(shù)據(jù)。
[0050]應(yīng)認(rèn)識到,標(biāo)頭可跨越兩個或兩個以上連續(xù)字。在此類情況下,直到在接下來的字中接收到更多數(shù)據(jù)才可從標(biāo)頭提取數(shù)據(jù)。提供緩沖器巷道410和412以緩沖先前字的最后S個數(shù)據(jù)巷道。如果接收不完整的標(biāo)頭,那么當(dāng)在后續(xù)字中接收到標(biāo)頭的最后部分時可由標(biāo)頭提取電路I處理先前巷道。
[0051]在其中L=2的實(shí)例中,可根據(jù)默認(rèn)數(shù)據(jù)巷道的以上指派和對應(yīng)包的結(jié)尾的位置調(diào)度提取請求以供標(biāo)頭提取電路處理。如果指派到標(biāo)頭提取電路的最高默認(rèn)巷道(如實(shí)線箭頭指示)不含有包的末尾,那么調(diào)度數(shù)據(jù)巷道上接收的任何請求以供上方相鄰標(biāo)頭提取電路處理。否則,調(diào)度所述請求以供被指派得到含有所述請求的數(shù)據(jù)巷道作為默認(rèn)數(shù)據(jù)巷道的標(biāo)頭提取電路處理。
[0052]從數(shù)值上來說,對在于數(shù)據(jù)巷道J上接收的請求,在J〈K的情況下,如果J為偶數(shù)且是不包含包的末尾的數(shù)據(jù)巷道,那么將請求指派到標(biāo)頭提取電路J/2+1以供處理。否則,將請求指派到標(biāo)頭提取電路(J+D/2。
[0053]對于實(shí)施L>2的架構(gòu),除了以上默認(rèn)數(shù)據(jù)巷道外,標(biāo)頭提取電路I還接收一個額外非默認(rèn)數(shù)據(jù)巷道,其也由標(biāo)頭提取電路2接收,且每一中間標(biāo)頭提取電路從上方相鄰標(biāo)頭提取電路(如果可用)接收S+1個額外非默認(rèn)數(shù)據(jù)巷道。標(biāo)頭提取電路2到K的每一者還從下方相鄰標(biāo)頭提取電路接收額外非默認(rèn)數(shù)據(jù)巷道。
[0054]由于數(shù)據(jù)巷道的默認(rèn)和非默認(rèn)路由的緣故,標(biāo)頭提取電路I從數(shù)據(jù)巷道I到S+3接收數(shù)據(jù)。每一中間標(biāo)頭提取電路i從數(shù)據(jù)巷道L*(1-2)+2到L*(1-l) + (S+3)接收數(shù)據(jù)。標(biāo)頭提取電路K從數(shù)據(jù)巷道L* (K-2) +2到N/Q接收數(shù)據(jù)。
[0055]對于L>2實(shí)施方案,可基于請求的數(shù)據(jù)巷道以及對應(yīng)包的開始/結(jié)束調(diào)度提取請求以供標(biāo)頭提取電路404處理。舉例來說,如果底部或中間標(biāo)頭提取電路的最高默認(rèn)數(shù)據(jù)巷道含有包的開始,那么將在所述巷道上接收的任何請求指派到上方相鄰標(biāo)頭提取電路以供處理。如果中間或頂部標(biāo)頭提取電路的最低默認(rèn)數(shù)據(jù)巷道含有包的結(jié)尾,那么將在所述巷道上接收的任何請求指派到下方相鄰標(biāo)頭提取電路。
[0056]從數(shù)值上來說,對于在數(shù)據(jù)巷道(J)上接收的請求,如果J除以L的余數(shù)=2(J modL=2), J<(N/Q)且數(shù)據(jù)巷道J包含包的開始,那么將請求指派到標(biāo)頭提取電路(J+3L-3)/L。如果J除以L的余數(shù)=3 (J mod L=3)且數(shù)據(jù)巷道J包含包的結(jié)尾,那么將請求指派到標(biāo)頭提取電路(J+L_3)/L。
[0057]圖5展示根據(jù)一個或多個實(shí)施例的可用于實(shí)施標(biāo)頭提取請求的調(diào)度的實(shí)例請求調(diào)度電路。如參看圖2描述,請求調(diào)度電路針對在數(shù)據(jù)總線上接收的每一字接收提取請求的集合。請求調(diào)度電路500包含多個巷道指派電路502、504、506和508。巷道指派電路的每一者經(jīng)配置以接收提取標(biāo)頭的請求且確定數(shù)據(jù)總線的哪些數(shù)據(jù)巷道含有請求所指示的標(biāo)頭。
[0058]請求調(diào)度電路500包含多個調(diào)度器電路520到528,其包含對應(yīng)于數(shù)據(jù)總線的每一數(shù)據(jù)巷道的一個調(diào)度器電路。經(jīng)由請求交換開關(guān)510從巷道指派電路502-508的一者向?qū)?yīng)于請求所指示的標(biāo)頭開始于的數(shù)據(jù)巷道的調(diào)度器電路路由每一提取請求。
[0059]調(diào)度器電路520到528將提取請求指派到標(biāo)頭提取電路,如上文參看圖4描述。由調(diào)度器電路520到528針對在數(shù)據(jù)總線上接收的每一字調(diào)度提取請求。然而,如參看圖4描述,所有必要的標(biāo)頭信息可能并非在一個字中可用。舉例來說,包標(biāo)頭可在當(dāng)前字中開始但繼續(xù)到后一字中。在此類情形中,調(diào)度電路經(jīng)配置以在請求緩沖器512中緩沖對應(yīng)的標(biāo)頭提取請求,直到接收到后一字為止。在調(diào)度完成之后,將提取請求從調(diào)度器電路經(jīng)由請求交換開關(guān)530路由到所指派的標(biāo)頭提取電路。
[0060]圖6展示圖4所示的標(biāo)頭提取電路的一者的例項(xiàng)的實(shí)例實(shí)施方案。標(biāo)頭提取電路602經(jīng)配置以根據(jù)所接收的標(biāo)頭提取請求從數(shù)據(jù)巷道的子集接收和提取標(biāo)頭信息。在此實(shí)施方案中,請求包含指示標(biāo)頭在字中何處開始的基準(zhǔn)地址(a)、指示標(biāo)頭中包含的字段的放置和格式的格式號(r),以及對應(yīng)數(shù)據(jù)包的包ID (p)。
[0061 ] 標(biāo)頭提取電路602包含若干字段數(shù)據(jù)提取電路606到608和若干字段指針計算電路610到612。字段數(shù)據(jù)提取電路經(jīng)配置以提取相應(yīng)標(biāo)頭字段的數(shù)據(jù),且字段指針計算電路經(jīng)配置以確定到相應(yīng)標(biāo)頭字段的指針。取決于實(shí)施方案,可相對于標(biāo)頭中的偏移或相對于字中的偏移來確定到相應(yīng)標(biāo)頭字段的指針。
[0062]字段數(shù)據(jù)提取電路和字段指針計算電路的每一者對由標(biāo)頭提取電路中指示的格式號r確定的不同字段操作。
[0063]在此實(shí)例中,數(shù)據(jù)提取電路606到608被描繪為輸出32位字段數(shù)據(jù),且指針計算電路610到612被描繪為輸出t位指針。僅出于說明的目的提供這些數(shù)據(jù)值。數(shù)據(jù)提取電路606到608和指針計算電路610到612的數(shù)目以及所輸出標(biāo)頭字段和指針的長度是架構(gòu)參數(shù),其可根據(jù)標(biāo)頭提取電路經(jīng)配置以處理的標(biāo)頭格式進(jìn)行調(diào)整。
[0064]在一個實(shí)施例中,標(biāo)頭提取電路602包含預(yù)處理電路604,其根據(jù)提取請求指示的標(biāo)頭基準(zhǔn)地址a從數(shù)據(jù)巷道的輸入子集選擇具有所請求的標(biāo)頭信息的所接收數(shù)據(jù)巷道的一部分(w位)。在一些其它實(shí)施例中,不實(shí)施預(yù)處理電路,且在標(biāo)頭提取電路602外部的路由電路(未圖示)可經(jīng)配置以動態(tài)地僅將具有所請求標(biāo)頭信息的數(shù)據(jù)巷道路由到標(biāo)頭提取電路602。在又一實(shí)施例中,數(shù)據(jù)提取電路606到608和字段指針計算電路610到612可經(jīng)配置以從所接收的數(shù)據(jù)巷道子集620提取相應(yīng)的標(biāo)頭字段。子集620中包含的數(shù)據(jù)巷道取決于架構(gòu)參數(shù)L和S以及包處理電路中提取電路的位置,如上文參看圖4論述。
[0065]圖7展示可用于實(shí)施圖6所示的數(shù)據(jù)提取電路的實(shí)例電路。如上所述,包標(biāo)頭可包含取決于包標(biāo)頭的格式處于不同偏移的不同數(shù)目的字段。將格式號r輸入到數(shù)據(jù)提取電路和字段指針計算電路。數(shù)據(jù)提取電路接收格式號r,其指示協(xié)議和待提取的標(biāo)頭字段。控制指令電路包含配置有微代碼的存儲器,所述微代碼指導(dǎo)電路702如何針對可由包處理電路處理的每一標(biāo)頭格式r提取字段數(shù)據(jù)。響應(yīng)于輸入的格式號r,控制指令電路704確定所請求字段從標(biāo)頭的開始的位偏移和所請求字段的位長度。出于說明的目的,位偏移和位長度分別被描繪為6和8位。將進(jìn)一步認(rèn)識到,控制指令電路704輸出的位偏移和位長度取決于電路702經(jīng)配置以處理的可能的標(biāo)頭格式。將此信息與標(biāo)頭基準(zhǔn)偏移a組合以從所接收數(shù)據(jù)提取所請求字段信息。圖6所示的指針計算電路610到612可以類似布置實(shí)施以確定所要字段的位偏移且跟據(jù)標(biāo)頭偏移和字段偏移計算到字段的指針。
[0066]參看圖2,認(rèn)識到,標(biāo)頭提取電路可使用字段數(shù)據(jù)提取電路702中的相同微代碼實(shí)施,使得所有包接收相同處理?;蛘撸瑯?biāo)頭提取電路可配置有不同微代碼集合。舉例來說,網(wǎng)絡(luò)應(yīng)用程序可經(jīng)配置以發(fā)射具有等于字大小的固定包大小的ATM數(shù)據(jù)包,以及具有可變大小的TCP/IP包。如果網(wǎng)絡(luò)經(jīng)配置以始終發(fā)射那一個字中的ATM包,那么標(biāo)頭將始終由第一標(biāo)頭提取電路處理。因此,僅第一標(biāo)頭提取電路需要配置有微代碼來處理ATM包。同樣,當(dāng)如圖1所示實(shí)施多個提取級時,可在不同提取級中使用不同微代碼集合來處理不同標(biāo)頭層級。微代碼可存儲在可寫入控制存儲裝置中,其允許標(biāo)頭提取電路的運(yùn)行時更新。這允許針對特定標(biāo)頭格式的規(guī)則的添加、修改和移除。
[0067]在一個或多個實(shí)施例中,軟件設(shè)計工具可經(jīng)配置以產(chǎn)生和配置如上所述的網(wǎng)絡(luò)數(shù)據(jù)包處理電路。圖8展示用于產(chǎn)生網(wǎng)絡(luò)數(shù)據(jù)包處理電路設(shè)計的過程的流程圖。在框802處,輸入描述可能的包參數(shù)的規(guī)格。在此實(shí)例實(shí)施方案中,包參數(shù)包含數(shù)據(jù)總線的寬度N、數(shù)據(jù)巷道寬度Q、最小包大小M和最大包標(biāo)頭大小H。在框804處基于包參數(shù)確定針對可在數(shù)據(jù)總線上并行接收的最大數(shù)目數(shù)據(jù)包提取標(biāo)頭信息所需的標(biāo)頭提取電路的數(shù)目K。在框806處基于如參看圖4描述的包參數(shù)針對K個標(biāo)頭提取電路的每一者選擇數(shù)據(jù)總線的數(shù)據(jù)巷道的相應(yīng)子集。
[0068]在框808處產(chǎn)生硬件描述語言(HDL)電路設(shè)計規(guī)格,例如Verilog或VHDL。所述電路設(shè)計規(guī)格描述具有K個標(biāo)頭提取電路的包處理器、將數(shù)據(jù)巷道的每一選定子集路由到對應(yīng)的標(biāo)頭提取電路的路由電路,以及包調(diào)度電路。如上所述,調(diào)度電路確定含有請求所指定的相應(yīng)標(biāo)頭的數(shù)據(jù)巷道的第二子集,且指派所述多個標(biāo)頭提取電路的相應(yīng)一者以從所述多個數(shù)據(jù)巷道的第二子集提取相應(yīng)標(biāo)頭數(shù)據(jù)。標(biāo)頭提取電路經(jīng)指派使得第二子集包含在對應(yīng)于所指派標(biāo)頭提取電路的第一子集中,且使得針對在數(shù)據(jù)總線上接收的每一字向每一標(biāo)頭提取電路指派至多一個提取請求。標(biāo)頭提取電路和/或調(diào)度電路可根據(jù)預(yù)定義電路設(shè)計規(guī)格描述或構(gòu)建。舉例來說,可通過根據(jù)包參數(shù)和可能標(biāo)頭格式的集合實(shí)例化若干預(yù)定義模塊(例如,字段數(shù)據(jù)提取電路702)而產(chǎn)生每一標(biāo)頭提取電路。
[0069]圖9是根據(jù)各個實(shí)施例的可經(jīng)配置以實(shí)施包處理器的實(shí)例可編程集成電路的框圖。圖9所示的可編程集成電路稱為現(xiàn)場可編程門陣列(FPGA)。如先前描述的包處理電路可實(shí)施在FPGA的可編程邏輯和互連資源上。
[0070]FPGA可在陣列中包含若干不同類型的可編程邏輯塊。舉例來說,圖9說明FPGA架構(gòu)(900),其包含大量不同可編程架構(gòu)片(tile),包含多千兆位收發(fā)器(MGT901)、可配置邏輯塊(CLB902)、隨機(jī)存取存儲器塊(BRAM903)、輸入/輸出塊(10B904)、配置和時鐘控制邏輯(C0NFIG/CL0CK905 )、數(shù)字信號處理塊(DSP906 )、專門輸入/輸出塊(1/0907 )(例如,時鐘端口),以及例如數(shù)字時鐘管理器、模/數(shù)轉(zhuǎn)換器、系統(tǒng)監(jiān)視邏輯等其它可編程邏輯908。一些FPGA還包含專用處理器塊(PR0C910)以及內(nèi)部和外部再配置端口(未圖示)。
[0071]在一些FPGA中,每一可編程架構(gòu)片包含可編程互連元件(INT911),其具有前往和來自每一鄰近架構(gòu)片中的對應(yīng)互連元件的標(biāo)準(zhǔn)化連接。因此,可編程互連元件一起實(shí)施所說明FPGA的可編程互連結(jié)構(gòu)??删幊袒ミB元件INT911還包含前往和來自同一架構(gòu)片內(nèi)的可編程邏輯元件的連接,如圖9的頂部處包含的實(shí)例所展示。
[0072]舉例來說,CLB902可包含可配置邏輯元件CLE912,其可經(jīng)編程以實(shí)施用戶邏輯加上單一可編程互連元件INT911。除一個或多個可編程互連元件外,BRAM903還可包含BRAM邏輯元件(BRL913)。通常,包含在架構(gòu)片中的互連元件的數(shù)目取決于架構(gòu)片的高度。在圖示的實(shí)施例中,BRAM架構(gòu)片具有與五個CLB —樣的高度,但也可使用其它數(shù)目(例如,四個)。除適當(dāng)數(shù)目的可編程互連元件外,DSP架構(gòu)片906還可包含DSP邏輯元件(DSPL914)。除可編程互連元件INT911的一個例項(xiàng)外,10B904還可包含(例如)輸入/輸出邏輯元件(10L915)的兩個例項(xiàng)。如所屬領(lǐng)域的技術(shù)人員將明白,例如連接到I/O邏輯元件915的實(shí)際I/O墊是使用在各個所說明的邏輯塊上方分層的金屬制造,且通常不限于輸入/輸出邏輯元件915的區(qū)域。
[0073]在圖示的實(shí)施例中,裸片的中心附近的柱狀區(qū)域(圖9中用陰影展示)用于配置、時鐘和其它控制邏輯。從此柱延伸的水平區(qū)域909用于在FPGA的范圍中分布時鐘和配置信號。
[0074]利用圖9中說明的架構(gòu)的一些FPGA包含中斷組成FPGA的大部分的規(guī)則柱狀結(jié)構(gòu)的額外邏輯塊。所述額外邏輯塊可為可編程塊和/或?qū)S眠壿?。舉例來說,圖9所示的處理器塊PR0C910跨越若干列CLB和BRAM。
[0075]注意,圖9希望僅說明示范性FPGA架構(gòu)。列中邏輯塊的數(shù)目、列的相對寬度、列的數(shù)目和排序、列中包含的邏輯塊的類型、邏輯塊的相對大小,以及圖9的頂部處包含的互連/邏輯實(shí)施方案僅為示范性的。舉例來說,在實(shí)際FPGA中,在CLB出現(xiàn)的任何地方通常包含多個鄰近列的CLB,以便促進(jìn)用戶邏輯的有效實(shí)施。
[0076]圖10展示可經(jīng)配置以實(shí)施本文描述的過程和功能的實(shí)例計算布置的框圖。將了解,各種替代計算布置(包含一個或多個處理器和配置有程序代碼的存儲器布置)將適于代管所述過程和數(shù)據(jù)結(jié)構(gòu)且實(shí)施不同實(shí)施例的算法??山?jīng)由多種計算機(jī)可讀存儲媒體或遞送信道(例如,磁盤或磁帶或者光盤或光帶)、電子存儲裝置,或作為網(wǎng)絡(luò)上的應(yīng)用服務(wù)而存儲和提供包括以處理器可執(zhí)行格式編碼的一個或多個實(shí)施例的過程的計算機(jī)代碼。
[0077]處理器計算布置1000包含耦合到主機(jī)總線1012的一個或多個處理器1002、時鐘信號產(chǎn)生器1004、存儲器單元1006、存儲單元1008和輸入/輸出控制單元1010。布置1000可用在電路板上的單獨(dú)組件實(shí)施,或可實(shí)施在集成電路內(nèi)部。當(dāng)實(shí)施在集成電路內(nèi)部時,處理器計算布置另外稱為微控制器。
[0078]計算布置的架構(gòu)取決于實(shí)施要求,如所屬領(lǐng)域的技術(shù)人員將了解。處理器1002可為一個或多個通用處理器,或者一個或多個通用處理器與適宜的協(xié)處理器的組合,或者一個或多個專門處理器(例如,RISC、CISC、管線化等)。
[0079]存儲器布置1006通常包含多個層級的高速緩沖存儲器和主存儲器。存儲布置1008可包含本地和/或遠(yuǎn)程持久存儲裝置,例如由磁盤(未圖示)、快閃存儲器、EPROM或其它非易失性數(shù)據(jù)存儲裝置提供。存儲單元可為能夠讀取或能夠讀取/寫入的。此外,存儲器1006和存儲裝置1008可在單一布置中組合。
[0080]處理器布置1002在存儲裝置1008和/或存儲器1006布置中執(zhí)行軟件,從存儲裝置1008和/或存儲器1006布置讀取數(shù)據(jù)并將數(shù)據(jù)存儲到存儲裝置1008和/或存儲器1006布置,且經(jīng)由輸入/輸出控制布置1010與外部裝置通信。這些功能通過時鐘信號產(chǎn)生器1004同步。計算布置的資源可由操作系統(tǒng)(未圖示)或硬件控制單元(未圖示)管理。
[0081]認(rèn)為本發(fā)明的實(shí)施例適用于多種包處理器。所屬領(lǐng)域的技術(shù)人員通過考慮說明書和實(shí)踐本文揭示的發(fā)明將了解其它方面和實(shí)施例。所述實(shí)施例可實(shí)施為經(jīng)配置以執(zhí)行軟件的一個或多個處理器,實(shí)施為專用集成電路(ASIC),或?qū)嵤榭删幊踢壿嬔b置上的邏輯。希望將說明書和所說明的實(shí)施例僅視為實(shí)例,實(shí)施例的真實(shí)范圍由所附權(quán)利要求書指示。
【權(quán)利要求】
1.一種包處理電路,其包括: 多個標(biāo)頭提取電路;以及 調(diào)度電路,其耦合到所述多個標(biāo)頭提取電路,所述調(diào)度電路經(jīng)配置和布置以: 接收從具有多個數(shù)據(jù)巷道的數(shù)據(jù)總線提取相應(yīng)包的標(biāo)頭數(shù)據(jù)的一個或多個請求;以及 響應(yīng)于每一請求: 確定含有所述請求指定的相應(yīng)標(biāo)頭的所述多個數(shù)據(jù)巷道的第一子集;且指派所述多個標(biāo)頭提取電路的相應(yīng)一者以從所述多個數(shù)據(jù)巷道的所述第一子集提取相應(yīng)標(biāo)頭數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的包處理電路,其中: 所述多個標(biāo)頭提取電路的每一者經(jīng)耦合以從所述數(shù)據(jù)總線的所述多個數(shù)據(jù)巷道的相應(yīng)第二子集接收數(shù)據(jù);且 針對從被指派的所述多個標(biāo)頭提取電路的相應(yīng)一者而提取所述相應(yīng)標(biāo)頭數(shù)據(jù)的所述多個數(shù)據(jù)巷道的每一第一子集,將所述多個數(shù)據(jù)巷道的所述第一子集包含在所述相應(yīng)標(biāo)頭提取電路經(jīng)耦合以接收的所述多個數(shù)據(jù)巷道的所述第二子集中。
3.根據(jù)權(quán)利要求2所述的包處理電路,其中: 所述數(shù)據(jù)總線是N位數(shù)據(jù)總線;且 所述多個標(biāo)頭提取電路包含若干(K個)標(biāo)頭提取電路,K大于或等于可在所述數(shù)據(jù)總線上并行接收的包的最大數(shù)目。
4.根據(jù)權(quán)利要求3所述的包處`理電路,其中: 每一數(shù)據(jù)巷道為Q位; 在所述N位數(shù)據(jù)中接收的數(shù)據(jù)包的標(biāo)頭的最大標(biāo)頭大小占據(jù)S個數(shù)據(jù)巷道;且數(shù)據(jù)巷道的所述第一子集包含若干(L個)數(shù)據(jù)巷道,L*Q等于可在所述數(shù)據(jù)總線上接收的最小大小數(shù)據(jù)包。
5.根據(jù)權(quán)利要求4所述的包處理電路,其中L=2,且針對標(biāo)頭提取電路i,l〈=i〈=K: 對于i=l,標(biāo)頭提取電路i經(jīng)配置以專門從數(shù)據(jù)巷道I到2+(S-l)接收數(shù)據(jù),且接收來自在S個數(shù)據(jù)巷道上接收的先前字的數(shù)據(jù); 對于l〈i〈K,標(biāo)頭提取電路i經(jīng)配置以專門從數(shù)據(jù)巷道2*1-2到2*i+(S-l)接收數(shù)據(jù);且 對于i=K,標(biāo)頭提取電路i經(jīng)配置以專門從數(shù)據(jù)巷道2*K、2*K-1和2*Κ-2接收數(shù)據(jù)。
6.根據(jù)權(quán)利要求5所述的包處理電路,其中所述調(diào)度電路經(jīng)配置以響應(yīng)于接收在數(shù)據(jù)巷道J(J〈K)上所接收的請求: 對于J為不包含包的結(jié)尾的偶數(shù)數(shù)據(jù)巷道,向標(biāo)頭提取電路J/2+1指派所述請求;且 否則,向標(biāo)頭提取電路(J+D/2指派所述請求。
7.根據(jù)權(quán)利要求6所述的包處理電路,其中所述調(diào)度電路進(jìn)一步經(jīng)配置以響應(yīng)于接收所有所需要的標(biāo)頭數(shù)據(jù)都未呈現(xiàn)在當(dāng)前數(shù)據(jù)字中的請求而緩沖所述請求以供在后一數(shù)據(jù)字中處理。
8.根據(jù)權(quán)利要求4所述的包處理電路,其中L>2,且針對標(biāo)頭提取電路i(l〈=i〈=K): 對于i=l,標(biāo)頭提取電路i經(jīng)配置以專門從數(shù)據(jù)巷道I到3+S接收數(shù)據(jù),且接收來自在S個數(shù)據(jù)巷道上接收的先前字的數(shù)據(jù);對于l〈i〈K,標(biāo)頭提取電路i經(jīng)配置以僅從數(shù)據(jù)巷道L* (1-2) +2到L* (1-1) + (S+3)接收數(shù)據(jù);且 對于i=K,標(biāo)頭提取電路i經(jīng)配置以僅從數(shù)據(jù)巷道L* (K-2) +2到N/Q接收數(shù)據(jù)。
9.根據(jù)權(quán)利要求7所述的包處理電路,其中所述調(diào)度電路響應(yīng)于接收在數(shù)據(jù)巷道J上接收的請求而進(jìn)一步經(jīng)配置以: 對于J除以L的余數(shù)=2且J〈 (N/Q)以及包含包的開始的數(shù)據(jù)巷道J,向標(biāo)頭提取電路(J+3L-3)/L指派所述請求;且 對于J除以L的余數(shù)=3以及包含包的結(jié)尾的數(shù)據(jù)巷道J,向標(biāo)頭提取電路(J+L-3)/L指派所述請求。
10.根據(jù)權(quán)利要求2所述的包處理電路,其進(jìn)一步包括路由電路,所述路由電路經(jīng)配置以響應(yīng)于所述調(diào)度電路指派所述多個標(biāo)頭提取電路的一者以從所述多個數(shù)據(jù)巷道的所述第一子集提取所述標(biāo)頭數(shù)據(jù)而將來自所述數(shù)據(jù)總線的巷道的所述第一子集的數(shù)據(jù)路由到所述多個標(biāo)頭提取電路的所述所指派的一者。
11.根據(jù)權(quán)利要求2所述的包處理電路,其中所述一個或多個請求的每一者指定包標(biāo)頭類型、包識別符和標(biāo)頭地址。
12.根據(jù)權(quán)利要求11所述的包處理電路,其中所述包標(biāo)頭提取電路的每一者經(jīng)配置以響應(yīng)于經(jīng)指派以從數(shù)據(jù)巷道的所述第一子集提取標(biāo)頭數(shù)據(jù)而確定數(shù)據(jù)巷道的所述第一子集內(nèi)的所述標(biāo)頭數(shù)據(jù)的偏移以及來自所述請求指示的所述包標(biāo)頭類型的所述標(biāo)頭數(shù)據(jù)的長度。
13.根據(jù)權(quán)利要求·1所述的包處理電路,其中所述標(biāo)頭數(shù)據(jù)包含一個或多個標(biāo)頭字段的數(shù)據(jù)。
14.根據(jù)權(quán)利要求1所述的包處理電路,其中所述標(biāo)頭數(shù)據(jù)包含到相應(yīng)標(biāo)頭字段的一個或多個指針。
15.根據(jù)權(quán)利要求1所述的包處理電路,其中所述調(diào)度電路經(jīng)配置和布置以接收針對在所述數(shù)據(jù)總線上接收的每一字從所述數(shù)據(jù)總線提取相應(yīng)包的標(biāo)頭數(shù)據(jù)的所述一個或多個請求的集合。
【文檔編號】H04L12/931GK103858393SQ201280049622
【公開日】2014年6月11日 申請日期:2012年5月17日 優(yōu)先權(quán)日:2011年10月17日
【發(fā)明者】高登·J·布農(nóng) 申請人:吉林克斯公司