0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

DPU架構(gòu)(自適應(yīng)交換機(jī))的介紹

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2022-02-09 10:07 ? 次閱讀

本文轉(zhuǎn)載自:網(wǎng)絡(luò)交換FPGA微信公眾號(hào)

推薦一篇論文,論文題目翻譯過(guò)來(lái)為:自適應(yīng)交換機(jī):用于網(wǎng)絡(luò)中心計(jì)算的異構(gòu)交換機(jī)體系結(jié)構(gòu)。該論文可以認(rèn)為是一篇介紹DPU架構(gòu)的文章。文章由新加坡Xilinx/西交大的 胡成臣老師共同撰寫,發(fā)表在2020年12月IEEE Communication Magazine上,其主旨思想,是利用FPGA作為協(xié)處理器,補(bǔ)充現(xiàn)有可編程交換ASIC的不足,給出了三個(gè)場(chǎng)景(NDP、DISCO、Stateful Firewall)作為例證;代碼已在Github開源。一個(gè)新興的范例是采用SmartNIC進(jìn)行以網(wǎng)絡(luò)為中心的計(jì)算,它在主機(jī)的網(wǎng)絡(luò)接口上引入了特定于用戶的處理。作者采取了這一舉措,進(jìn)一步解決了網(wǎng)絡(luò)核心(交換機(jī))中當(dāng)前專有的處理和計(jì)算問(wèn)題。鏈接:https://ieeexplore.ieee.org/abstract/document/9311937.

以網(wǎng)絡(luò)為中心的計(jì)算可將計(jì)算和數(shù)據(jù)處理從CPU卸載到并分解到CPU,以支持不斷增長(zhǎng)的吞吐量,大數(shù)據(jù)量和數(shù)據(jù)中心的信息復(fù)雜性。一個(gè)新興的范例是采用SmartNIC進(jìn)行以網(wǎng)絡(luò)為中心的計(jì)算,它在主機(jī)的網(wǎng)絡(luò)接口上引入了特定于用戶的處理。在本文中,我們將進(jìn)一步采取主動(dòng)行動(dòng),以解決網(wǎng)絡(luò)核心(交換機(jī))中當(dāng)前的專有處理和計(jì)算問(wèn)題。我們提出了一種新的硬件架構(gòu),稱為自適應(yīng)交換機(jī)?;趯?duì)其支持三個(gè)用例的原型的測(cè)試,我們證明了在可適應(yīng)的交換機(jī)上可以同時(shí)實(shí)現(xiàn)高吞吐量和處理靈活性。

1. 引言

在嚴(yán)格的延遲要求下傳輸海量數(shù)據(jù)的需求不斷增長(zhǎng),并將CPU推向了現(xiàn)代數(shù)據(jù)中心可擴(kuò)展性的極限。從數(shù)據(jù)中心到網(wǎng)絡(luò)接口卡(NIC)的卸載網(wǎng)絡(luò)堆棧和計(jì)算已越來(lái)越多地部署在數(shù)據(jù)中心中[1]。這種方法稱為SmartNIC,它使人們進(jìn)一步擁抱網(wǎng)絡(luò)內(nèi)計(jì)算或以網(wǎng)絡(luò)為中心的計(jì)算,以通過(guò)網(wǎng)絡(luò)卸載和分解計(jì)算,存儲(chǔ)和其他功能。在本文中,我們提出了一種適應(yīng)性強(qiáng)的交換機(jī)體系結(jié)構(gòu),以支持網(wǎng)絡(luò)核心中的用戶特定處理和專有協(xié)議,以補(bǔ)充主機(jī)網(wǎng)絡(luò)中現(xiàn)有的SmartNIC。

引入用戶定義的流量穿越交換機(jī)的動(dòng)作的開創(chuàng)性工作是OpenFlow交換機(jī)[2]。這個(gè)相當(dāng)不靈活的數(shù)據(jù)平面后來(lái)被開發(fā)成為便攜式交換機(jī)架構(gòu)(PSA)[3]??梢詮莫?dú)立于編程協(xié)議的分組處理器(P4)語(yǔ)言[4]靈活定義和編譯PSA兼容數(shù)據(jù)平面目標(biāo)。PSA存在一些局限性,這些局限性促使了本文的工作。

首先,PSA僅在數(shù)據(jù)包到達(dá)和/或離開時(shí)觸發(fā)處理,從而不支持其他事件的操作。例如,在PSA中,很難在新穎的數(shù)據(jù)平面?zhèn)鬏攨f(xié)議(NDP)[5]提議中啟用控制,在這種提議中,當(dāng)緩沖區(qū)擁塞時(shí),交換機(jī)應(yīng)該做出反應(yīng)。稍后將在我們的實(shí)驗(yàn)中詳細(xì)介紹NDP的一個(gè)使用案例。

