国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      混合數(shù)據(jù)流處理器的制造方法

      文檔序號:7793049閱讀:186來源:國知局
      混合數(shù)據(jù)流處理器的制造方法【專利摘要】一種處理分組流的網(wǎng)絡(luò)設(shè)備具有入口前端。該入口前端確定這些分組是在有界時延路徑中還是在盡力而為路徑中被處置。這些有界時延路徑分組相比這些盡力而為路徑分組以更高優(yōu)先級被許可資源。在這些分組通過多個處理級而被處理時,利用處理引擎,這些有界時延分組在與有保證速率相對應(yīng)的時間段內(nèi)被處理。僅當(dāng)這些處理引擎確定該資源許可將不影響與這些第一分組有關(guān)的時延界限時,才向這些盡力而為路徑分組許可資源?!緦@f明】混合數(shù)據(jù)流處理器[0001]相關(guān)申請的交叉引用[0002]本公開內(nèi)容要求來自2012年5月10日提交的臨時申請序列號N0.61/645,306以及來自2012年9月27日提交的臨時申請序列號N0.61/706,513的優(yōu)先權(quán)。這些臨時申請的公開內(nèi)容通過引用以它們的整體并入本文?!?br>背景技術(shù)
      】[0003]當(dāng)前的公開內(nèi)容涉及一種處理分組的網(wǎng)絡(luò)設(shè)備。[0004]本文所提供的【
      背景技術(shù)
      】描述是用于一般性地呈現(xiàn)本公開內(nèi)容的背景的目的。當(dāng)前被命名為發(fā)明人的工作,到它在這個【
      背景技術(shù)
      】章節(jié)中被描述的程度,以及在提交時以其他方式還不夠資格作為現(xiàn)有技術(shù)的本描述的方面,既不明確地也不隱含地被承認(rèn)為相對本公開內(nèi)容的現(xiàn)有技術(shù)。[0005]處理分組的現(xiàn)代網(wǎng)絡(luò)設(shè)備通常包括處理單元或“處理引擎”,這些處理單元或“處理引擎”串行地被布置為以被理解為管道線配置的方式來處理分組。在管道線配置中,分組在各級中被處理以便實現(xiàn)高吞吐率?!?br/>發(fā)明內(nèi)容】[0006]作為概述,下面所討論的示例實施例一般性地涉及一種網(wǎng)絡(luò)設(shè)備,該網(wǎng)絡(luò)設(shè)備通過使用兩個路徑:“硬”路徑和“軟”路徑的多個處理單元來處理分組。遍歷硬路徑的分組以提供有界時延的方式而被處理。遍歷軟路徑的分組以盡力而為方式而被處理。盡管有前文,但不是每個示例實施例都被要求具有這個段落中所提到的特征中的所有特征或者甚至是任何特征。[0007]根據(jù)一個示例實施例,提供有一種用于處理分組的網(wǎng)絡(luò)設(shè)備,該設(shè)備具有:入口前端,被配置為將分組流中的第一分組識別為將在多個處理級中的每個級以有保證速率來處理的分組,并且將該分組流中的第二分組識別為將在該多個處理級中的每個級不以有保證速率來處理的分組;多個引擎,被配置為提供用于在處理級處理該分組流中使用的相應(yīng)資源;該處理級被配置為:(I)對于該第一分組,選擇性地促使使用從這些引擎中的一個引擎獲得的該資源來對該第一分組執(zhí)行第一分組處理操作,并且在與該有保證速率相對應(yīng)的時間段內(nèi)將該第一分組傳遞給下一個處理級;以及(2)對于該第二分組,選擇性地從這些引擎中的一個引擎請求該資源用于處理該第二分組,將該第二分組緩沖在緩沖器中直到該資源可用,促使使用該可用資源來對該第二分組執(zhí)行第二分組處理操作,以及將該第二分組以不被保證的速率傳遞給下一個處理級。[0008]在另一個示例實施例中,這些處理級被布置在管道線中。在另一個示例實施例中,該入口前端、這些引擎、以及該多個處理級被設(shè)置在同一集成電路設(shè)備上。該分組流包括將以有保證的處理速率來處理的多個分組,并且該一個或多個引擎被配置為,響應(yīng)于確定向該第二分組許可該資源將不影響將以該有保證速率來處理的分組的該有保證速率,向請求該資源以用于該第二分組的該處理級許可該資源。在一個示例實施例中,該入口前端被配置為,將數(shù)據(jù)分組作為大多數(shù)的將以該有保證速率來處理的分組而提供給該多個處理級。[0009]根據(jù)一個示例實施例的該網(wǎng)絡(luò)設(shè)備進(jìn)一步包括背壓總線,其中下游處理級被配置為,通過該背壓總線用信號向上游處理級通知,該下游處理級是否可用于接收該第二分組以用于附加處理。在另一個示例實施例中,該下游處理級基于該下游處理級的緩沖器填充程度,用信號向該上游處理級通知是否傳遞該第二分組。響應(yīng)于下游處理級的緩沖器達(dá)到預(yù)定充滿閾值,該下游處理級向上游處理級發(fā)送信號來停止發(fā)送分組。另外,該網(wǎng)絡(luò)設(shè)備具有設(shè)置在這些處理級中的軟路徑緩沖器,這些軟路徑緩沖器被配置為在可變時間段內(nèi)緩沖該第二分組,該可變時間段是以下項的函數(shù):從處理級到這些引擎中的一個或多個引擎的對許可訪問該資源的請求、以及由一個或多個引擎給請求的該處理級的使得該資源可用于處理該第二分組的許可。[0010]在一個示例實施例中,該多個處理級被布置在管道線中,并且這些軟路徑緩沖器被配置為向前級提供背壓信號,該背壓信號指示是否在該管道線中向前發(fā)送將不以該有保證速率來處理的另一個分組。在另一個示例實施例中,這些軟路徑緩沖器被配置為,響應(yīng)于這些軟路徑緩沖器中的一個軟路徑緩沖器超出充滿閾值而聲明該背壓信號,并且該入口前端被配置為,接收該背壓信號并且不發(fā)送將不以有保證速率來處理的另一個分組,直到該背壓信號被解除聲明。[0011]在又另一個示例實施例中,該多個處理級被布置為提供:軟路徑,其不以有保證速率來處理分組;以及硬路徑,其以有保證速率來處理分組而不論施加在這些引擎該軟路徑上的處理負(fù)載。[0012]在一個示例實施例中,提供有一種方法,包括:將分組流中的第一分組識別為將在多個處理級中的每個級以有保證速率來處理的分組;將分組流中的第二分組識別為將在該多個處理級中的每個級不以有保證速率來處理的分組;在處理級從引擎請求資源,使得能夠在有界時間段內(nèi)對該第一分組執(zhí)行操作,該有界時間段由與該有保證速率相對應(yīng)的預(yù)定時延來限定;使用該資源對該第一分組執(zhí)行處理操作,并且在由該有保證速率所限定的時間段內(nèi)將該第一分組傳遞給下一級;請求用以從該引擎請求該資源的準(zhǔn)許,使得能夠?qū)υ摰诙纸M執(zhí)行操作;響應(yīng)于資源請求,做出與使用該資源是否將影響該第一分組的該有保證速率有關(guān)的確定,并且根據(jù)該確定來提供資源許可;以及響應(yīng)于該資源許可,從該引擎請求該資源。[0013]在一個示例實施例中,該方法還包括:緩沖該資源請求,直到該確定指示該第一分組的該有保證速率將不被影響。[0014]在又一個示例實施例中,提供了一種網(wǎng)絡(luò)設(shè)備,用于以基本上有保證速率來處理第一分組的流,并且用于以可變速率來同時處理第二分組的流。該設(shè)備還包括:一個或多個引擎,供應(yīng)處理資源用于在處理該第一分組中使用并且用于在處理該第二分組中使用;以及處理級,耦合至該一個或多個引擎,該處理級被配置為:在由該有保證速率所限定的時段內(nèi),使用從該一個或多個引擎獲得的該資源來處理該第一分組,以及針對用于處理這些第二分組之中的第二分組的該資源而做出資源請求,緩沖該第二分組,直到這些引擎中的一個或多個引擎指示用于處理該第二分組而不導(dǎo)致用于處理這些第一分組的該時段超出該有保證速率的該資源的可用性。[0015]在一個示例實施例中,提供有一種管道線處理器,該管道線處理器包括多個處理級,該多個處理級包括該處理級,該多個處理級每個都被配置為對這些第一分組和這些第二分組執(zhí)行一個或多個處理操作。該設(shè)備基于該引擎是否能夠許可該資源而不影響這些第一分組的該有保證速率,來確定何時許可該資源。當(dāng)存在包括該引擎的多個引擎時,這些引擎中的每個引擎具有資源并且耦合至該處理級,該處理級被配置為生成與該多個引擎中的多于一個引擎有關(guān)的資源請求。在一個示例實施例中,該處理級向該多個引擎中的每個引擎提供該資源請求。[0016]在附加的示例實施例中,網(wǎng)絡(luò)設(shè)備還包括:分組分類器,設(shè)置在該處理級和該引擎的上游,被配置為將分組流中的分組分類為這些第一分組之一或者這些第二分組之一?!緦@綀D】【附圖說明】[0017]圖1是提供用于根據(jù)示例實施例的操作的概念的高級別概覽的高度簡化的說明性示圖;[0018]圖2圖示了根據(jù)示例實施例的硬實時系統(tǒng);[0019]圖3圖示了根據(jù)示例實施例的軟實時系統(tǒng);[0020]圖4圖示了根據(jù)示例實施例的混合系統(tǒng),該混合系統(tǒng)具有圖2的硬實時系統(tǒng)和圖3的軟實時系統(tǒng);以及[0021]圖5圖示了根據(jù)示例實施例的示例方法的流程圖。【具體實施方式】[0022]在以下的討論中,為了增加的清楚性和簡潔性,對公知功能和構(gòu)造的描述可能被省略。[0023]概念性概述[0024]圖1示出了網(wǎng)絡(luò)設(shè)備300。網(wǎng)絡(luò)分組的流1被引入。一些分組1H將經(jīng)由硬路徑而被處理,并且一些分組1S將經(jīng)由軟路徑而被處理。該設(shè)備中的組件2促使硬路徑分組1H經(jīng)由硬路徑3而被處理,并且促使軟路徑分組1S經(jīng)由軟路徑4而被處理。將理解,在圖1中以及在其他圖中的兩個物理路徑的圖示被提供用于解釋的目的,并且將不被理解為限制示例實施例。[0025]硬路徑分組1H通過經(jīng)過處理級5而傳遞來遍歷硬路徑3。在圖1中,僅示出了兩個級,5-1和5-2。這些處理級由處理單元來實施并且涉及對各種資源(未示出)的使用,其將在下面更詳細(xì)地被描述。盡管示例實施例不要求對分組的改變以作為每個處理級的結(jié)果而出現(xiàn),但是圖1通過處理級Sl(S卩,5-1)之前的標(biāo)簽Η到之后的標(biāo)簽Η’上的改變而圖示了分組中的改變。同樣地,圖1以標(biāo)簽Η”示出了已經(jīng)通過處理級S2的硬路徑分組。在最后的處理級S2之后,這些網(wǎng)絡(luò)分組如此地被處理而出口。[0026]遍歷硬路徑3的硬路徑分組1Η由處理級5的處理單元(未示出)以提供有界時延的方式來處理。此處,術(shù)語“有界時延”可以被理解為具有與“沒有延遲”相類似或者與“以有保證的吞吐率”相類似的內(nèi)涵。[0027]軟路徑分組1S遍歷軟路徑4。僅為了解釋的目的,軟路徑4被圖示為等待被處理的、軟路徑分組的形象的等待線條。軟路徑分組1S在該線條的末端進(jìn)入軟路徑,并且最終被處理。[0028]實施軟路徑的一些具體示例實施例在下面被描述,但是總體概念是軟路徑分組IS以盡力而為的方式被處理。如圖1中所示出的,軟路徑分組IS從由標(biāo)簽S所圖示的預(yù)處理狀態(tài)前進(jìn)到由標(biāo)簽s’所圖示的后處理狀態(tài)。雖然從S到s’的改變由位于等待線條與虛線軟路徑分組IS之間的帶有實線箭頭的實線簡單地描繪,但是將理解,執(zhí)行該處理的資源是執(zhí)行處理級5中的硬路徑分組IH的處理的相同資源。[0029]也就是說,處理級5涉及意圖為以有界時延(B卩,沒有延遲)來處理硬路徑分組IH的資源,但是思想是,只要對硬路徑分組IH的處置沒有不利地被影響,這些相同的資源就將被用來處理軟路徑分組1S。[0030]為了這個目的,根據(jù)示例實施例,設(shè)備300被示出并且軟路徑4向處理級5發(fā)出請求(圖1中的“Req”)。這些請求背后的概念是,它們將在處理級5的自由裁量下被處置。在下面,各種其他方法也被討論,但是思想是處理級5的處理單元處于最佳位置,以確定它們各自的處理工作負(fù)荷是否準(zhǔn)許代表軟路徑分組IS來請求對該處理的處置。[0031]一旦對給定的軟路徑分組的處理被執(zhí)行,經(jīng)處理的分組S’可以以適合于情形的任何方式而出口或者被處理。[0032]更深地查看針對硬路徑分組的有界時延和針對軟路徑分組的盡力而為處理的含意,導(dǎo)致了在討論繼續(xù)時要記住的一些要點。首先,延遲在硬路徑中不能被容忍,并且因此很有可能的是,時不時地,硬路徑中的少許分組將被丟棄而結(jié)束,使得絕大多數(shù)的分組能夠在所準(zhǔn)許的時延的界限內(nèi)遍歷硬路徑。另一方面,因為關(guān)于軟路徑分組何時將被處理沒有特定的時間方面的預(yù)期,所以軟路徑分組將需要被丟棄將是相對罕見的。冒著過于概括的風(fēng)險,可以說(一般而言)硬路徑提供有保證的定時但不提供有保證的遞送,而軟路徑提供有保證的遞送但不提供有保證的定時。[0033]將這個一般性的框架記在心上,下面的討論將進(jìn)而聚焦于:(I)本文件的剩余部分中所使用的術(shù)語,(2)僅有硬路徑實施方式的網(wǎng)絡(luò)設(shè)備(即,僅具有硬路徑的網(wǎng)絡(luò)設(shè)備),(3)僅有軟路徑實施方式的網(wǎng)絡(luò)設(shè)備,以及(4)具有硬路徑和軟路徑兩者的“混合”網(wǎng)絡(luò)設(shè)備。本討論還將從概念的轉(zhuǎn)移到具體的,從而提出多個教導(dǎo)性的示例實施例。[0034]術(shù)語[0035]本討論的這個章節(jié)闡述了將被用來解釋下面的示例實施例的技術(shù)術(shù)語。[0036]本公開內(nèi)容的特定實施例涉及一種具有網(wǎng)絡(luò)處理器和/或分組處理器的網(wǎng)絡(luò)設(shè)備,這些網(wǎng)絡(luò)處理器和/或分組處理器包括被配置為處理網(wǎng)絡(luò)分組的流的多個可編程處理單元。可能有利地被采用的這種處理單元的一個示例是從MARVELLTECHNOLOGYGROUP,LTD可得到的PACKETINSTRUCT1NSETCOMPUTER(PISC)處理器。[0037]在一種示例實施例中,這些處理單元被布置為管道線,該管道線具有串行布置的可編程處理級,這些可編程處理級被配置為對分組流中的分組執(zhí)行特定于分組的處理操作。一個或多個引擎訪問點(EAP)被包括在這些可編程處理單元之間的管道線中,并且被配置為從該處理管道線外部的一個或多個引擎(諸如查找表、加速器等)獲得專門的資源。[0038]該管道線經(jīng)由串行布置的EAP而與一個或多個引擎交互。例如,EAP能夠被用來代表分組向引擎發(fā)送請求,并且接收對應(yīng)的響應(yīng),該對應(yīng)的響應(yīng)能夠被集成至該分組中。代表分組所發(fā)送的該請求被用于各種分組處理操作,諸如訪問查找表和數(shù)據(jù)庫,使用在該管道線之外的該引擎的共享資源和加速器來執(zhí)行這些分組處理操作。[0039]在一種示例實施例中,分組流包括硬路徑分組和軟路徑分組兩者。很好地適合于在硬路徑中處置的分組類型的一個示例是數(shù)據(jù)分組。數(shù)據(jù)分組通常將是最常見并且最時間敏感的網(wǎng)絡(luò)分組類型,并且數(shù)據(jù)的快速移動在任何網(wǎng)絡(luò)中都是值得的目標(biāo)。[0040]合情理地在軟路徑中被處置的分組類型的一個示例是控制消息(CM)分組。在一種示例實施例中,CM分組通常不需要以有保證速率和有界時延來處理,并且因此很好地適合于在盡力而為的基礎(chǔ)上被處置,以便于不擾亂硬路徑分組的有保證速率和有界時延。[0041]相比于數(shù)據(jù)分組,例如因為一些CM分組執(zhí)行更加耗時的表格管理操作,CM分組通常較不頻繁地請求對引擎的訪問。因此,為了最大化吞吐量,數(shù)據(jù)分組被允許盡可能多地使用引擎的容量。另外,在一些實施例中,因為CM分組相對于數(shù)據(jù)分組是比較罕見的,所以預(yù)留弓I擎容量不是僅被分配來服務(wù)這些分組。[0042]容易理解為何數(shù)據(jù)分組一般很好地適合于經(jīng)由硬路徑來處置,并且容易理解為何CM分組一般很好地適合于經(jīng)由軟路徑來處置。因此,下面的討論將經(jīng)常使用術(shù)語“數(shù)據(jù)分組”替代術(shù)語“硬路徑分組”,并且使用術(shù)語“CM分組”替代術(shù)語“軟路徑分組”。然而,將理解,這些術(shù)語僅被用來簡化讀者的理解??赡艽嬖谟衅渲蠧M分組應(yīng)當(dāng)經(jīng)由硬路徑而被處置的情形,并且可能存在有其中數(shù)據(jù)分組應(yīng)當(dāng)經(jīng)由軟路徑而被處置的情形。此外,存在眾多本文沒有具體討論的其他分組類型,并且存在眾多可能在未來被開發(fā)的分組類型。[0043]因此,下面按照術(shù)語“數(shù)據(jù)分組”和“CM分組”所討論的示例實施例不應(yīng)當(dāng)在限制性的意義上而是僅在教導(dǎo)性的意義上被解釋。[0044]硬實時系統(tǒng)[0045]硬實時系統(tǒng)具有一個或多個硬路徑,每個硬路徑具有固定的最大時延和有保證的性能。這意味著,流經(jīng)硬實時系統(tǒng)的分組將在某個時間量內(nèi)被處理,該時間量在系統(tǒng)設(shè)計和/或生產(chǎn)期間的某個階段被確定。因此,硬路徑中的每個硬路徑具有來自引擎的資源之中的固定資源分配,以便于以有保證速率和有界時延來提供有保證的性能。[0046]圖2圖示了根據(jù)本公開內(nèi)容的示例實施例的硬實時系統(tǒng)100。硬實時系統(tǒng)100包括設(shè)置在網(wǎng)絡(luò)處理器單元或分組處理器單元中的管道線處理器10,在一些實施例中,網(wǎng)絡(luò)處理器單元或分組處理器單元是網(wǎng)絡(luò)設(shè)備(諸如交換機)的一部分。如圖2中所看到的,分組處理器10處于與管道仲裁器20和引擎30-1至30-n的通信中,引擎30_1至30_n進(jìn)而通過總線的方式而耦合至分組處理器10。管道線處理器10通過位于管道線處理器10的各個級處的引擎訪問點(EAP)34-1...34-n而與引擎30交互。如果EAP34-1...34_n沒有相互區(qū)分,則它們簡單地被稱為“ΕΑΡ34”,此外EAP34的數(shù)量可以不同于引擎30的數(shù)量。管道線10包括一個或多個相關(guān)聯(lián)的處理器核心14-1...14-η,如果沒有相互區(qū)分則它們簡單地被稱為“處理器核心14”。在一種實施例中,這些處理核心是可編程核心,諸如PISC處理單元,這些可編程核心被配置為對流經(jīng)該管道線的分組執(zhí)行基于可編程上下文的處理操作。EAP34是用于分類任務(wù)的專門I/O單元,并且每個都能夠從引擎30請求資源以處理分組并且接收對應(yīng)的響應(yīng),能夠使用相關(guān)聯(lián)的處理器核心14-1...14-η來將該對應(yīng)的響應(yīng)集成在該分組中。在一些實施例中,EAP34還由它自己來更新分組上下文而無需對處理器核心14的使用。[0047]更具體地,EAP34將對存儲在引擎30的嵌入式或外部存儲器(TCAM、SRAM、DRAM等)中的資源(例如,查找表、控制表、轉(zhuǎn)發(fā)表、專用加速器等)的訪問統(tǒng)一,并且接收由相關(guān)聯(lián)的處理核心14-1...14-n在分組流經(jīng)管道線10時用來處理分組的上下文/代碼。[0048]在這個討論中,如果引擎30-1至30-n沒有相互區(qū)分,則它們簡單地在一般意義上被稱為“引擎30”。管道仲裁器20從流量管理器40接收分組,這些分組大多數(shù)是數(shù)據(jù)分組并且還包括一些CM分組,諸如非可執(zhí)行的控制消息(nXCM),流量管理器40將這些分組存儲在緩沖器44中。如本文所使用的,術(shù)語流量管理器40是一種排隊系統(tǒng),該排隊系統(tǒng)能夠像通向高級外部緩沖系統(tǒng)的先入先出(FIFO)緩沖器一樣簡單,該高級外部緩沖系統(tǒng)包括隊列、調(diào)度層次、以及如下的緩沖器,該緩沖器具有比管道仲裁器20和管道線10中的那些的容量更大的容量。流量管理器40在本文中還可以被稱為出口前端。[0049]在一種實施例中,管道仲裁器20在分組從流量管理器被接收時將它們存儲在緩沖器26中、速率整形(即,封包速率整形)并且調(diào)度這些分組以用于使用分組整形器24來處理、并且將這些分組饋送給管道線處理器10,在管道線處理器10處它們被處理。更具體地,在一種實施例中,在被用來驅(qū)動各個可編程處理核心的代碼被匯編為可執(zhí)行計算機指令的這樣的時刻,速率整形器24通過總計各引擎的最壞情況預(yù)訂并且確保引擎的最壞情況預(yù)訂小于其實際容量,來檢查引擎30的最大利用率。這些經(jīng)速率整形和調(diào)度的分組然后以有保證速率和有界時延而遍歷通過管道線處理器10。這些經(jīng)速率整形和調(diào)度的分組在硬實時系統(tǒng)中能夠被丟棄,以便提供有保證速率和有界時延。更具體地,在當(dāng)硬路徑具有有保證的資源時的正常情況中,流經(jīng)硬路徑的分組的遞送、吞吐率和有界時延將被保證。然而,如果資源中的任何資源被超額分配用于硬路徑,則硬路徑分組可以被丟棄以便于實現(xiàn)對于大多數(shù)分組的保證。相對照地,如果資源被超額分配用于軟路徑,則分組將不被丟棄。替代地,它們被緩沖并且等待資源變?yōu)榭捎谩0050]在一些示例實施例中,管道線處理器10由一個或多個分組指令集計算機(PISC)處理器單元所形成,PISC處理器單元中的每個PISC處理器單元都接收至少經(jīng)部分處理的分組、處理上下文、以及適合的代碼,以執(zhí)行接下來的處理操作。在一種實施例中,PISC處理器是被具體設(shè)計用于分組處理的處理器核心,但是本公開內(nèi)容不必然被限制于此并且管道線10在一種實施例中被實施為一個或多個通用CPU或處理器核心。在硬實時系統(tǒng)100中,分組不能被重新排序,因為它們就像前進(jìn)通過具有有保證速率和有界時延的固定長度的先入先出(FIFO)設(shè)備那樣行進(jìn)通過管道線處理器10,直到它們到達(dá)信宿50,在各種實施例中,信宿50是另一個管道線處理器、PISC、EAP等適當(dāng)設(shè)備。例如,在一種實施例中,在每個時鐘周期中,管道線處理器10的硬路徑中的所有分組向前移動一個級,到下一個處理器核心14或ΕΑΡ34,在該下一個處理器核心14或ΕΑΡ34處,后續(xù)的處理操作被執(zhí)行。在這個示例中,在處理器核心14處所執(zhí)行的指令總是被執(zhí)行以在單個時鐘周期內(nèi)完成,并且每個指令能夠并行地執(zhí)行多至某個數(shù)量的(例如,四個)操作。分組然后繼續(xù)至信宿50。[0051]然而,如上面所提到的,在一種實施例中,硬實時系統(tǒng)100中存在多個硬路徑。這些多個硬路徑并行地處理分組,并且對于與一個硬路徑相關(guān)聯(lián)的分組,有可能傳遞與硬實時系統(tǒng)100內(nèi)的另一個硬路徑相關(guān)聯(lián)的分組。[0052]因此,如上面所描述的,硬實時系統(tǒng)100以對應(yīng)于例如導(dǎo)線速度(wirespeed)的有保證速率來處理分組、保證分組順序、具有有限量的緩沖器、并且假定最壞情況時延。注意至IJ,在一種實施例中,僅頭部或者表示分組的其他描述符數(shù)據(jù)結(jié)構(gòu)傳遞通過管道線處理器10。此外,平均地說,在具有基于例如它們各自的大小或長度的不同處理要求的分組的典型混合中。通過示例的方式,具有60字節(jié)的大小的分組具有比具有1500字節(jié)的大小的分組更高的分組速率。這些分組可能具有相同的處理要求,例如程序,但是這些分組的頻率是不同的。例如,如果有許多長分組,則該處理大多是空閑的。在各種實施例中,因為對于一些分組需要維持導(dǎo)線速度處理,所以由引擎30所提供的資源的相當(dāng)大部分可能在任何給定時刻都不被使用。作為結(jié)果,未使用的資源可用于處理相對罕見的CM分組,以及非時限性的其他類似分組。[0053]軟實時系統(tǒng)[0054]在一種實施例中,軟實時系統(tǒng)具有一個或多個軟路徑,每個軟路徑都具有非保證的速率和非有界的時延、以及不被保證的概況描繪(profiling)。這意味著,流經(jīng)軟實時系統(tǒng)的分組將在某個時間被處理,但是因為不存在有保證速率并且不存在有界時延,所以分組將被處理的時間是不確定的。也就是說,使用可用資源在盡力而為的基礎(chǔ)上處理流經(jīng)軟實時系統(tǒng)的分組,而不負(fù)面地影響例如硬路徑中的處理。[0055]圖3圖示了根據(jù)本公開內(nèi)容的示例實施例的軟實時系統(tǒng)200。軟實時系統(tǒng)200包括上面所描述的管道線處理器10、管道仲裁器20、引擎30、流量管理器40、以及信宿50,因此對它們的多余描述被省略。[0056]一般而言,分組被存儲在流量管理器的先入先出(FIFO)緩沖器上,直到它們由流量管理器40輸入至管道線,并且從處理器到處理器地被傳遞。此外,當(dāng)分組到達(dá)EAP34,并且需要來自引擎30的資源時,一種通用過程隨即發(fā)生。也就是說,EAP34請求該資源并且繼續(xù)緩沖該分組,直到引擎用信號通知可用性。一旦引擎用信號通知可用性,EAP34然后能夠從引擎30獲得該資源。[0057]因為軟實時系統(tǒng)200不具有有保證速率和有界時延,并且軟實時系統(tǒng)中的分組將不被丟棄,所以可能存在如下的場合,在該場合中,EAP34的軟路徑緩沖器18-1...18-n變?yōu)槌錆M。因此,雖然硬實時系統(tǒng)能夠丟棄分組以便提供有保證速率和有界時延,但是軟實時系統(tǒng)沒有被設(shè)計為丟棄分組并且將緩沖分組直到它能夠被處理。軟路徑緩沖器18-1...18-n在不被個別指代時簡單地被稱為“軟路徑緩沖器18”。[0058]歸因于軟路徑緩沖器18變?yōu)槌錆M的可能性,在一些示例實施例中,EAP34向在前的EAP34并且向管道仲裁器20提供背壓反饋(由虛線箭頭指示)。此外,因為來自管道線處理器10的背壓信號促使管道仲裁器20停止向軟路徑發(fā)送分組,所以管道仲裁器20的緩沖器28也可能變得充滿。因此,管道仲裁器20也能夠向流量管理器40提供背壓信號,告知流量管理器40停止向軟路徑發(fā)送分組。在流量管理器40不向軟路徑發(fā)送分組的時間期間,分組累積在流量管理器40的深軟路徑緩沖器46中。[0059]在一些示例實施例中,背壓信號經(jīng)由分離的背壓總線(未示出)而被提供在軟實時系統(tǒng)200中。[0060]在一些示例實施例中,使用基于信用點(credit)的系統(tǒng)而不使用背壓的其他流控制方案被使用。這些基于信用點的系統(tǒng)稍后被描述。[0061]在軟實時系統(tǒng)200中,不像上面所描述的硬實時系統(tǒng)100和傳統(tǒng)的軟路徑,管道仲裁器20不試圖預(yù)測何時將存在允許CM分組被捎帶并且與數(shù)據(jù)分組一起在帶內(nèi)行進(jìn)的間隙。也就是說,因為不存在有保證速率和有界時延,所以管道仲裁器20不對分組速率整形,而是響應(yīng)于接收到指示管道線可用于處理接下來的分組的信號而將它們發(fā)送給管道線10用于處理。[0062]盡管管道仲裁器20不需要為了它自己的目的而速率整形和調(diào)度分組,但是有可能當(dāng)一些其他考慮要求它時添加速率整形和/或調(diào)度。然而,為了支持多個硬路徑和多個軟路徑,管道仲裁器20應(yīng)當(dāng)調(diào)度分組。如果存在背壓信號被解除聲明(de-asserted)或者硬路徑中的任何硬路徑中沒有分組,則分組能夠被調(diào)度到軟路徑中。當(dāng)存在多個軟路徑時,管道仲裁器40通過例如輪詢調(diào)度方案來為不同的軟路徑調(diào)度分組。[0063]當(dāng)沒有被背壓信號禁止時,管道仲裁器40將分組饋送給管道處理器10。進(jìn)一步地,因為軟路徑不具有硬路徑的固定的資源分配,所以軟路徑在引擎的資源變?yōu)榭捎脮r使用它們。[0064]然而,在僅有軟路徑被使用的情況中,不可能給出除了統(tǒng)計性能之外的任何速率/時延保證。[0065]混合設(shè)備[0066]因此,根據(jù)一種示例實施例,實現(xiàn)有一種混合系統(tǒng),該混合系統(tǒng)包括組合在相同資源上的上面所提到的硬實時系統(tǒng)100和上面所提到的軟實時系統(tǒng)200兩者。該混合系統(tǒng)給出了兩個系統(tǒng)的最佳并且通過遍歷硬路徑而允許需要保證的程序(例如,經(jīng)承諾的分組程序(CPP)的程序)得以實現(xiàn),同時還在引擎30的資源變得經(jīng)由軟路徑可用時允許不需要保證的程序(例如,過度分組程序(EPP)的程序)來訪問引擎30的資源。作為結(jié)果,硬路徑能夠減少歸因于偶爾高成本的CM分組的額外時延/緩沖,并且軟路徑具有用于CM分組的簡單得多的調(diào)控機制。[0067]混合系統(tǒng)[0068]圖4圖示了示例混合系統(tǒng)300?;旌舷到y(tǒng)300的引擎30具有用于硬實時系統(tǒng)100并且用于軟實時系統(tǒng)200的分離的(邏輯)緩沖系統(tǒng)(隊列)。例如,引擎30-1包括本地硬時間緩沖器32-1H和本地軟時間緩沖器32-1S,并且引擎30中的每個引擎都包括各自的本地硬時間緩沖器和各自的本地軟時間緩沖器。[0069]在該混合系統(tǒng)中,硬實時系統(tǒng)100相對于軟實時系統(tǒng)200具有優(yōu)先性。這是因為硬實時系統(tǒng)100具有有保證速率和有界時延,而軟實時系統(tǒng)200不具有有保證速率和有界時延。[0070]用于路徑選擇的機制[0071]流量管理器40將不需要有保證速率和有界時延的分組定向至管道仲裁器20中的軟路徑緩沖器28。這些分組主要是CM分組,然而,本公開內(nèi)容不限制于此,并且軟路徑緩沖器28在一種示例實施例中也接收數(shù)據(jù)分組。類似地,流量管理器40將需要保證的分組定向至管道仲裁器20中的硬路徑緩沖器26。這些分組主要是數(shù)據(jù)分組,然而,本公開內(nèi)容不限制于此,并且硬路徑緩沖器26在一種示例實施例中也接收CM分組。[0072]在一種示例實施例中,流量管理器40是具有被映射至出口端口的多個隊列的高級緩沖器系統(tǒng)。在被映射至出口端口的隊列中所存儲的所有分組都將在相同的軟路徑或相同的硬路徑中被處理。也就是說,在流量管理器40的出口端口與軟路徑和硬路徑的輸入之間存在映射。在一些實施例中,流量管理器40從經(jīng)由入口端口接收分組,將這些分組存儲在它的緩沖器系統(tǒng)中,并且將這些分組傳輸給管道仲裁器30。流量管理器40不需要做任何處理選擇,因為處理選擇已經(jīng)由從一個入口端口到隊列的靜態(tài)映射完成,或者已經(jīng)由預(yù)分類器通過關(guān)于分組的查找表(在例如TCAM中)在流量管理器40中選擇一個隊列而完成。[0073]流量管理器40僅選擇(調(diào)度)在它的緩沖器系統(tǒng)/隊列中的哪些分組要發(fā)送給出口端口,而不考慮由這些分組所要求的處理類型。[0074]在另一個示例實施例中,流量管理器40包括用于硬路徑和軟路徑中的每個路徑的先入先出(FIFO)緩沖器。[0075]在一種示例實施例中,流量管理器40使用各種技術(shù)將分組定向至相應(yīng)的硬路徑和軟路徑,這些技術(shù)諸如靜態(tài)選擇、依據(jù)服務(wù)類的動態(tài)選擇、以及依據(jù)流量頻率的動態(tài)選擇,下面描述它們中的每一個。[0076]在靜態(tài)選擇技術(shù)中,根據(jù)一種示例實施例,一經(jīng)分組到達(dá)流量管理器40,就確定該分組是需要發(fā)送給硬路徑還是發(fā)送給軟路徑。具體地說,用于硬路徑的候選包括需要有保證的導(dǎo)線速度性能的那些分組,或者需要在規(guī)定時間內(nèi)被執(zhí)行的分組。這些候選的示例包括數(shù)據(jù)流量、普通0AMping程序、以及一些管理分組,這些管理分組用于執(zhí)行諸如表格擦除(tablescrub)的程序或者用于檢測超時的程序。[0077]用于軟路徑的候選包括簡單地需要“盡力而為”性能的那些分組。這些候選的示例包括管理分組,諸如更新表格條目的分組或者讀取計數(shù)器的分組。[0078]在依據(jù)服務(wù)類的動態(tài)選擇中,根據(jù)一種示例實施例,存在一種使用管道線處理器10的分類。在通過管道線處理器10的分組的第一傳遞中,數(shù)據(jù)流量被用于該分組的分類,例如,硬路徑用于導(dǎo)線速度。該分組通過另一個管道線處理器50而被傳遞或者通過相同的管道線處理器10而被循環(huán),并且取決于該早先的分類而進(jìn)入硬路徑或軟路徑。此外,如管道線的一組TCAM或SIP(例如,硬編碼的交換機)能夠執(zhí)行該分類。[0079]第二傳遞中用于硬路徑的候選包括具有速率敏感和時延敏感的服務(wù)類的分組。示例包括系統(tǒng)控制分組、V0IP、游戲、會議等。第二傳遞中用于軟路徑的候選包括既不速率敏感也不時延敏感的服務(wù)類的分組。示例包括VoD、數(shù)據(jù)流量、清掃器類分組等。[0080]在依據(jù)流量頻率的動態(tài)選擇中,根據(jù)一種示例實施例,存在與上面關(guān)于依據(jù)服務(wù)類技術(shù)所描述的分類相類似的分類。第二傳遞中用于硬路徑的候選包括大塊流量,例如,層2(L2)以太網(wǎng)流量。第二傳遞中用于軟路徑的候選包括應(yīng)當(dāng)被管理但是人們可能不想以優(yōu)化的資源來提供的相對罕見的流量類型,例如,層3(L3)以太網(wǎng)流量。[0081]用于請求資源的機制[0082]在硬路徑中,當(dāng)分組到達(dá)ΕΑΡ的緩沖器16時,這些ΕΑΡ簡單地代表這些分組來請求資源。這些請求被存儲在引擎的硬路徑緩沖器32-Η中,并且它們按照它們由引擎30接收的順序而被執(zhí)行。[0083]相對照地,當(dāng)不存在背壓信號時,例如,當(dāng)背壓信號被解除聲明時,軟路徑緩沖器28將存儲在其上的分組推送給管道線處理器10。一經(jīng)到達(dá)管道線處理器10,這些分組就被存儲在ΕΑΡ34的軟路徑緩沖器18中。響應(yīng)于接收到軟路徑緩沖器18中的分組,ΕΑΡ34向引擎30中的一個或多個引擎發(fā)送“許可請求(requesttogrant)”。響應(yīng)于接收到該許可請求,引擎30確定它們是否具有可以被使用而不擾亂硬路徑中的分組流的可用資源。響應(yīng)于確定存在可以被利用而不擾亂硬路徑中的分組流的可用資源,引擎30向ΕΑΡ34發(fā)送“許可”。響應(yīng)于從該引擎30接收到該許可,ΕΑΡ34然后從發(fā)送該許可的引擎請求資源,并且該請求被存儲在該引擎的軟路徑緩沖器32-S中并且按照它由引擎30所接收的順序而被執(zhí)行。該“許可請求”可以被認(rèn)為是資源請求,并且“許可”可以被認(rèn)為是資源許可。[0084]引擎30通過例如緩沖器填充程度、信號量、未完成的信用點(outstandingcredits)、其他本地資源等中的至少一項而基于其當(dāng)前的擁塞狀況來確定它們是否具有可用資源,并且能夠因此關(guān)于它們是否具有可用資源而快速地做出正確決定。因此,不需要嘗試從管道仲裁器20來預(yù)測引擎擁塞。作為結(jié)果,來自所有EAP34的未使用帶寬能夠可用于軟路徑。[0085]從軟路徑接收的許可請求在引擎處被入隊在分離的(多個)隊列中。如上面所描述的,這些引擎每個都包括硬路徑緩沖器32-H和軟路徑緩沖器32-S。換句話說,在一種實施例中,軟路徑具有與硬路徑的隊列結(jié)構(gòu)相平行的隊列結(jié)構(gòu)。這使得用以消耗引擎30的資源的請求能夠?qū)τ谲浡窂蕉3执龥Q,而不擾亂硬路徑中的分組流。[0086]因為引擎30將它們的資源分發(fā)給EAP34,所以它們每個都充當(dāng)用于EAP34的代理(broker)。引擎30能夠以若干不同的方式來調(diào)控它們資源的分發(fā)。[0087]在一個示例實施例中,引擎30通過經(jīng)由分離的背壓總線(未示出)向EAP34中的每個EAP提供背壓信號,來調(diào)控它們資源的分發(fā)。因此,在這個實施例中,引擎30需要每EAP—個隊列或者對隊頭(head-of-line)阻塞的接受。因此,對于這些隊列,存在由于不可停止的數(shù)據(jù)而變得龐大的潛在性,并且速率取決于往返。也就是說,引擎30實現(xiàn)了更高的緩沖器填充,例如,從而多個EAP34可以在同一時鐘周期期間發(fā)送同時的請求。如果EAP34與引擎30之間的運輸時延多于一個時鐘周期,則在背壓信號能夠被聲明以便于停止EAP發(fā)送更多分組(例如,“不可停止的數(shù)據(jù)”)之前,對引擎34的多于一個請求可能被發(fā)送。[0088]在另一個示例實施例中,引擎30經(jīng)由信用點來調(diào)控它們資源的分發(fā)。這些信用點對應(yīng)于在引擎30處的緩沖器位置,并且速率取決于EAP34被給予的信用點的量。例如,EAP34請求一個或多個信用點,然后當(dāng)引擎能夠向請求的EAP34授予信用點時它如此做。接著,當(dāng)EAP34接收到該信用點時,它向引擎30發(fā)送對資源的請求。在被消耗時,該引擎將信用點返回給EAP34。這能夠通過利用響應(yīng)或者經(jīng)由分離總線來捎帶該信用點而實現(xiàn)。[0089]在一個示例實施例中,如果引擎30的軟緩沖器32-S中有緩沖器空間,則引擎30向請求了信用點的(Sf)EAP34授予信用點。信用點對應(yīng)于軟請求緩沖器中的條目。引擎30(在一個實施例中是該引擎)具有用于每個EAP34(或類似客戶端)的計數(shù)器(未示出),以便保持跟蹤每個EAP34當(dāng)前所需要的信用點的數(shù)量。EAP34可以通過分離總線上的信號來從引擎30請求信用點(通過例如+1來增加相關(guān)聯(lián)的計數(shù)器的計數(shù))。引擎30也可以具有代理(未示出),該代理在請求了信用點的所有EAP34之中的輪詢中選擇哪個EAP34來授予信用點。本公開內(nèi)容不限制于輪詢方案,并且也能夠包括加權(quán)的輪詢方案、大多數(shù)未完成信用點優(yōu)先方案(mostoutstandingcreditsfirstscheme)(例如,最大隊列優(yōu)先)、嚴(yán)格優(yōu)先級方案等。[0090]當(dāng)EAP34被選擇時,它的請求計數(shù)器減少例如-1。引擎30可以向同一EAP34或不同的EAP34授予多個信用點,以便得到更高的吞吐量。當(dāng)這些引擎請求被引擎30消耗和處理時,它釋放軟緩沖器32-1,由此使得這些信用點再次可用于由代理分發(fā)。引擎30利用通向EAP34的分離總線上的信號來發(fā)送信用點許可。計數(shù)器增加例如+1,這意味著EAP34被準(zhǔn)許從該引擎請求該數(shù)量的引擎資源,并且當(dāng)該請求實際上被傳輸給引擎30時,該計數(shù)器減少相同量,例如,-1。[0091]例如,代理保持跟蹤可用的信用點。代理通過具有與軟緩沖器中的條目的數(shù)量相對應(yīng)的X個信用點而開始,并且當(dāng)代理向EAP34授予信用點時,可用的信用點減少。代理不會授予信用點使得可用的信用點變?yōu)樨?fù)的。當(dāng)引擎的軟請求緩沖器32-S中所存儲的引擎請求被引擎30消耗時,它釋放軟請求緩沖器32-S中的一個條目。然后代理的可用信用點的數(shù)量增加,并且該信用點再次可用于由該代理分發(fā)給EAP34中的一個ΕΑΡ。[0092]在另一個示例實施例中,引擎30經(jīng)由使用分離請求/許可總線(未示出)的請求許可方案,來調(diào)控它們資源的分發(fā)。例如,EAP請求多個信用點,并且如果引擎能夠接受這些請求而不擾亂硬路徑上的分組流,則該引擎向該EAP授予多個信用點。在這個示例實施例中,速率取決于往返時間,能夠通過一次授予多個信用點來改進(jìn)往返時間。[0093]在這些實施例中,如果這些信用點根據(jù)當(dāng)前需求而被分發(fā),則當(dāng)與有關(guān)技術(shù)相比較時,引擎30的軟路徑緩沖器32-S和引擎容量可以更高效地被利用。如所描述的,根據(jù)這些示例實施例的引擎30能夠表現(xiàn)得像代理并且根據(jù)需求來分發(fā)它們各自的資源容量。[0094]另外,在一些示例實施例中,引擎30通過適配向EAP34中的每個EAP所授予的信用點的量,來調(diào)控速率。在這些實施例中,適應(yīng)性方案基于EAP34的特定發(fā)送頻率。例如,通過經(jīng)由信用點總線(未示出)來發(fā)送定期的信用點更新(其中當(dāng)新的更新到達(dá)時,未被使用的信用點丟失)或者通過發(fā)送定期適配{+,_,0}。[0095]此外,在一種示例實施例中,專門的請求許可引擎被使用,以通過例如以輪詢類型方式在當(dāng)前請求對請求的許可的所有EAP34之中許可請求而實施該代理。[0096]在一種替換實施例中,提供有一種動態(tài)許可請求方案。在這個實施例中,如果EAP34需要代表軟路徑中的分組向引擎30發(fā)送N個請求,則EAP將從引擎30請求N個對請求的許可。引擎30然后將基于它的當(dāng)前處理負(fù)載而向EAP34發(fā)送多至N個的對請求的許可。響應(yīng)于接收到該多至N個的對請求的許可,該EAP將該許多請求傳輸給引擎30,其中它們被存儲在軟路徑緩沖器32-S中,直到它們能夠被執(zhí)行而不擾亂硬路徑中的分組流。[0097]為了更好地理解這個動態(tài)許可請求方案,出于解釋的簡單性,假設(shè)EAP34一次僅能夠請求I個信用點。因此,EAP34在它請求新的信用點之前需要使用該信用點。[0098]在一種示例實施例中,EAP34基于經(jīng)許可的請求(N)而保持跟蹤每引擎的狀態(tài)。當(dāng)所有經(jīng)許可的請求被發(fā)送給EAP34時,然后EAP請求新的信用點。在有多個信道的情況中,EAP34代表軟路徑中的分組向多個引擎30提交許可請求。在這種情況中,該EAP在發(fā)送請求之前需要從向其提交許可請求的所有引擎30獲得許可,或者該請求一旦被許可EAP34就發(fā)送該請求并且然后在前進(jìn)至管道線處理器10的下一級之前等待所有的響應(yīng)。在前進(jìn)至管道線處理器10的下一級之前等待所有的響應(yīng),通過將信用點被占用的時間減少到盡可能地少,而更好地利用了資源。在有多個引擎30的情況中,如果一次僅有一個請求,則僅有一個每信道的狀態(tài)并且簡單的解決方案是一次僅授予一個信用點。這是因為在引擎使用期間不需要保持跟蹤后來的分組。因為這個動態(tài)許可請求方案中的EAP不能實際上不具有某事物要發(fā)送給引擎30而請求信用點以便于避免丟失信用點,所以這個方案不需要支持每引擎30的分離的N個狀態(tài)。[0099]為了更好地從引擎30的視點來理解該動態(tài)許可請求方案,假設(shè)對每個引擎30有多個未完成的信用點,因此克服了信道總線時延并且由此僅受到軟路徑的請求許可時延的限制。關(guān)于每引擎的狀態(tài),如果M是可用信用點的當(dāng)前數(shù)量(其對于填滿軟路徑緩沖器32-S是不受限制的)并且N是當(dāng)前未完成的所授予的信用點的數(shù)量,則當(dāng)一個請求由引擎30消耗時,Μ增加1。類似地,當(dāng)一個請求從ΕΑΡ34被接收時,則Μ減少1。當(dāng)一個信用點由引擎30授予時,則Ν增加1,并且當(dāng)一個請求由引擎30從該ΕΑΡ接收到時,則Ν減少1。[0100]基于上述,在這個方案中Μ應(yīng)當(dāng)始終大于或等于Ν,除了當(dāng)Μ小于0時,這意味著有存在緩沖器溢出,以及當(dāng)Ν小于0時,這意味著已經(jīng)存在未預(yù)期的請求。[0101]當(dāng)ΕΑΡ34想要成為請求調(diào)度的一部分時,則它設(shè)置待決的請求標(biāo)記。為了理解這個方案中的每ΕΑΡ34的狀態(tài),假設(shè)G是未完成的經(jīng)許可的請求。如果一個請求被許可,則G增加1。如果一個請求被接收,則G減少1。除了當(dāng)G小于零時(意味著已經(jīng)存在未預(yù)期的請求),Ν等于G。[0102]在一個示例實施例中,引擎使用超時(Τ)來保護(hù)免于丟失請求。當(dāng)新的請求被許可時,Τ是MAX。MAX的值是任意設(shè)定的,以便于當(dāng)然地成為一種誤差,但不是太大以致于將發(fā)生不穩(wěn)定。T每個時鐘周期減少例如1。[0103]當(dāng)Μ大于0時,則引擎能夠許可請求,并且為了履行請求,根據(jù)一種示例實施例,在具有待決請求的ΕΑΡ34之間實施輪詢。[0104]在另一個示例實施例中,存在一種靜態(tài)的基于信用點的軟路徑。在這個實施例中,軟路徑依賴于靜態(tài)信用點系統(tǒng),在靜態(tài)信用點系統(tǒng)中,信用點在編譯時間被分發(fā)。對于引擎30,Β等于與軟路徑緩沖器32-S相對應(yīng)的信用點的總數(shù)量。在編譯時間,這些信用點C在ΕΑΡ之間被分發(fā),使得C的總數(shù)小于Β,由此防止軟路徑將干擾硬路徑中的分組流的可能性。在一個示例性實施例中,ΕΑΡ一次被指配多于一個信用點以得到高吞吐量并且由此克服信道總線時延。[0105]多個流[0106]如所描述的,硬路徑它自己像常規(guī)的處理管道那樣工作,并且因此硬實時系統(tǒng)100不被要求具有多于一個硬路徑。然而,被理解的是,本公開內(nèi)容不限制于此,并且在示例實施例中,如由在圖1和3中從流量管理器40通過硬實時系統(tǒng)100向信宿流動的多個線條所指示的,存在多于一個硬路徑。[0107]另一方面,軟路徑從例如用于不同應(yīng)用的不同流受益,例如,如果不同應(yīng)用使用不同的引擎30,則它們能夠相互獨立地處理。也就是說,根據(jù)示例實施例,如由在圖3中從流量管理器40通過軟實時系統(tǒng)200向信宿50流動的多個線條所指示的,存在多于一個軟路徑。[0108]在示例實施例中,本文所描述的混合系統(tǒng)300被具體化為片上系統(tǒng)(S0C),其中上面所描述的組件中的每個組件被提供在同一芯片上。在示例實施例中,這些混合系統(tǒng)被具體化為S0C,其中至少管道線處理器10和引擎30被提供在同一芯片上并且沒有被提供在該同一芯片上的其他組件被提供作為分立組件、作為其他片上系統(tǒng)、或者它們的組合。根據(jù)示例實施例,這些混合系統(tǒng)300被具體化為經(jīng)由內(nèi)部網(wǎng)絡(luò)(總線結(jié)構(gòu)/系統(tǒng)總線)等而連接的完全分立的組件。[0109]圖5圖示了根據(jù)本文所描述的示例實施例的示例方法的流程圖。在S100處管道仲裁器20接收分組,并且在S105處確定該分組是否將在硬路徑中被處理。[0110]在S100處,響應(yīng)于確定該分組將在硬路徑中被處理,管道仲裁器20將該分組發(fā)送給管道線10的硬路徑。在S115處,響應(yīng)于該分組到達(dá)管道線10的硬路徑,ΕΑΡ34從引擎30請求資源以便處理該分組。在S120處,響應(yīng)于從引擎30接收到資源,該EAP利用對處理器14的使用來處理該分組。在步驟S125處,如果管道線10中存在另一個處理級,則該過程開始于S115而重復(fù)。否則,如果不存在下一級,則經(jīng)處理的分組被發(fā)送給信宿50并且該過程對于該管道線10結(jié)束。[0111]在S105處,響應(yīng)于確定該分組將不在硬路徑中被處理(例如,它被運往軟路徑),管道仲裁器20將該分組發(fā)送給管道線10的軟路徑。在S130處,響應(yīng)于確定該分組將不在軟路徑中被處理,網(wǎng)絡(luò)設(shè)備將該分組緩沖在管道仲裁器20中,除非背壓信號存在或者被聲明。也就是說,在不存在背壓時,即,當(dāng)背壓被解除聲明時,該分組被緩沖在管道仲裁器20中。在S135處,響應(yīng)于確定背壓信號存在或者被聲明,軟實時系統(tǒng)200向上游發(fā)信號以請求流量管理器40停止發(fā)送將在軟路徑中被處理的分組。這個背壓信號保持聲明,直到系統(tǒng)背壓允許該分組被發(fā)送給管道線10以被存儲在軟路徑緩沖器18中。[0112]在S140處,響應(yīng)于接收到軟路徑上的該分組,該分組被緩沖在緩沖器18中。在S145處,響應(yīng)于將該分組存儲在緩沖器18中,EAP34向引擎30發(fā)送許可請求。[0113]在S150處,響應(yīng)于從該EAP接收到許可請求,引擎30確定是否有充足的資源可用于處理該分組而不影響硬路徑的時延。響應(yīng)于確定沒有足夠的資源可用于處理該分組而不影響硬路徑的時延,該許可請求被緩沖在引擎30的軟路徑緩沖器32-S中,直到該請求能夠被許可。如果軟路徑緩沖器32-S超出預(yù)定的填充水平閾值,則它向軟實時系統(tǒng)提供或者聲明背壓信號,以防止更多分組被發(fā)送給軟路徑,直到軟路徑緩沖器32-S填充水平下降到該預(yù)定填充閾值之下。[0114]在S155處,響應(yīng)于確定有足夠的資源可用于處理該分組而不影響硬路徑的時延,該引擎向EAP34發(fā)送許可。在S160處,響應(yīng)于接收到該許可,該EAP從引擎30請求資源以便處理該分組。[0115]在S165處,響應(yīng)于處理該分組,確定管道線10中是否存在另一級。如果不存在另一級,則該過程對于這個管道線10中的該分組結(jié)束。否則,如果存在另一級,則在S170處,該軟實時系統(tǒng)確定背壓信號是否被聲明,以便于允許該分組被緩沖在下一級中。[0116]在175處,響應(yīng)于確定背壓被聲明以便于不允許該分組被緩沖在下一級中,軟實時系統(tǒng)200用信號通知這些上游級不發(fā)送另一個分組,并且這些軟實時系統(tǒng)繼續(xù)監(jiān)測背壓信號,直到背壓信號被解除聲明以便于允許該分組被發(fā)送給下一級。在180處,響應(yīng)于確定背壓信號被解除聲明以便于允許該分組被緩沖在下一級中,軟實時系統(tǒng)200用信號通知這些上游級發(fā)送另一個分組,并且該分組被存儲在下一級的緩沖器18中,由此將該過程循環(huán)回到S140。[0117]結(jié)論[0118]盡管已經(jīng)關(guān)于各種實施例在上面描述了發(fā)明的概念,但是注意,不偏離所描述的特征的技術(shù)思想和范圍,熟悉這個領(lǐng)域的技術(shù)人員能夠有對這些特征的各種各樣的排列和修改,這些特征的技術(shù)思想和范圍應(yīng)該由所附權(quán)利要求來限定。[0119]進(jìn)一步地,雖然本申請文件包含許多特征,但是這些特征不應(yīng)當(dāng)被解釋為是對本公開內(nèi)容或所附權(quán)利要求的范圍的限制。在分離的實施例的上下文中描述的某些特征也能夠組合地被實施。相反地,在單個實施例的上下文中描述的各種特征也能夠分離地或者以任何合適的子組合而被實施在多個實施例中。[0120]盡管各附圖以具體的順序描述了各操作和/或示出了組件的具體布置,并且在數(shù)據(jù)中心的訪問區(qū)段的上下文中被描述,但是人們不應(yīng)當(dāng)將該具體順序和/或布置解釋為是被限制的,或者所執(zhí)行的所有操作以及所公開的組件被要求獲得期望的結(jié)果。存在眾多能夠被配置為以在本公開內(nèi)容中關(guān)于各種實施例所描述的方式來轉(zhuǎn)發(fā)分組、傳輸各種地址解析消息、以及更新地址緩存和分組地址的硬件和軟件設(shè)備。因此,其他實施方式也在以下的權(quán)利要求的范圍內(nèi)?!緳?quán)利要求】1.一種用于處理分組的網(wǎng)絡(luò)設(shè)備,所述設(shè)備包括:入口前端,被配置為將分組流中的第一分組識別為將在多個處理級中的每個級以有保證速率來處理的分組,并且將所述分組流中的第二分組識別為將在所述多個處理級中的每個級不以有保證速率來處理的分組;多個引擎,被配置為提供用于在處理級處理所述分組流中使用的相應(yīng)資源;所述處理級被配置為:(i)對于所述第一分組,選擇性地促使使用從所述引擎中的一個引擎獲得的所述資源來對所述第一分組執(zhí)行第一分組處理操作,并且在與所述有保證速率相對應(yīng)的時間段內(nèi)將所述第一分組傳遞給下一個處理級;以及(?)對于所述第二分組,選擇性地從所述引擎中的一個引擎請求所述資源用于處理所述第二分組,將所述第二分組緩沖在緩沖器中直到所述資源可用,促使使用所述可用資源來對所述第二分組執(zhí)行第二分組處理操作,以及將所述第二分組以不被保證的速率傳遞給下一個處理級。2.根據(jù)權(quán)利要求1所述的用于處理分組的網(wǎng)絡(luò)設(shè)備,其中所述處理級被布置在管道線中。3.根據(jù)權(quán)利要求1所述的用于處理分組的網(wǎng)絡(luò)設(shè)備,其中所述入口前端、所述引擎、以及所述多個處理級被設(shè)置在同一集成電路設(shè)備上。4.根據(jù)權(quán)利要求1所述的用于處理分組的網(wǎng)絡(luò)設(shè)備,其中所述分組流包括將以有保證的處理速率來處理的多個分組,并且所述一個或多個引擎被配置為,響應(yīng)于確定向所述第二分組許可所述資源將不影響將以所述有保證速率來處理的分組的所述有保證速率,向請求所述資源以用于所述第二分組的所述處理級許可所述資源。5.根據(jù)權(quán)利要求4所述的用于處理分組的網(wǎng)絡(luò)設(shè)備,其中所述入口前端被配置為,將數(shù)據(jù)分組作為大多數(shù)的將以所述有保證速率來處理的分組而提供給所述多個處理級。6.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)設(shè)備,進(jìn)一步包括背壓總線,其中下游處理級被配置為,通過所述背壓總線用信號向上游處理級通知,所述下游處理級是否可用于接收所述第二分組以用于附加處理。7.根據(jù)權(quán)利要求6所述的網(wǎng)絡(luò)設(shè)備,其中所述下游處理級基于所述下游處理級的緩沖器填充程度,用信號向所述上游處理級通知是否傳遞所述第二分組。8.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)設(shè)備,其中響應(yīng)于下游處理級的緩沖器達(dá)到預(yù)定充滿閾值,所述下游處理級向上游處理級發(fā)送信號來停止發(fā)送分組。9.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)設(shè)備,進(jìn)一步包括設(shè)置在所述處理級中的軟路徑緩沖器,所述軟路徑緩沖器被配置為在可變時間段內(nèi)緩沖所述第二分組,所述可變時間段是以下項的函數(shù):從處理級到所述引擎中的一個或多個引擎的對許可訪問所述資源的請求、以及由一個或多個引擎給請求的所述處理級的使得所述資源可用于處理所述第二分組的許可。10.根據(jù)權(quán)利要求9所述的網(wǎng)絡(luò)設(shè)備,其中所述多個處理級被布置在管道線中,并且其中所述軟路徑緩沖器被配置為向前級提供背壓信號,所述背壓信號指示是否在所述管道線中向前發(fā)送將不以所述有保證速率來處理的另一個分組。11.根據(jù)權(quán)利要求9所述的網(wǎng)絡(luò)設(shè)備,其中所述軟路徑緩沖器被配置為,響應(yīng)于所述軟路徑緩沖器中的一個軟路徑緩沖器超出充滿閾值而聲明所述背壓信號,并且其中所述入口前端被配置為,接收所述背壓信號并且不發(fā)送將不以有保證速率來處理的另一個分組,直到所述背壓信號被解除聲明。12.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)設(shè)備,其中所述多個處理級被布置為提供:軟路徑,其不以有保證速率來處理分組;以及硬路徑,其以有保證速率來處理分組而不論施加在所述引擎所述軟路徑上的處理負(fù)載。13.—種方法,包括:將分組流中的第一分組識別為將在多個處理級中的每個級以有保證速率來處理的分組;將分組流中的第二分組識別為將在所述多個處理級中的每個級不以有保證速率來處理的分組;在處理級從引擎請求資源,使得能夠在有界時間段內(nèi)對所述第一分組執(zhí)行操作,所述有界時間段由與所述有保證速率相對應(yīng)的預(yù)定時延來限定;使用所述資源對所述第一分組執(zhí)行處理操作,并且在由所述有保證速率所限定的時間段內(nèi)將所述第一分組傳遞給下一級;請求用以從所述引擎請求所述資源的準(zhǔn)許,使得能夠?qū)λ龅诙纸M執(zhí)行操作;響應(yīng)于資源請求,做出與使用所述資源是否將影響所述第一分組的所述有保證速率有關(guān)的確定,并且根據(jù)所述確定來提供資源許可;以及響應(yīng)于所述資源許可,從所述引擎請求所述資源。14.根據(jù)權(quán)利要求13所述的方法,進(jìn)一步包括:緩沖所述資源請求,直到所述確定指示所述第一分組的所述有保證速率將不被影響。15.一種網(wǎng)絡(luò)設(shè)備,用于以基本上有保證速率來處理第一分組的流,并且用于以可變速率來同時處理第二分組的流,所述網(wǎng)絡(luò)設(shè)備包括:一個或多個引擎,供應(yīng)處理資源用于在處理所述第一分組中使用并且用于在處理所述第二分組中使用;以及處理級,耦合至所述一個或多個引擎,所述處理級被配置為:在由所述有保證速率所限定的時段內(nèi),使用從所述一個或多個引擎獲得的所述資源來處理所述第一分組,以及針對用于處理所述第二分組之中的第二分組的所述資源而做出資源請求,緩沖所述第二分組,直到所述引擎中的一個或多個引擎指示用于處理所述第二分組而不導(dǎo)致用于處理所述第一分組的所述時段超出所述有保證速率的所述資源的可用性。16.根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò)設(shè)備,進(jìn)一步包括管道線處理器,所述管道線處理器包括多個處理級,所述多個處理級包括所述處理級,所述多個處理級每個都被配置為對所述第一分組和所述第二分組執(zhí)行一個或多個處理操作。17.根據(jù)權(quán)利要求16所述的網(wǎng)絡(luò)設(shè)備,其中所述引擎基于所述引擎是否能夠許可所述資源而不影響所述第一分組的所述有保證速率,來確定何時許可所述資源。18.根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò)設(shè)備,進(jìn)一步包括多個引擎,所述多個引擎包括所述引擎,所述引擎中的每個引擎具有資源并且被耦合至所述處理級,所述處理級被配置為生成與所述多個引擎中的多于一個引擎有關(guān)的資源請求。19.根據(jù)權(quán)利要求18所述的網(wǎng)絡(luò)設(shè)備,其中所述處理級向所述多個引擎中的每個引擎提供所述資源請求。20.根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò)設(shè)備,進(jìn)一步包括:分組分類器,設(shè)置在所述處理級和所述引擎的上游,被配置為將分組流中的分組分類為所述第一分組之一或者所述第二分組之一?!疚臋n編號】H04L12/863GK104285415SQ201380024940【公開日】2015年1月14日申請日期:2013年5月10日優(yōu)先權(quán)日:2012年5月10日【發(fā)明者】K·T·博登申請人:馬維爾國際貿(mào)易有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1