《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 一種改進的高性能處理器網絡子系統架構設計
一種改進的高性能處理器網絡子系統架構設計
2017年電子技術應用第1期
李龍飛,史陽春,王劍峰,賀占莊
西安微電子技術研究所,陜西 西安710065
摘要: 針對傳統處理器網絡子系統在高速網絡環境下的性能瓶頸,特別是BD管理效率低、數據傳輸延遲大等問題,提出一種改進的網絡子系統架構。該架構將BD管理功能從NIC上移至處理器,并擴展了BD信息,同時增加了cache的查找和讀后無效操作。通過Simics模擬器對系統架構進行了仿真及評估。實驗結果表明,較傳統的架構和采用DCA技術的架構相比,改進后架構在取得了更高帶寬利用率的同時,降低了CPU利用率,更好地保持了性能和資源的平衡。
中圖分類號: TN402
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2017.01.012
中文引用格式: 李龍飛,史陽春,王劍峰,等. 一種改進的高性能處理器網絡子系統架構設計[J].電子技術應用,2017,43(1):46-49.
英文引用格式: Li Longfei,Shi Yangchun,Wang Jianfeng,et al. An improved high performance architecture of processor network subsystem[J].Application of Electronic Technique,2017,43(1):46-49.
An improved high performance architecture of processor network subsystem
Li Longfei,Shi Yangchun,Wang Jianfeng,He Zhanzhuang
Department of Integrated Circuit Design,Xi′an Microelectronics Technology Institute,Xi′an 710065,China
Abstract: Traditional architectural designs are normally focused on CPU and network subsystem have been a performance bottleneck for high speed network processing. Aiming at solving long transmitting latency and promoting I/O performance, an improved network subsystem architecture was proposed. This architecture, by shifting BD management from NICs to an on-chip BD engine in CPU, allowed BD management to have very fast access to descriptors and keeps packets in CPU cache instead of NIC buffers, significantly simplifying NICs. Simulation platforms were set up based on Simics. Experimental results show that the architecture we put forward not only improves the network processing efficiency, but also eliminates CPU workload, keeps good balance between performance and resource compared with traditional network subsystem architecture.
Key words : NIC;network subsystem;BD management;BD Engine

0 引言

    高速增長的網絡帶寬需要處理器具有足夠的運算能力,同時也要求NIC(Network Interface Card)有高效的數據傳輸能力,這給處理器網絡子系統設計帶來了很多新的困難和挑戰。實驗數據表明,在萬兆以太網(10GbE)環境下,網絡數據的接收可以耗盡Intel至強四核處理器中2個核的處理能力[1]。這種網絡速率與處理速率不平衡的情況影響了系統正常工作的性能,同時也直接增大了NIC的設計復雜度。

    為了解決上述問題,國內外研究學者近年來已從體系結構、協議棧、系統軟件等方面進行了諸多研究。文獻[2-4]提出了TCP/IP Offload(TCP/IP卸載)技術;文獻[5]提出遠程直接數據存取(Remote Direct Memory Access,RMDA)技術;文獻[6]從減小處理器與NIC交互次數切入,提出中斷聚合、幀聚合以及大段數據分割技術。但這些方案無一例外都只關注于網絡處理中的局部過程,并不能給系統處理效率帶來顯著的提升,且不具有通用性。

    本文在分析了傳統處理器網絡子系統架構、工作原理和缺陷后,提出一種基于體系結構改進的網絡子系統設計方案。該方案通過將數據幀管理單元從NIC上移到處理器中,解決了傳統架構中NIC需要先獲取幀描述信息才能傳輸數據的問題,從而減小了處理器與NIC的交互壓力,提高了系統網絡處理效率和吞吐率。

1 傳統網絡子系統架構