其次,PSA在計(jì)算操作(例如,代數(shù)計(jì)算)方面缺乏能力,這阻止了在PSA兼容交換機(jī)上部署許多算法。稍后將討論一個(gè)利用復(fù)雜計(jì)算的流量統(tǒng)計(jì)方法(折扣計(jì)數(shù),DISCO [6])的具體示例。

第三,PSA最初是為對(duì)網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行無(wú)狀態(tài)處理而設(shè)計(jì)的。PSA通常很難基于歷史狀態(tài)進(jìn)行狀態(tài)協(xié)議處理和/或狀態(tài)計(jì)算。為了更好地理解這一點(diǎn),稍后將討論防火墻[7]用例。

PSA非常適合無(wú)狀態(tài)和基于轉(zhuǎn)發(fā)的數(shù)據(jù)平面,但是我們的目標(biāo)遠(yuǎn)不止PSA的范圍:我們的目標(biāo)是設(shè)計(jì)一種交換架構(gòu),以將計(jì)算量卸載和分解到網(wǎng)絡(luò)中。在語(yǔ)言級(jí)別,P4的最新版本(P4_16)引入了P4_extern的概念,以描述該語(yǔ)言的標(biāo)準(zhǔn)格式不支持的任何功能。但是,沒(méi)有靈活的交換機(jī)體系結(jié)構(gòu)具有匹配的“ PSA_extern”用于由P4_extern定義的處理。解決方案始終是在添加新的P4_extern時(shí)具有新的專用硬件目標(biāo)。但是,這與PSA作為便攜式可編程數(shù)據(jù)平面的最初思想相沖突,應(yīng)該避免。

我們通過(guò)提出一種異構(gòu)硬件交換機(jī)體系結(jié)構(gòu)來(lái)進(jìn)行創(chuàng)新,以支持任何可能的P4_extern定義的處理。我們將此架構(gòu)命名為自適應(yīng)交換機(jī),我們已經(jīng)解決了兩個(gè)技術(shù)挑戰(zhàn),這是我們的主要貢獻(xiàn)。第一個(gè)是自適應(yīng)交換機(jī)的異構(gòu)硬件體系結(jié)構(gòu)設(shè)計(jì)。第二個(gè)是如何基于自適應(yīng)開關(guān)以最佳方式開發(fā)程序并將其映射到目標(biāo)。據(jù)我們所知,這是第一個(gè)開關(guān)架構(gòu),既提供現(xiàn)場(chǎng)可編程門陣列(FPGA)級(jí)別的可編程性,又達(dá)到與切換專用集成電路(ASIC)相當(dāng)?shù)耐掏铝?。借助提出的自適應(yīng)交換機(jī)體系結(jié)構(gòu),我們可以消除對(duì)P4兼容ASIC芯片的限制,并支持事件觸發(fā),復(fù)雜的算術(shù)計(jì)算和狀態(tài)處理,所有這些都以線路速率實(shí)現(xiàn)。為了評(píng)估我們的建議,我們?cè)谝粋€(gè)可適配交換機(jī)的原型上實(shí)現(xiàn)了三個(gè)用例,并在評(píng)估部分與其他可編程數(shù)據(jù)平面進(jìn)行了比較。

2. 架構(gòu)設(shè)計(jì)

圖1是自適應(yīng)交換機(jī)的硬件架構(gòu)的框圖。它由固定交換系統(tǒng)(SS)部分和用戶可編程邏輯(PL)部分組成。SS部分實(shí)現(xiàn)了標(biāo)準(zhǔn)交換功能,而PL部分則部署了FPGA以對(duì)定制處理進(jìn)行編程。所提出的體系結(jié)構(gòu)中的SS和PL這兩個(gè)部分可以通過(guò)兩芯片方法來(lái)實(shí)現(xiàn),其中SS可以是具有或不具有P4兼容性的傳統(tǒng)交換ASIC,PL可以是FPGA芯片,即片上多處理器系統(tǒng)(MPSoC)或?qū)PGA與其他處理器(例如ARM內(nèi)核)集成在單個(gè)SoC中的自適應(yīng)計(jì)算加速平臺(tái)(ACAP)芯片。在兩芯片解決方案中,兩個(gè)物理上分離的芯片使用PCle或以太網(wǎng)接口或收發(fā)器連接。或者,我們還可以用一個(gè)高帶寬片上總線(如AXI)來(lái)實(shí)現(xiàn)單芯片的解決方案。

SS中的交換結(jié)構(gòu)通常采用交叉開關(guān)在入口和出口之間進(jìn)行高速交換。來(lái)自網(wǎng)絡(luò)接口的數(shù)據(jù)包在交換矩陣之前/之后經(jīng)過(guò)入口/出口管道。在入口或出口管道中,通常有解析器(提取感興趣的標(biāo)頭字段),流表(與提取的標(biāo)頭匹配以執(zhí)行操作),解析器(重組或/和操作數(shù)據(jù)包)和流量管理器(緩沖區(qū)管理,數(shù)據(jù)包調(diào)度,整形等)。

