網(wǎng)絡設備中的存儲器共享的制作方法
【專利說明】網(wǎng)絡設備中的存儲器共享
[0001]相關(guān)申請的交叉引用
[0002]本公開要求2012年12月20日提交的名稱為“Centralized Memory Sharing ina Mult1-Processing Unit Switch”的美國臨時專利申請N0.61/740,286的權(quán)益,因此其通過引用方式整體并入于此。
技術(shù)領(lǐng)域
[0003]本公開總體上涉及允許多個處理器設備訪問共享存儲器的相應部分的處理系統(tǒng),并且更具體地,涉及采用這樣的處理系統(tǒng)來處理分組的諸如交換機、橋接器、路由器等之類的網(wǎng)絡設備。
【背景技術(shù)】
[0004]本文中提供的【背景技術(shù)】描述是用于總體上給出本公開的上下文的目的。在其被描述在這一【背景技術(shù)】部分的程度上,當前提名的發(fā)明人的工作以及在提交時可能無法以其他方式有資格作為現(xiàn)有技術(shù)的描述的方面既不明確地也不暗示地被承認為抵觸本公開的現(xiàn)有技術(shù)。
[0005]諸如網(wǎng)絡交換機、橋接器、路由器等之類的一些網(wǎng)絡設備采用多個分組處理元件來同時處理多個分組,以提供高的吞吐量。例如,網(wǎng)絡設備可以利用并行分組處理,其中多個分組處理元件同時且并行地執(zhí)行對不同分組的處理。在其它網(wǎng)絡設備中,流水線架構(gòu)采用順序布置的分組處理元件,使得流水線中的不同分組處理元件可以在給定時間處理不同分組。
【發(fā)明內(nèi)容】
[0006]在一個實施例中,網(wǎng)絡設備包括被配置為執(zhí)行分組處理功能的多個處理器設備。網(wǎng)絡設備還包括共享存儲器系統(tǒng),共享存儲器系統(tǒng)包括多個存儲器塊,每個存儲器塊對應于共享存儲器系統(tǒng)的相應部分,并且每個存儲器塊具有小于共享存儲器系統(tǒng)的總尺寸的相應尺寸。網(wǎng)絡設備進一步包括存儲器連接性網(wǎng)絡和配置單元,存儲器連接性網(wǎng)絡用于將多個處理器設備耦合到共享存儲器系統(tǒng),配置單元用于配置存儲器連接性網(wǎng)絡,使得向多個處理器設備之中的處理器設備提供對多個存儲器塊之中的存儲器塊的相應集的訪問。
[0007]在另一實施例中,方法包括確定網(wǎng)絡設備的多個處理器設備的存儲器要求,多個處理器設備用于執(zhí)行針對從網(wǎng)絡接收的分組的分組處理功能。方法還包括在網(wǎng)絡設備中,基于確定的相應處理器設備的存儲器要求,向多個處理器設備之中的處理器設備指派共享存儲器系統(tǒng)的存儲器塊,每個存儲器塊對應于共享存儲器系統(tǒng)的相應部分,并且每個存儲器塊具有小于共享存儲器系統(tǒng)的總尺寸的相應尺寸。另外,方法包括在網(wǎng)絡設備中,配置將多個處理器設備耦合到共享存儲器系統(tǒng)的存儲器連接性網(wǎng)絡,使得向多個處理器設備之中的處理器設備提供對多個存儲器塊之中的存儲器塊的相應指派集的訪問。
【附圖說明】
[0008]圖1是根據(jù)實施例的允許多個處理器設備訪問共享存儲器的相應部分的示例網(wǎng)絡設備的框圖。
[0009]圖2A是根據(jù)實施例的通過圖1的網(wǎng)絡設備利用的示例分級Clos網(wǎng)絡的圖。
[0010]圖2B是根據(jù)實施例的在圖2A的分級Clos網(wǎng)絡中利用的Benes網(wǎng)絡的圖。
[0011]圖2C是根據(jù)實施例的在圖2A的分級Clos網(wǎng)絡中和在圖2B的Benes網(wǎng)絡中利用的另一 Benes網(wǎng)絡的圖。
[0012]圖3是根據(jù)實施例的通過圖1的網(wǎng)絡設備利用的存儲器超級塊的圖。
[0013]圖4是根據(jù)實施例的用于初始化圖1的網(wǎng)絡設備的共享存儲器系統(tǒng)的示例方法的流程圖。
[0014]圖5是根據(jù)實施例的允許多個處理器設備訪問共享存儲器的相應部分的另一示例網(wǎng)絡設備的框圖。
[0015]圖6是根據(jù)實施例的允許多個處理器設備訪問共享存儲器的相應部分的另一示例網(wǎng)絡設備的框圖。
【具體實施方式】
[0016]圖1是根據(jù)實施例的允許多個處理器設備訪問共享存儲器的相應部分的示例網(wǎng)絡設備100的簡化框圖。網(wǎng)絡設備100通常是連接兩個或更多計算機系統(tǒng)、網(wǎng)絡分段、子網(wǎng)等的計算機聯(lián)網(wǎng)設備。例如,在一個實施例中,網(wǎng)絡設備100是交換機。然而,注意,網(wǎng)絡設備100不一定限于特定協(xié)議層或特定聯(lián)網(wǎng)技術(shù)(例如以太網(wǎng))。例如,在其它實施例中,網(wǎng)絡設備100是橋接器、路由器、VPN集中器等。
[0017]網(wǎng)絡設備100包括網(wǎng)絡處理器(或分組處理器)102,并且網(wǎng)絡處理器102轉(zhuǎn)而包括多個分組處理元件(PPE)或分組處理節(jié)點(PPN) 104、以及多個外部處理引擎106、以及耦合在PPE 104和外部處理引擎106之間的處理控制器(為了簡化附圖未示出)。在實施例中,處理控制器許可PPE 104向外部處理引擎106卸載處理任務。
[0018]網(wǎng)絡設備100還包括耦合到網(wǎng)絡處理器102的多個網(wǎng)絡端口 112,并且網(wǎng)絡端口112中的每個網(wǎng)絡端口經(jīng)由相應通信鏈路耦合到通信網(wǎng)絡和/或通信網(wǎng)絡內(nèi)的另一適合網(wǎng)絡設備。一般來說,網(wǎng)絡處理器102被配置為處理經(jīng)由進入端口 112接收的分組,以確定分組將要經(jīng)由其發(fā)射的相應外出端口 112,并且以使得分組經(jīng)由所確定的外出端口 112被發(fā)射。在一些實施例中,網(wǎng)絡處理器102處理與分組相關(guān)聯(lián)的分組描述符,而不是處理分組本身。在實施例中,分組描述符包括來自分組的一些信息,諸如分組的報頭信息的一些或全部,和/或包括由網(wǎng)絡設備100針對分組生成的信息。在一些實施例中,分組描述符也包括其它信息,諸如分組存儲在與網(wǎng)絡設備100相關(guān)聯(lián)的存儲器中何處的指示符。為了便于解釋,術(shù)語“分組”在本文中用于指代分組本身或者與分組相關(guān)聯(lián)的分組描述符。進一步地,如本文中使用的,術(shù)語“分組處理元件(PPE) ”和術(shù)語“分組處理節(jié)點(PPN) ”可交換地用于指代被配置為針對網(wǎng)絡設備100接收的分組執(zhí)行分組處理操作的處理單元。
[0019]在實施例中,網(wǎng)絡處理器102被配置為向可用PPE 104分布經(jīng)由端口 112接收的分組的處理。在實施例中,PPE 104被配置為并發(fā)地、并行地執(zhí)行相應分組的處理,并且每個PPE 104通常被配置為針對分組執(zhí)行至少兩個不同的處理操作。根據(jù)實施例,PPE 104被配置為使用非瞬態(tài)存儲器(未示出)中存儲的計算機可讀指令來處理分組,并且每個PPE104被配置為執(zhí)行分組的所有必要處理(運行至完成處理)。另一方面,在實施例中,外部處理引擎106使用一個或多個專用集成電路(ASIC)或其它硬件部件來實現(xiàn),并且每個外部處理引擎106致力于執(zhí)行單個、通常處理密集的操作。只是作為示例,在示例實施例中,第一外部處理引擎106(例如引擎106a)是轉(zhuǎn)發(fā)查找引擎,第二外部處理引擎106(例如引擎106b)是策略查找引擎,第三外部處理引擎106(例如引擎106x)是循環(huán)冗余校驗(CRC)計算引擎等。
[0020]在分組的處理期間,PPE 104被配置為選擇性地接合外部處理引擎106以用于執(zhí)行針對分組的特定處理操作。在至少一些實施例中,PPE 104被配置為執(zhí)行與外部處理引擎106被配置為執(zhí)行的特定處理操作不同的處理操作。例如,在各種實施例中,PPE 104執(zhí)行資源較不密集的操作,諸如提取分組中(例如,分組報頭中)包含的信息、執(zhí)行針對分組的計算、基于來自未由PPE 104執(zhí)行的查找操作的結(jié)果來修改分組報頭等。在至少一些實施例和/或情景中,外部處理引擎106被配置為執(zhí)行的特定處理操作通常是高度資源密集的,和/或如果使用諸如PPE 104之類的更一般化的處理器來執(zhí)行操作,則將會需要相對較長的時間來執(zhí)行。例如,在各種實施例中,引擎106被配置為執(zhí)行以下操作:諸如使用由PPE104提取的報頭數(shù)據(jù)執(zhí)行轉(zhuǎn)發(fā)數(shù)據(jù)庫(FDB)中的查找、使用由PPE 104提取的IP地址并且基于LPM表來執(zhí)行最長前綴匹配(LPM)操作等。在至少一些實施例和情景中,PPE 104執(zhí)行外部處理引擎106被配置為執(zhí)行的處理操作將花費顯著更長的時間例如,兩倍長、十倍長、100倍長等)。正因如此,在至少一些實施例和/或情景中,外部處理引擎106通過加速PPE104將花費長時間來執(zhí)行的至少一些處理操作,來輔助PPE 104。據(jù)此,外部處理引擎106有時在本文中被稱為“加速器引擎”。在實施例中,PPE 104被配置為利用由外部處理引擎106執(zhí)行的處理操作的結(jié)果,以用于分組的進一步處理,例如以確定諸如轉(zhuǎn)發(fā)動作、策略控制動作等之類的關(guān)于分組將要采取的某些動作。例如,在實施例中,PPE 104使用通過引擎106的FDB查找的結(jié)果來指示分組將要被轉(zhuǎn)發(fā)到的特定端口。作為另一示例,在實施例中,PPE 104使用通過引擎106的LPM查找的結(jié)果來改變分組中的下一跳地址。
[0021]外部處理引擎106利用其包括多個存儲器塊114(有時在本文中被稱為“超級塊”)的共享存儲器系統(tǒng)110。在一些實施例中,外部處理引擎106中的至少一些中的每個外部處理引擎被指派共享存儲器系統(tǒng)110中的一個或多個存儲器塊114的相應集。作為說明性示例,外部處理引擎106a被指派存儲器塊114a,而外部處理引擎106b被指派存儲器塊114b和存儲器塊114c (未示出)。在一些實施例中,存儲器塊114的指派對于外部處理引擎106的至少一部分是透明的。例如,在一些實施例中,從外部處理引擎106的至少一部分的立場來看,可能顯得外部處理引擎106具有專用存儲器,而不是僅僅共享存儲器的特定部分。
[0022]外部處理引擎106經(jīng)由存儲器連接性網(wǎng)絡118通信地耦合到共享存儲器系統(tǒng)110。在一些實施例中,存儲器連接性網(wǎng)