1.1 網絡處理流程

    網絡數據處理是一種I/O敏感的過程,而且還涉及到諸多硬件(例如NIC,PCI-E等)和軟件(例如TCP/IP協議,驅動程序)。一個數據幀的接收,開始于NIC和驅動程序的交互。緩存描述符(Buffer Descriptor,BD)作為NIC和驅動程序之間溝通的橋梁,其包含的信息會指明NIC中接收到的數據幀在內存中的存儲地址,即BD中包含了一個有效的套接字緩沖區(Linux中稱為SKB Buffer)。根據以太網幀的最大傳輸單元,SKB Buffer的大小為1 518 B。BD在主機的內核空間中形成一個BD環,配合產生指針和消耗指針動態地維護著BD與SKB Buffer之間的更新與同步。

    典型的網絡處理接收流程如圖1所示。在接收數據之前,NIC首先需要通過PCI-E總線獲取BD,并保存在NIC本地(步驟1)。當從網絡中接收到數據幀后(步驟2),NIC通過PCI-E中的DMA將數據幀傳輸到BD指定的SKB Buffer中(步驟3)。一旦數據幀放入緩存,NIC會更新該BD信息,增加例如幀長、VLAN等信息,并將更新后的BD傳輸到返回BD環中(步驟4)。接著,NIC會通過PCI-E向CPU產生MSI中斷(步驟5)。CPU收到中斷請求后會去返回BD環中讀取BD,從而獲取到數據幀的地址和長度,并將數據幀映射到SKB數據結構中(步驟6)。當驅動程序將SKB Buffer傳遞到協議棧后,驅動程序會初始化BD信息并將釋放SKB Buffer,以便后續收到的數據幀使用(步驟7)。協議棧處理完成后,數據幀會被傳輸到最終的應用程序,即到達用戶空間。至此,一次數據幀的接收過程結束。

wdz9-t1.gif

1.2 處理開銷分析

    在高速網絡環境下,NIC面臨諸多挑戰。首先,在有效的數據傳輸之前,NIC需要通過PCI-E訪問內核空間來獲取BD,從本質上講其不屬于網絡數據傳輸,顯然會增加不必要的開銷。研究表明,一次PCI-E的往返傳輸大約需要2 200 ns,這主要是由于復雜的PCI-E傳輸協議以及DMA請求競爭造成的[7]

    除此之外,在典型的網絡處理流程中,數據復制以及SKB Buffer釋放也是目前主要的網絡處理開銷。數據復制主要是指網絡數據在傳輸過程中的三次復制,分別為從網絡中復制到NIC緩存,從NIC緩存復制到系統內核空間,從系統內核空間復制到用戶空間。這種頻繁的復制會給CPU造成額外的負擔,從而影響了其工作效率,增加了應用計算的平均等待時間。當數據被復制到應用程序緩沖區后,SKB Buffer需要進行釋放,而cache未命中是造成Buffer釋放開銷大的首要原因。雖然增大cache可以減小cache未命中情況的發生,但卻不能解決NIC與驅動交互以及數據復制等問題,因此在實際應用中意義不大。

2 網絡子系統設計

2.1 總體架構

    本質上講,本文所提出的網絡子系統架構是將傳統方案中的整套BD管理單元從NIC上移到處理器中,也就是說,在處理器端口與cache之間集成一個具有BD管理功能的單元,稱之為BD引擎(BD Engine,BDE),如圖2所示。將BDE集成于處理器內部使其具有更強的靈活性,同時也可以擴展BD中對數據幀的描述信息。除此之外,由于BDE可以直接訪問cache,因此不僅可以更快地讀寫BD以及數據,而且進一步減小了訪問開銷,減輕了PCI-E壓力。與存儲控制器類似,BDE采用I/O Hub來實現PCI-E與處理器的連接。

wdz9-t2.gif

    當BDE接收到一個數據幀時,其從cache中讀取BD,接著將數據移動到對應的cache地址中,并且預加載可能引起存儲器停頓的數據。本文提出的網絡子系統架構采用cache來緩存數據,而不再使用NIC中的發送接收隊列。當前高速NIC廣泛采用接收端調控(Receive Side Scaling,RSS)技術來平衡多核處理器的網絡負載,因此CPU中的每個核都會分配指定的一對接收和發送隊列。然而這樣的架構會增加NIC的開銷,同時也影響了可測量性。改進的架構保持了對RSS技術的兼容性,BDE同時還實現了cache內的有效負載移動,并且提前清理cache中已經被復制的數據。