所有傳入的數(shù)據(jù)包都首先進(jìn)入SS,并且大多數(shù)數(shù)據(jù)包完全在SS中處理。只有那些依賴于SS不支持的功能的分組才會(huì)被進(jìn)一步發(fā)送給PL進(jìn)行協(xié)同處理。在數(shù)據(jù)包觸發(fā)PL中的處理的情況下,SS將數(shù)據(jù)包存儲(chǔ)在片上或片外存儲(chǔ)器中,并將專用元數(shù)據(jù)發(fā)送到PL。自定義元數(shù)據(jù)以承載從PL中進(jìn)行處理所需的數(shù)據(jù)包中提取的信息。PL中的處理將更新元數(shù)據(jù)并將其返回給SS。SS將原始數(shù)據(jù)包與返回的元數(shù)據(jù)合并為一個(gè)完整的數(shù)據(jù)包以進(jìn)行轉(zhuǎn)發(fā),或者只是丟棄該數(shù)據(jù)包。

我們引入了一個(gè)額外的內(nèi)存管理單元(MMU),如圖1所示。MMU管理內(nèi)存以緩沖等待PL更新元數(shù)據(jù)的數(shù)據(jù)包。更具體地說(shuō),它包括三個(gè)主要功能:
1、動(dòng)態(tài)分配存儲(chǔ)塊以存儲(chǔ)數(shù)據(jù)包。

2、將數(shù)據(jù)包數(shù)據(jù)寫入內(nèi)存。

3、從內(nèi)存中讀回存儲(chǔ)的數(shù)據(jù)包數(shù)據(jù),并使用從PL返回的元數(shù)據(jù)組裝輸出數(shù)據(jù)包。

我們基于兩個(gè)觀察或假設(shè)來(lái)設(shè)計(jì)自適應(yīng)交換機(jī)體系結(jié)構(gòu)。
1、PL中的大多數(shù)處理通常僅基于數(shù)據(jù)包頭或/和有效載荷中前幾個(gè)字節(jié)的數(shù)據(jù)包段。我們的設(shè)計(jì)僅交換可以靈活定義的元數(shù)據(jù),從而保證了SS和PL之間有限的互連帶寬消耗。在極少數(shù)情況下,查看整個(gè)數(shù)據(jù)包的處理將用整個(gè)數(shù)據(jù)包填充元數(shù)據(jù)。

2、并非所有流量都需要在PL中進(jìn)行處理:否則,相關(guān)功能將成為現(xiàn)成交換ASIC的一部分,或者直接轉(zhuǎn)移到自適應(yīng)交換體系結(jié)構(gòu)中的SS部分。

考慮到平均數(shù)據(jù)包長(zhǎng)度約為600B,并且假設(shè)元數(shù)據(jù)大小為64B,如果通過(guò)PCle Gen4*16進(jìn)行接口連接,則在不犧牲端口密度的情況下,即使使用最大的交換,也可以在PL中進(jìn)一步處理20%的流量以12Tb/s作為SS的ASIC。在兩芯片解決方案中,允許10%的端口密度連接SS和PL,同樣,在平均數(shù)據(jù)包長(zhǎng)度為600B,元數(shù)據(jù)為64B的情況下,所有原始流量可以在PL中進(jìn)行進(jìn)一步的處理。

3. PL中用戶定制處理流程

為了有效地映射PL中基于用戶特定數(shù)據(jù)流的計(jì)算,我們引入了微并行處理流水線,如圖1右側(cè)。我們將每個(gè)處理階段抽象為一個(gè)基本處理單元(BPU)。通過(guò)將輸入流量負(fù)載分配給多個(gè)執(zhí)行引擎,還為每個(gè)BPU引入了并行性。執(zhí)行引擎由操作模塊組成,該模塊對(duì)保存在內(nèi)存中的一組數(shù)據(jù)進(jìn)行操作。在通用BPU抽象中,到BPU的輸入(數(shù)據(jù)流)數(shù)量與其前身的執(zhí)行引擎數(shù)量相同,但對(duì)于一個(gè)BPU中的輸入和輸出數(shù)量而言,不一定相同。

數(shù)據(jù)拆分的優(yōu)化問(wèn)題是NP難題,可以從多項(xiàng)式時(shí)間的平均除法問(wèn)題中減少。遵循模擬退火算法解決平均分割問(wèn)題的思想,我們開發(fā)了一種啟發(fā)式算法,用于將與流程相關(guān)的處理相關(guān)數(shù)據(jù)映射到每個(gè)執(zhí)行引擎中。

