用PowerPC實現(xiàn)高帶寬 TCP/IP 性能
千兆位以太網(wǎng)性能的獲得是通過利用多端口 DDR 存儲器控制器,在嵌入式 PowerPC處理器局部總線 (PLB) 接口與兩個數(shù)據(jù)端口之間分配存儲器帶寬而實現(xiàn)的。每個數(shù)據(jù)端口連接到一個直接存儲器訪問 (DMA) 控制器,從而允許硬件外設(shè)對存儲器進行高帶寬訪問。
系統(tǒng)架構(gòu)
存儲器帶寬對高性能網(wǎng)絡(luò)連接應(yīng)用來說是一個重要考慮事項。通常,外部 DDR 存儲器為處理器和一個或多個高帶寬外設(shè)(如以太網(wǎng))所共享。一個多端口存儲器控制器負(fù)責(zé)將可用存儲器帶寬高效地分配給處理器接口和流式外設(shè),包括以太網(wǎng)。流式外設(shè)通過點對點流式接口由直接存儲器訪問 (DMA) 控制器鏈接到存儲器。DMA 控制器實行分散-收集 (scatter-gather) 機制,由此將多個緩沖區(qū)轉(zhuǎn)換到以太網(wǎng)或其他流式外設(shè)上的一個數(shù)據(jù)流,或相反。以太網(wǎng)外設(shè)對發(fā)送和接收路徑同時實行校驗和卸載,以優(yōu)化 TCP 性能。下圖顯示了上述系統(tǒng)的一種框圖。
TCP/IP 單位字節(jié)處理成本
當(dāng)處理器處理有效載荷數(shù)據(jù)時就會產(chǎn)生單位字節(jié)處理成本。這種類型的兩個最常見的操作是緩沖區(qū)復(fù)制和 TCP 校驗和計算。緩沖區(qū)復(fù)制意味著重大處理開銷,這有兩個原因:
1. 大部分復(fù)制都不是必要的。
2. 處理器不是高效的數(shù)據(jù)搬運工。
TCP 校驗和計算代價高昂,因為需要對每個有效載荷數(shù)據(jù)字節(jié)進行計算。支持嵌入式 TCP/IP 的應(yīng)用(如醫(yī)療成像)要求使用接近線速的 TCP 帶寬,以便通過千兆位以太網(wǎng)可靠地傳輸圖像數(shù)據(jù)。數(shù)據(jù)是從高分辨率圖像源生成的,而不是處理器。這種情況下,引入零復(fù)制軟件 API 并將校驗和計算利用FPGA 邏輯結(jié)構(gòu)實現(xiàn),將徹底地消除單位字節(jié)處理成本。"零復(fù)制"是用來描述一個 TCP 軟件接口不會發(fā)生任何緩沖區(qū)復(fù)制的術(shù)語。Linux 和其他操作系統(tǒng)已經(jīng)引入了用于此目的的軟件接口,商用獨立 TCP/IP 棧廠商如 Treck 也提供了類似的零復(fù)制特性。這些軟件特性允許消除用戶應(yīng)用程序與 TCP/IP ?;虿僮飨到y(tǒng)之間的緩沖區(qū)復(fù)制。
系統(tǒng)的分散-收集與校驗和卸載特性為零復(fù)制功能提供了所需的硬件支持。分散-收集特性是 DMA 控制器的一種靈活性,它允許軟件緩沖區(qū)位于任意字節(jié)偏移處。這避免了處理器復(fù)制未對齊或碎片化的緩沖區(qū)。
校驗和卸載是以太網(wǎng)外設(shè)的一種特性。它允許當(dāng)以太網(wǎng)幀在主存儲器與外設(shè)的硬件 FIFO 之間傳輸時,在 FPGA 結(jié)構(gòu)中進行 TCP 有效載荷的校驗。這些系統(tǒng)特性消除了代價較高的緩沖區(qū)復(fù)制與處理器校驗和操作,讓處理器專心執(zhí)行協(xié)議操作和用戶功能。
TCP/IP 單位包處理成本
單位包處理成本與涉及包的發(fā)送或接收的操作有關(guān)。包中斷、硬件接口和頭處理等,都是單位包處理成本的例子。中斷處理成本對處理器和存儲器子系統(tǒng)構(gòu)成相當(dāng)大的負(fù)擔(dān),特別是在傳輸小包時。中斷結(jié)合 (Interrupt coalescing) 是此類系統(tǒng)中用來緩解這種壓力的一種技術(shù),它將中斷處理成本通過多個包分期攤還。DMA 引擎將一直等待,直到出現(xiàn) n 個要處理的幀,然后才中斷處理器,其中 n 是一個軟件可調(diào)的值。
通過減少傳輸幀的數(shù)量,大尺寸包(9,000 字節(jié)的巨幀)的傳輸具有相似的效果,由此可得到中斷數(shù)。它把單位包處理成本分?jǐn)傇谝粋€較大的數(shù)據(jù)有效載荷上。
設(shè)計實現(xiàn)
實現(xiàn)這種體系結(jié)構(gòu)的一個例子是賽靈思公司的千兆位系統(tǒng)參考設(shè)計 (GSRD)。它面向基于 TCP/IP 的協(xié)議與用戶數(shù)據(jù)接口(如高分辨率圖像捕捉或光纖信道)之間的高性能橋接。GSRD 的組件包含解決 TCP/IP 系統(tǒng)的單位字節(jié)處理成本和單位包處理成本的特性。對于需要使用嵌入式操作系統(tǒng)的應(yīng)用,可提供 MontaVista Linux端口和來自 Treck 的商業(yè)獨立 TCP/IP 棧,以滿足具有最高帶寬要求的應(yīng)用。GSRD 使用巨幀可提供高達 890 Mbps 的發(fā)送 TCP 性能,可采用賽靈思公司目前最新的 FPGA 技術(shù)來實現(xiàn)。 GSRD 可以從 http://www.xilinx.com/gsrd/ 下載得到。
評論