2.2 BDE設計

    在傳統的架構中,在發送和接收數據之前,NIC都需要通過PCI-E總線讀寫BD,這會產生很多的延遲,同時也會增大DMA壓力。相對來講,由于BDE可以直接訪問cache,交互速度較快,因此有效解決了上述問題。更重要的是,這使得BDE可以擴展BD信息。本文對接收BD信息進行擴展,增加了導致存儲器停頓數據的信息,即SKB和頁數據地址。在傳統的架構中,BD信息一般為16字節,包括數據幀存儲的地址、長度、VLAN等信息。本文在此基礎上增加了4字節的SKB地址和4字節的頁地址,同時根據緩存行(cache line)的數目,在BDE中采用兩個專用寄存器來存儲SKB和頁長度。在GbE環境下,接收環中通常保存1 024個BD,因此在增加了BD信息后,新架構下的接收環只增加了8 KB。

    為了與傳統架構對比,下面以數據接收過程為例對BDE各功能模塊進行介紹,其結構如圖3所示。當NIC收到數據幀后,其不需要獲取BD,而是直接將數據幀及相關信息送入BDE中的接收緩存。與NIC一樣,BDE也采用專用的寄存器來存儲BD環的基地址和環指針信息。BD獲取單元根據寄存器中的環基地址、指針地址,鎖定對應的BD地址,然后發起讀cache請求獲取BD。在得到了數據的存儲地址后,數據寫入單元將會把數據寫入cache中對應的地址。為了加速數據寫入操作,查找加載單元會對數據幀進行查找和預加載。通過查找操作可以返回數據是否在cache中,當查找的數據不在cache中時,查找加載單元會給硬件邏輯發起預獲取指令。當數據幀放入cache后,BDE中的BD更新模塊和指針更新模塊會對BD狀態和指針信息進行更新。

wdz9-t3.gif

    因為cache中的數據幀在被應用程序復制后實質就無效了,因此為了更有效地實現數據幀在cache中的移動,本文擴展了cache架構,提出了新的cache操作:讀后無效。在BDE中,數據移動模塊會在原數據復制后使cache行無效來清除數據。在數據的復制過程中,TCP/IP協議會通過源地址、目的地址和長度三個寄存器對BDE進行控制。在這種情況下,BDE將連續的物理地址以cache行間隔分割為一系列塊。當執行讀后無效操作時,讀源cache行數據,將讀到的數據寫入目的cache行,并使源cache行無效。該操作不僅避免了不必要的臟數據寫回,而且不需要虛擬地址到物理地址的轉換。

    改進后的架構使NIC的設計復雜度顯著降低,NIC不再需要對BD進行管理和更新,可以直接將MAC接收到的數據幀通過PCI-E傳輸至上層,因此也不必再使用隊列對數據幀進行緩存。這不僅減小了硬件邏輯復雜度,也降低了存儲開銷。

3 實驗評估

    采用全系統模擬器Simics對本文提出的網絡子系統架構進行模擬仿真。Simics是一款高性能的系統模擬器,它提供了一個受控制的、確定性的完全虛擬環境模擬平臺,可模擬多種CPU、硬盤、網卡等[8]。使用器件建模語言對本文提出的網絡子系統進行描述,設計了一個帶有中斷聚合功能的萬兆以太網NIC和一個集成了BDE的處理器,其具體配置參數如表1所示。為了進行橫向對比,分別對傳統網絡子系統架構以及DCA(Direct Cache Access)架構進行了模擬。

wdz9-b1.gif

    實驗中三種架構均連接一個帶寬、雙工模式可配置的以太網鏈路,且指定鏈路中傳輸延時為1 μs。采用Iperf作為測試向量[9],分別在10 M、100 M、1 G以及10 G帶寬下對三種架構進行實驗,重點關注三種架構所能達到的實際帶寬和對應的處理器利用率。規定實際帶寬與理論帶寬的比值為帶寬利用率,其值越接近1則表明實際網絡吞吐率越大。實驗得到的帶寬利用率對比圖如圖4所示。從圖中可以看出,在10 M和100 M網絡環境下,三種架構均達到了理論最大帶寬。然而當帶寬擴大到1 G和10 G后,傳統架構下的實際網絡帶寬明顯低于了理論值,帶寬利用率分別為91.3%和80.5%。對于DCA架構和改進后的架構,在1G網絡環境下兩者基本都達到理論帶寬值,而在10 G網絡環境下,DCA架構的帶寬利用率略高于改進后架構。

wdz9-t4.gif

    圖5示出了不同網絡環境下三種架構的處理器利用率。在1 G和10 G帶寬下,傳統架構的CPU利用率大幅度上升,分別達到了45.2%和54.1%。對比圖4和圖5,對實驗數據進行發掘,可以得到盡管在1 G帶寬下DCA架構與改進架構的帶寬利用率基本相同,但其CPU利用率卻明顯高于改進架構;在10 G帶寬下,DCA架構的帶寬利用率和CPU利用率較改進架構均有略微的提高。綜上,較傳統架構和DCA架構,改進的架構在帶寬利用率和CPU利用率上取得了更好的平衡性。

wdz9-t5.gif