在本節(jié)的其余部分,我們將回答有關(guān)此PL體系結(jié)構(gòu)的兩個(gè)問(wèn)題:
1、如何為BPU開發(fā)操作模塊以適合特定于用戶的PL。
2、如何在每個(gè)BPU中正確地填充數(shù)據(jù)內(nèi)存,以便調(diào)度模塊可以盡可能均勻地分配流量負(fù)載,從而最終最大化處理吞吐量。

開發(fā)流程

我們使用Xilinx P4-SDNet[8]作為開發(fā)流程的基礎(chǔ)來(lái)構(gòu)建我們的原型,如圖2所示。P4-SDNet是一種現(xiàn)成的商用產(chǎn)品(COTS),涵蓋了從P4語(yǔ)言到SDNet規(guī)范,再到基于FPGA的數(shù)據(jù)平面的編譯工具鏈。P4-SDNet產(chǎn)品的最新版本支持P4_16,提供了兩個(gè)內(nèi)置的P4_externs。內(nèi)置的P4_externs支持通過(guò)使編譯器前端能夠識(shí)別高級(jí)描述來(lái)展示將編譯器擴(kuò)展到更多用戶特定處理的方法。另外,我們?cè)诰幾g器后端使用注釋,這些注釋將轉(zhuǎn)換為適當(dāng)?shù)闹虚g表示(IR)(例如SDNet [9])。規(guī)范),最后映射到PL。一般而言,對(duì)于用戶特定的PL,還可以使用硬件描述語(yǔ)言(Verilog HDL,VHDL等)進(jìn)行編碼,然后編譯為BPU和PL中的處理管道,這是另一種選擇。

優(yōu)化
如前所述,BPU中的調(diào)度模塊將流量負(fù)載分配給BPU中的多個(gè)執(zhí)行引擎。稻草人解決方案將所有與處理相關(guān)的數(shù)據(jù)復(fù)制到每個(gè)執(zhí)行引擎,這通過(guò)以循環(huán)方式分配流量負(fù)載來(lái)簡(jiǎn)單地實(shí)現(xiàn)大吞吐量。但是,每個(gè)執(zhí)行引擎中數(shù)據(jù)存儲(chǔ)器的大小是有限的,不足以容納處理相關(guān)數(shù)據(jù)的完整副本。由于這個(gè)原因,通過(guò)回答在每個(gè)執(zhí)行引擎中保留完整處理相關(guān)數(shù)據(jù)的哪個(gè)子集來(lái)解決數(shù)據(jù)拆分和分配問(wèn)題并非易事。目的是通過(guò)平衡每個(gè)執(zhí)行引擎中處理的工作量來(lái)最大化并行處理吞吐量。不失一般性,我們使用流表來(lái)保持對(duì)相關(guān)數(shù)據(jù)的處理,并將其表示為一種優(yōu)化問(wèn)題。

對(duì)象
最大程度地增加可發(fā)送到每個(gè)執(zhí)行引擎的工作量。

約束
約束處理
單個(gè)執(zhí)行引擎具有最大吞吐量,無(wú)法將更多的負(fù)載分派到達(dá)到容量限制的執(zhí)行引擎。

流關(guān)聯(lián)約束
來(lái)自同一流的所有數(shù)據(jù)包應(yīng)該由同一處理流水線的同一執(zhí)行引擎處理,以保持處理依賴關(guān)系,避免出現(xiàn)無(wú)序問(wèn)題。

調(diào)度約束
流的處理只能調(diào)度到執(zhí)行引擎(其中一個(gè)),在該執(zhí)行引擎中分配要處理該流的數(shù)據(jù)(例如,執(zhí)行引擎中的流表具有該流的信息條目)。

內(nèi)存大小約束
如果數(shù)據(jù)存儲(chǔ)器的大小小于完整處理相關(guān)數(shù)據(jù),則只能將完整數(shù)據(jù)的一部分(例如流表)放入執(zhí)行引擎中。引入更多的數(shù)據(jù)副本可以減輕數(shù)據(jù)訪問(wèn)沖突,但需要更多的(片上)內(nèi)存,因此流可能在執(zhí)行引擎之間具有冗余性。

數(shù)據(jù)分割的優(yōu)化問(wèn)題是NP難問(wèn)題,可以從多項(xiàng)式時(shí)間內(nèi)的平均分割問(wèn)題中得到簡(jiǎn)化[10]。根據(jù)模擬退火算法求解平均分割問(wèn)題的思想,我們開發(fā)了一種啟發(fā)式算法,用于將與處理相關(guān)的流數(shù)據(jù)映射到每個(gè)執(zhí)行引擎中。我們介紹了該算法的主要思想;有關(guān)詳細(xì)信息,請(qǐng)參閱github網(wǎng)站[10]上的代碼。首先,我們使用散列函數(shù)將流拆分為多個(gè)組;每個(gè)組的處理相關(guān)數(shù)據(jù)少于執(zhí)行引擎可以承載的數(shù)據(jù)(數(shù)據(jù)大小約束)。請(qǐng)注意,如果流的匯總工作負(fù)載需要多個(gè)執(zhí)行引擎(處理約束),則有包含相同組的執(zhí)行引擎。其次,我們首先將流組映射到不同的執(zhí)行引擎中,而不破壞約束。第三,以迭代的方式,我們通過(guò)將一個(gè)流組從一個(gè)源執(zhí)行引擎隨機(jī)移動(dòng)到另一個(gè)目標(biāo)引擎來(lái)調(diào)整流組分配到執(zhí)行引擎。執(zhí)行引擎的工作負(fù)載越多,它將流組移出的概率就越大;而選擇移動(dòng)組的目標(biāo)執(zhí)行引擎的概率與執(zhí)行引擎的工作負(fù)載成反比。如果通過(guò)約束檢查的調(diào)整能夠改進(jìn)對(duì)目標(biāo)的評(píng)估,那么它將以很大的概率被接受(為了跳出局部搜索陷阱,并不總是接受)。在找到足夠好的解決方案或達(dá)到預(yù)設(shè)的迭代輪數(shù)后,調(diào)整迭代停止。

在實(shí)際應(yīng)用中,作為啟發(fā)式算法輸入的流量分布隨著時(shí)間的推移而變化,因此使用遠(yuǎn)程控制器來(lái)收集執(zhí)行引擎之間的工作負(fù)載變化,作為運(yùn)行時(shí)重新計(jì)算和配置的反饋。算法的計(jì)算時(shí)間評(píng)估如下。

3. 評(píng)測(cè)

我們已經(jīng)在Xilinx ZC706開發(fā)板上實(shí)現(xiàn)了自適應(yīng)開關(guān)的原型,其中包含4000余行代碼,包括SS函數(shù),PL映射優(yōu)化算法和PL中的三個(gè)用例??梢栽趃ithub [10]上訪問(wèn)測(cè)試代碼,在開發(fā)過(guò)程中我們引用了NetFPGA使用的P4-SDNet工具集的代碼庫(kù)。我們利用五種跟蹤進(jìn)行評(píng)估,包括從ISP主干收集的一條真實(shí)ISP跟蹤,從LTE基站收集的一條LTE跟蹤,以及按照跟蹤名稱指示的分布的三種綜合跟蹤(指數(shù)跟蹤,帕累托跟蹤和統(tǒng)一跟蹤)。

使用案例
擁塞控制:NDP [5]確保在交換機(jī)中檢測(cè)到擁塞時(shí)小批量數(shù)據(jù)包的低轉(zhuǎn)發(fā)延遲。NDP是事件驅(qū)動(dòng)處理的一個(gè)示例,現(xiàn)有交換機(jī)無(wú)法很好地支持它。為了在自適應(yīng)交換機(jī)中部署NDP,我們?cè)赟S部分的MMU中分配邏輯輸出隊(duì)列。PL中實(shí)現(xiàn)了兩種NDP操作:一種監(jiān)視隊(duì)列深度作為擁塞觸發(fā)信號(hào),另一種發(fā)送顯式通知以調(diào)整數(shù)據(jù)包大小。前端編譯器將用戶邏輯包裝到操作模塊中,以生成BPU和處理管道。

網(wǎng)絡(luò)測(cè)量:DISCO [6]是一種有效的流量統(tǒng)計(jì)算法,但是由于缺乏指數(shù)和對(duì)數(shù)計(jì)算支持,因此在(P4或非P4)COTS交換機(jī)中部署DISCO頗具挑戰(zhàn)性。在我們的自適應(yīng)交換機(jī)上的DISCO實(shí)現(xiàn)中,PL的輸入元數(shù)據(jù)包括流ID和每個(gè)傳入數(shù)據(jù)包的長(zhǎng)度,而輸出是保存在片上存儲(chǔ)器中的流統(tǒng)計(jì)計(jì)數(shù)器值。我們使用Verilog HDL為DISCO實(shí)現(xiàn)P4_extern函數(shù)。

有狀態(tài)防火墻:我們還提供了一個(gè)有狀態(tài)防火墻[11]轉(zhuǎn)發(fā)引擎,其形式為可適配交換機(jī)支持的P4_extern功能,這對(duì)商品交換機(jī)是一個(gè)挑戰(zhàn)。實(shí)現(xiàn)的引擎記錄用于過(guò)濾數(shù)據(jù)包的連接狀態(tài)。實(shí)現(xiàn)了兩個(gè)硬件流表:一個(gè)用于基本匹配操作,另一個(gè)存儲(chǔ)每個(gè)相應(yīng)流的狀態(tài)列表。當(dāng)來(lái)自流的數(shù)據(jù)包到達(dá)時(shí),它根據(jù)當(dāng)前流狀態(tài)和感興趣的數(shù)據(jù)包字段執(zhí)行操作。它還更新匹配操作表以指示下一個(gè)狀態(tài)。