4 結論

    本文立足于高速網絡環境下的處理器網絡子系統架構優化,通過分析傳統網絡子系統架構以及網絡處理流程,提出一種改進的高性能處理器子系統架構。該架構通過將BD管理單元從NIC上移至處理器,解決了傳統架構中繁瑣的BD管理與更新問題,減小了處理器與NIC的交互壓力,提高了系統網絡處理效率和吞吐率。未來的研究工作可以從以下幾方面展開:結合具體處理器架構對改進的網絡子系統架構進行實現,并開發配套驅動程序以便在真實的網絡環境中對該架構進行驗證和性能評估。

參考文獻

[1] KUMAR A,HUGGAHALLI R,MAKINENI S.Characterization of direct cache access on multi-core systems and 10gbe[C]//2009 IEEE 15th International Symposium on High Performance Computer Architecture.IEEE,2009:341-352.

[2] UCHIDA T.Hardware-based TCP processor for gigabit ethernet[J].IEEE Transactions on Nuclear Science,2008,55(3):1631-1637.

[3] WU Z Z,CHEN H C.Design and implementation of TCP/IP offload engine system over gigabit Ethernet[C]//Proceedings of 15th International Conference on Computer Communications and Networks.IEEE,2006:245-250.

[4] 趙喜全,劉興奎,邵宗有,等.基于FPGA的TOE網卡設計與實現[J].Computer Engineering,2011,37(3).

[5] 王紹剛,徐煒遐,吳丹,等.一種面向不可靠網絡的快速RDMA通信方法[J].湖南大學學報:自然科學版,2015,42(8):100-107.

[6] HUGGAHALLI R,IYER R,TETRICK S.Direct cache access for high bandwidth network I/O[C]//ACM SIGARCH Computer Architecture News.IEEE Computer Society,2005,33(2):50-59.

[7] MILLER D J,WATTS P M,MOORE A W.Motivating future interconnects:a differential measurement analysis of pci latency[C]//Proceedings of the 5th ACM/IEEE Symposium on Architectures for Networking and Communications Systems.ACM,2009:94-103.

[8] MAGNUSSON P S,CHRISTENSSON M,ESKILSON J,et al.Simics:A full system simulation platform[J].Computer,2002,35(2):50-58.

[9] TIRUMALA A,QIN F,DUGAN J,et al.Iperf:The TCP/UDP bandwidth measurement tool[J].http://dast.nlanr.net/Projects,2005.



作者信息:

李龍飛,史陽春,王劍峰,賀占莊