4. 實(shí)驗(yàn)結(jié)果
我們量化了原型的五種硬件資源消耗。查找表(LUT)用作組合邏輯實(shí)現(xiàn)。LUT隨機(jī)存取存儲(chǔ)器(LUT RAM)是用于緩存短變量值的寄存器資源。觸發(fā)器(FF)電路單元可以由時(shí)鐘信號(hào)驅(qū)動(dòng),以建立時(shí)序邏輯。Block RAM(BRAM)是片上大型存儲(chǔ)單元。數(shù)字信號(hào)處理器(DSP)是分布式快速單時(shí)鐘周期數(shù)學(xué)計(jì)算核心。

在表1中,我們展示了當(dāng)我們?yōu)槊總€(gè)用例啟用一個(gè)分派和20個(gè)執(zhí)行引擎時(shí)的結(jié)果。表中的結(jié)果以“數(shù)量/比例”的形式顯示,其中我們顯示了實(shí)現(xiàn)原型的FPGA的確切消耗量和占總資源的比例。dispatch行同時(shí)考慮了20個(gè)解析器(SDNet生成)和一個(gè)2020交換機(jī)(具有20個(gè)均衡器體系結(jié)構(gòu))的消耗,以將流量負(fù)載分配給執(zhí)行引擎。對(duì)于這三個(gè)case行,每個(gè)執(zhí)行引擎都包含一個(gè)精確匹配表(200個(gè)條目)作為數(shù)據(jù)存儲(chǔ)(在實(shí)踐中可以根據(jù)需求和硬件容量進(jìn)行調(diào)整)。在擁塞控制用例中,對(duì)于擁塞控制用例,有20個(gè)輸出端口的40個(gè)優(yōu)先級(jí)隊(duì)列,每個(gè)端口的隊(duì)列大小為64 kB。此外,我們還部署了20個(gè)計(jì)數(shù)引擎,在測(cè)量情況下總共有4k計(jì)數(shù)器,在防火墻情況下有20個(gè)可編程狀態(tài)轉(zhuǎn)換表。隨著使用的執(zhí)行引擎、階段、管道和條目數(shù)量的增加,資源消耗幾乎呈線性增加。從結(jié)果中,我們觀察到一個(gè)典型的FPGA足以部署這三個(gè)用戶案例。

圖3中,我們描述了增加執(zhí)行引擎數(shù)量時(shí)的吞吐量趨勢(shì)。我們根據(jù)最大頻率、數(shù)據(jù)總線寬度和平均數(shù)據(jù)包大小(600b)計(jì)算吞吐量。使用更多的執(zhí)行引擎時(shí),最大頻率會(huì)下降,而使用20個(gè)以上的執(zhí)行引擎時(shí),吞吐量增益會(huì)變得平緩。我們觀察到,對(duì)于擁塞控制和測(cè)量用例,原型最多達(dá)到8tb/s左右,對(duì)于有狀態(tài)防火墻用例,原型最多達(dá)到6tb/s左右的吞吐量。

通過(guò)查看每個(gè)用例所需的周期,我們將擁塞控制、網(wǎng)絡(luò)測(cè)量和防火墻用例的PL處理延遲分別確定為0.130ms、0.136ms和0.142ms。

我們還使用300多行Python代碼在運(yùn)行時(shí)進(jìn)行配置來(lái)實(shí)現(xiàn)PL映射優(yōu)化,并使用PyPy工具集將其部署在Dell R620服務(wù)器(具有8G RAM和運(yùn)行Ubuntu 16.04 LTS OS的2.80 GHz四核Intel CPU)中。和即時(shí)(JIT)編譯器來(lái)加速Python程序。圖4繪制了本節(jié)前面介紹的五個(gè)流量跟蹤下的平均計(jì)算時(shí)間。共有五個(gè)燭臺(tái)組,分別代表執(zhí)行引擎(具有一個(gè)階段和一個(gè)處理管道)數(shù)量的不同設(shè)置,即K = 4、8、12、16和20個(gè)執(zhí)行引擎。K值較大時(shí),運(yùn)行時(shí)映射優(yōu)化需要花費(fèi)較長(zhǎng)時(shí)間。使用20個(gè)執(zhí)行引擎,在我們測(cè)試的所有跟蹤下,計(jì)算時(shí)間不到8.30 s,置信度為95%。

表2總結(jié)了各種常見可編程數(shù)據(jù)平面的特征,例如,基于軟件的交換機(jī)[12]、基于FPGA的交換機(jī)[13]和基于P4兼容交換ASIC的交換機(jī)[14]。在介紹[11]中,我們提到了很多基于事件驅(qū)動(dòng)的ASIC和基于觸發(fā)的ASIC的特性,而在介紹[11]中,我們提到了基于事件驅(qū)動(dòng)的ASIC和基于觸發(fā)的ASIC的特性。所提出的可適應(yīng)性交換機(jī)將其自身定位在設(shè)計(jì)空間中,具有與基于純軟件/FPGA的交換機(jī)相似的可編程性和與P4兼容ASIC相當(dāng)?shù)模ㄉ晕⒌鸵稽c(diǎn))吞吐量。

5. 結(jié)論
我們提出了一種適用于網(wǎng)絡(luò)中心計(jì)算的自適應(yīng)交換體系結(jié)構(gòu)。Adaptive switch背后的關(guān)鍵是利用交換系統(tǒng)提供高吞吐量,同時(shí)將硬件可編程處理卸載到FPGA上。我們已經(jīng)實(shí)現(xiàn)了一個(gè)原型和三個(gè)用例。實(shí)驗(yàn)表明,該結(jié)構(gòu)的靈活性優(yōu)于現(xiàn)有的固定功能交換機(jī)。此外,所實(shí)現(xiàn)的設(shè)計(jì)可以很好地控制資源消耗,以每秒數(shù)太比特的速率提供處理吞吐量。盡管PL部分的處理吞吐量仍然小于交換ASIC的吞吐量,但是我們認(rèn)為,整個(gè)分組或所有數(shù)據(jù)流都不需要在PL中使用用戶定義的處理來(lái)處理,因此,自適應(yīng)交換體系結(jié)構(gòu)具有與COTS交換機(jī)兼容的總吞吐量。