(西安微電子技術研究所,陜西 西安710065)

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲美女免费精品视频在线观看| 一区二区日韩精品| 欧美激情视频一区二区三区在线播放| 亚洲欧美卡通另类91av| 亚洲区免费影片| 午夜精品久久久久久久99樱桃| 亚洲第一天堂av| 国产精品亚发布| 欧美日韩一二区| 欧美高清视频在线观看| 久久频这里精品99香蕉| 亚洲欧美国产毛片在线| 亚洲精品日产精品乱码不卡| 在线视频欧美日韩| 91久久精品国产| 精品成人在线| 欧美日韩不卡| 美日韩丰满少妇在线观看| 久久xxxx| 久久成人免费日本黄色| 一区二区三区成人精品| 91久久久精品| 久久精品国产亚洲aⅴ| 亚洲天堂网在线观看| 亚洲靠逼com| 亚洲激情在线激情| 亚洲第一区在线观看| 黄色国产精品| 国内精品免费在线观看| 国产亚洲欧美在线| 国产欧美日韩免费| 国产精品青草久久| 国产精品高清一区二区三区| 欧美日韩精品三区| 美女视频网站黄色亚洲| 蜜臀久久99精品久久久画质超高清 | 国产精品一区二区视频| 欧美日韩一区二区精品| 欧美成人国产一区二区| 麻豆精品一区二区综合av| 老色鬼精品视频在线观看播放| 久久久免费观看视频| 久久久噜噜噜久久| 蜜桃av一区二区三区| 欧美xx69| 欧美激情一区二区三区高清视频| 欧美激情一区二区三区四区| 亚洲最快最全在线视频| 国产欧美日韩亚洲精品| 韩日成人av| 亚洲精品日韩精品| 亚洲午夜激情免费视频| 小嫩嫩精品导航| 亚洲精品国产无天堂网2021| 中文一区二区在线观看| 久久精品成人欧美大片古装| 欧美成人免费va影院高清| 国产精品久久久一区二区| 在线国产精品播放| 亚洲性色视频| 亚洲日韩欧美一区二区在线| 亚洲欧美日韩国产综合| 六月丁香综合| 国产精品久久久久9999高清| 在线观看国产成人av片| 一本色道久久综合亚洲91| 久久成人国产精品| 亚洲在线视频网站| 欧美xxx成人| 国产日韩欧美日韩| 99精品国产99久久久久久福利| 欧美一区二区三区四区高清| 一本久道综合久久精品| 欧美日韩免费精品| 免费91麻豆精品国产自产在线观看| 欧美视频在线看| 亚洲福利视频二区| 亚洲已满18点击进入久久| 亚洲精选国产| 久久久精品国产一区二区三区| 欧美人与性动交α欧美精品济南到| 国产日产欧产精品推荐色 | 樱桃成人精品视频在线播放| 一本色道久久综合亚洲精品不| 亚洲福利视频免费观看| 午夜欧美大尺度福利影院在线看| 欧美激情成人在线| 精品1区2区3区4区| 午夜精品福利电影| 亚洲夜晚福利在线观看| 欧美国产激情| 禁断一区二区三区在线| 性高湖久久久久久久久| 亚洲欧美国产高清va在线播| 欧美日韩视频专区在线播放 | 18成人免费观看视频| 欧美一区成人| 亚洲欧美一区二区三区在线| 欧美激情综合五月色丁香| 亚洲第一精品夜夜躁人人爽| 日韩视频中午一区| 亚洲欧洲在线视频| 久久综合网hezyo| 国产一区二区剧情av在线| 亚洲欧美电影在线观看| 亚洲免费在线精品一区| 欧美午夜精品久久久| 亚洲老板91色精品久久| 一本一本大道香蕉久在线精品| 欧美激情1区2区| 亚洲韩日在线| 亚洲精品一区在线| 欧美激情一区二区三级高清视频| 在线观看亚洲视频| 亚洲国产成人精品久久| 久久夜色精品国产欧美乱极品| 国产一级久久| 欧美主播一区二区三区美女 久久精品人 | 欧美日韩喷水| 99热精品在线观看| 亚洲一区二区三区中文字幕| 国产精品久久久久久久第一福利| 妖精成人www高清在线观看| 中文精品视频一区二区在线观看| 欧美日韩免费在线观看| 国内精品美女在线观看| 日韩一级免费| 亚洲午夜电影网| 欧美性色综合| 亚洲婷婷在线| 午夜久久美女| 国产一区二区三区四区hd| 欧美一区影院| 快播亚洲色图| 亚洲欧洲日本mm| 这里只有精品视频在线| 国产精品家庭影院| 亚洲国产黄色| 制服丝袜激情欧洲亚洲| 国产精品久久久久久久久久久久久| 亚洲专区在线视频| 久久久蜜桃精品| 亚洲高清av| 亚洲天堂黄色| 欧美一级在线播放| 国产精品综合网站| 99精品国产在热久久婷婷| 亚洲在线免费视频| 国产日韩欧美亚洲| 亚洲国产欧美不卡在线观看| 欧美顶级艳妇交换群宴| 国产精品99久久久久久白浆小说| 欧美一区二区私人影院日本| 韩日欧美一区| 夜夜嗨av一区二区三区免费区| 国产精品久久久久久妇女6080| 欧美伊人久久| 欧美激情在线观看| 亚洲视频在线观看一区| 久久激情久久| 亚洲精品乱码久久久久久蜜桃91| 午夜精品久久久久久久99热浪潮| 国产综合av| 一区二区三区产品免费精品久久75 | 欧美日韩国产成人在线观看| 亚洲婷婷综合久久一本伊一区| 久久精品亚洲一区二区| 亚洲二区在线视频| 亚洲在线视频| 影音先锋久久资源网| 亚洲图片欧美一区| 国内精品久久久| 一区二区免费在线播放| 国产视频亚洲精品| 在线视频精品一区| 国产三级精品在线不卡| 亚洲精品免费网站| 国产精品欧美久久| 亚洲欧洲一区二区三区| 国产精品一区二区欧美| 亚洲区国产区| 国产精品视频网| 亚洲精品视频在线观看网站 | 亚洲精品影视| 久久久蜜桃一区二区人| 亚洲美女精品成人在线视频| 久久久999国产| 一区二区欧美激情| 欧美xxx成人| 亚洲欧美日韩另类精品一区二区三区| 欧美夫妇交换俱乐部在线观看| 亚洲欧美精品一区| 欧美精品www在线观看| 欧美在线播放一区二区| 欧美日韩亚洲一区在线观看| 亚洲福利视频免费观看| 国产精品影音先锋| 一区二区国产精品| 在线观看一区| 久久精品国产综合精品|