審核編輯:何安

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1624

    文章

    21539

    瀏覽量

    600498
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何使用反射內(nèi)存交換機(jī)

    反射內(nèi)存交換機(jī)是一種用于實(shí)現(xiàn)高速數(shù)據(jù)共享和通信的關(guān)鍵設(shè)備,以下是關(guān)于如何使用反射內(nèi)存交換機(jī)的詳細(xì)介紹:一、前期準(zhǔn)備?在開始使用反射內(nèi)存交換機(jī)之前,需要進(jìn)行以下準(zhǔn)備工作:?1.了解系統(tǒng)需
    發(fā)表于 09-14 09:23 ?0次下載

    二層交換機(jī)和三層交換機(jī)有什么區(qū)別

    交換機(jī)分為二層交換機(jī)和三層交換機(jī),它們?cè)诠δ?、?yīng)用場(chǎng)景和技術(shù)實(shí)現(xiàn)上有明顯區(qū)別。
    的頭像 發(fā)表于 08-07 15:33 ?818次閱讀

    園區(qū)交換機(jī) VS 數(shù)據(jù)中心交換機(jī)

    園區(qū)交換機(jī)和數(shù)據(jù)中心交換機(jī)交換機(jī)領(lǐng)域的兩大類別,很多人都很熟悉。但是,這兩者之間的區(qū)別并不是很清楚。在本文中,我們將對(duì)園區(qū)交換機(jī)和數(shù)據(jù)中心交換機(jī)
    的頭像 發(fā)表于 06-24 15:33 ?456次閱讀
    園區(qū)<b class='flag-5'>交換機(jī)</b> VS 數(shù)據(jù)中心<b class='flag-5'>交換機(jī)</b>

    數(shù)據(jù)中心交換機(jī)購(gòu)買指南

    由于數(shù)據(jù)中心網(wǎng)絡(luò)基礎(chǔ)設(shè)施變得更加分散,數(shù)據(jù)中心交換機(jī)正在成為一種新型交換機(jī)。與傳統(tǒng)的三層架構(gòu)網(wǎng)絡(luò)的交換機(jī)不同,數(shù)據(jù)中心級(jí)交換機(jī)旨在支持關(guān)鍵任
    的頭像 發(fā)表于 06-11 16:37 ?412次閱讀

    交換機(jī)怎么配置IP地址

      在構(gòu)建和管理網(wǎng)絡(luò)架構(gòu)中,交換機(jī)作為核心設(shè)備之一,其IP地址的配置是確保網(wǎng)絡(luò)正常運(yùn)行的重要步驟。正確配置交換機(jī)的IP地址,可以使得網(wǎng)絡(luò)設(shè)備之間能夠正常通信,并實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)的有效管理。本文將詳細(xì)
    的頭像 發(fā)表于 06-06 11:16 ?8469次閱讀

    廣域網(wǎng)交換機(jī)與局域網(wǎng)交換機(jī)的區(qū)別

      在構(gòu)建和管理網(wǎng)絡(luò)架構(gòu)時(shí),交換機(jī)作為核心設(shè)備,其選擇和配置直接影響到網(wǎng)絡(luò)的性能、可靠性和安全性。廣域網(wǎng)交換機(jī)和局域網(wǎng)交換機(jī)作為兩種不同類型的交換機(jī)
    的頭像 發(fā)表于 06-06 11:07 ?725次閱讀

    交換機(jī)的基本分類

      交換機(jī)作為網(wǎng)絡(luò)通訊中的核心設(shè)備之一,其在網(wǎng)絡(luò)架構(gòu)中起著至關(guān)重要的作用。隨著信息技術(shù)的飛速發(fā)展,交換機(jī)也在不斷演進(jìn)和革新,以滿足日益復(fù)雜的網(wǎng)絡(luò)需求。本文將對(duì)交換機(jī)的分類及其特點(diǎn)進(jìn)行詳
    的頭像 發(fā)表于 06-06 11:06 ?1157次閱讀

    淺談交換機(jī)的發(fā)展歷史

      交換機(jī)作為網(wǎng)絡(luò)通訊中的關(guān)鍵設(shè)備,其發(fā)展歷程見證了信息技術(shù)的飛速進(jìn)步和網(wǎng)絡(luò)架構(gòu)的持續(xù)優(yōu)化。從早期的電路交換到現(xiàn)代的以太網(wǎng)交換,再到未來(lái)的可編程交換
    的頭像 發(fā)表于 06-06 11:05 ?1334次閱讀

    交換機(jī)芯片架構(gòu)的演變

    交換機(jī)芯片架構(gòu)的演變是隨著網(wǎng)絡(luò)技術(shù)的發(fā)展和數(shù)據(jù)處理需求的增長(zhǎng)而逐步推進(jìn)的。
    的頭像 發(fā)表于 03-26 15:03 ?597次閱讀

    交換機(jī)的作用與功能 交換機(jī)的基本配置

    的 MAC 地址進(jìn)行數(shù)據(jù)的無(wú)沖突傳輸,提高了網(wǎng)絡(luò)傳輸?shù)男屎头€(wěn)定性。本文將詳細(xì)介紹交換機(jī)的作用、功能以及基本配置。 一、交換機(jī)的作用與功能 數(shù)據(jù)的轉(zhuǎn)發(fā)與交換
    的頭像 發(fā)表于 02-04 09:17 ?1.3w次閱讀

    匯聚交換機(jī)和核心交換機(jī)區(qū)別

    匯聚交換機(jī)和核心交換機(jī)是網(wǎng)絡(luò)中常見的兩種交換機(jī)設(shè)備,在網(wǎng)絡(luò)中扮演著不同的角色和功能。雖然它們的主要目標(biāo)是提供高速、高效的數(shù)據(jù)交換和數(shù)據(jù)傳輸,但在設(shè)計(jì)和使用上有一些區(qū)別。本文將
    的頭像 發(fā)表于 01-22 14:32 ?3351次閱讀

    交換機(jī)級(jí)聯(lián)是什么意思?交換機(jī)級(jí)聯(lián)和堆疊的區(qū)別

    交換機(jī)的級(jí)聯(lián)是指兩臺(tái)或兩臺(tái)以上的交換機(jī)通過(guò)一定的方式相互連接,根據(jù)需要,多臺(tái)交換機(jī)可以以多種方式進(jìn)行級(jí)聯(lián)。在較大的局域網(wǎng)例如園區(qū)網(wǎng)(校園網(wǎng))中,多臺(tái)交換機(jī)按照性能和用途一般形成總線型、
    的頭像 發(fā)表于 12-16 17:01 ?2062次閱讀

    交換機(jī)堆疊是什么意思?交換機(jī)堆疊的作用

    交換機(jī)堆疊是指將一臺(tái)以上的交換機(jī)組合起來(lái)共同工作,以便在有限的空間內(nèi)提供盡可能多的端口。具體來(lái)說(shuō),多臺(tái)交換機(jī)經(jīng)過(guò)堆疊形成一個(gè)堆疊單元。這些交換機(jī)之間距離非常近,一般不超過(guò)幾米,而且一般
    的頭像 發(fā)表于 12-15 17:39 ?3000次閱讀

    核心交換機(jī)和普通交換機(jī)的區(qū)別?

    核心交換機(jī)和普通交換機(jī)的區(qū)別? 核心交換機(jī)(Core Switch)是網(wǎng)絡(luò)中的重要組成部分,與普通交換機(jī)(Regular Switch)有許多區(qū)別。在這篇文章中,我將詳細(xì)
    的頭像 發(fā)表于 12-07 14:39 ?1414次閱讀

    到底什么是交換機(jī)?交換機(jī)接口大揭秘

    交換機(jī)是一種用于電(光)信號(hào)轉(zhuǎn)發(fā)的網(wǎng)絡(luò)設(shè)備,可以為接入交換機(jī)的任意兩個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)提供獨(dú)享的電信號(hào)通路。
    的頭像 發(fā)表于 11-06 09:33 ?1328次閱讀