999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于硬件多線程機制的網絡處理器微引擎設計

2022-02-25 14:45:18劉思遠任敏華谷航平
微型電腦應用 2022年2期
關鍵詞:引擎指令設計

劉思遠, 任敏華, 谷航平

(華東計算技術研究所,先進集成電路研究院, 上海 201808)

0 引言

提高網絡處理器性能的方法有很多種,最直接高效的就是并行處理技術[1-2],利用多個結構相同的微引擎能夠提高處理并行度,在一個微引擎中采用多個線程同樣能夠提高處理并行度[3]。路由器往往需要同時處理成百上千用戶的信息接受和轉發[4],微引擎在接收到數據包后,開始對其進行解析處理,而在程序指令訪問外部存儲器時,微引擎只能處于等待狀態,造成性能資源的浪費[5]。由于網絡交換中的各數據包相關性很低,因此可以將軟件中常用的多線程調度機制引入微引擎的硬件設計中[6-7]。本文設計了一種8線程微引擎,相較于傳統的4線程或單線程微引擎,它能夠實現微引擎各線程的高速切換,大大提升微引擎的執行效率,并采用了專用的線程切換指令、信號機制和指令切換存儲器,以此來實現一整套微引擎硬件體系結構,并在仿真平臺上驗證了該設計的高效性。

1 微引擎組介紹

該款網絡處理器共有40個微引擎,分為5組,每組8個微引擎核,支持硬件8線程,工作頻率500 MHz,可同時做320個數據處理,GPR(General Purpose Registers)為32 bit,其硬件結構示意圖如圖1所示。

圖1 網絡處理器結構示意圖

這些微引擎組分別執行數據包的主要處理任務,如接收、解析、分類、轉發等任務,微引擎之間的通信參數由Scratchpad存儲,支持原子操作和環操作,不會被線程調度所打斷。以IPv4路由轉發為例,該網絡處理器各微引擎的工作流程如圖2所示。

圖2 IPv4路由轉發中微引擎之間的數據通路

本設計中的微引擎內核為五級單發射的流水MIPS架構,從二級譯碼級收到切換指令到線程完成切換需要4個時鐘周期。微引擎在處理報文中的數據時,會通過外設命令調用協處理器如Hash加速器或外部存儲器如DDR控制器來處理數據[8-9]。

2 多線程微引擎設計

2.1 多線程寄存器模塊

對于每個微引擎的單個線程,一共有4種狀態,分別為未激活態、運行態、就緒態和睡眠態,本設計為其配置了專用的硬件系統模塊來存放處理切換狀態,其中包括:信號事件寄存器SIG_EVT_REG、程序指針寄存器PGM_PTR_REG、狀態控制寄存器STA_CTL_REG,其結構如圖3所示。

圖3 多線程模塊結構示意圖

2.2 多線程仲裁機制

本設計通過Round-Robin算法來調度8個線程,與硬件中斷機制不同,這是一種非搶占式機制。在微引擎收到線程切換指令Context_ARB時,信號事件寄存器和程序指針寄存器會記錄所有睡眠線程,而狀態控制寄存器則根據即時的各線程狀態來維護線程切換狀態機,線程仲裁器則從就緒線程中,以和睡眠線程等待信號量匹配為原則,選出就緒狀態線程,準備激活運行,同時將此線程的程序指針寄存器中的值作為微引擎的程序指針,等收到切換線程指令后立即執行指令存儲器中的指令,從而實現流水線指令的快速對接,且不因線程切換導致微引擎指令的停止[10]。圖4為多線程狀態機示意圖。

圖4 多線程狀態機示意圖

本設計中的8線程微引擎,相較于單線程,理論上能夠提升8倍的微引擎處理速度,在實際的應用中也能獲得非常可觀的效率提升[11]。圖5為8線程切換示意圖。

圖5 8線程切換示意圖

2.3 微引擎的執行權

微引擎在運行態擁有微引擎的執行權,線程在執行完切換指令后隨即進入睡眠態,被仲裁出來的就緒線程則獲得執行權,激活態線程的狀態寄存器則會記錄下目前處于運行態的線程,保證同一時刻只有一個線程在運行。

2.4 微引擎指令存儲器

本設計中的每個微引擎的硬件線程都有自己的L1數據緩存,每個微引擎中的8個線程共享一個L1指令緩存,40個微引擎共享一個L2指令緩存,因為所有線程都擁有單獨的硬件資源,所以狀態切換不需要用更多的時間去保存當前的線程狀態,仲裁模塊提前選出就緒進程,在微引擎執行完外設命令之后隨即執行線程切換指令,在執行此線程命令的時間里,對應的其他某一線程會被喚醒并執行相應的指令,這樣可有效節約存儲空間和處理時間。

3 仿真與驗證

本設計通過Mentor ModelSim軟件進行了功能驗證和時序驗證,Microengine_top為一個微引擎組,采用測試激勵testbench作為輸入,仿真的部分用例如圖6所示。

圖6 仿真部分用例文件

如圖7所示,跳轉匯編指令轉換為32位機器碼,指令寄存器在一個時鐘周期后準確收到輸入指令,仿真結果符合設計預期與實驗預期。

經過一系列的模塊驗證之后,搭建了FPGA以太網測試平臺(圖8),并在測試平臺上完成了性能測試,測試時間約為800萬個時鐘周期。

圖7 功能驗證截圖

圖8 FPGA以太網測試平臺

首先,對單線程處理器進行了各存儲器的延遲測試,測試結果如表1所示,除了Local Memory之外,微引擎和存儲器之間的訪存時間開銷是非常大的,有很大的效率提升空間。

表1 存儲器訪問延遲測試結果 單位:CLK周期

隨后,又對單線程、4線程以及本設計中的8線程處理器進行了IPv4路由轉發測試,測試結果如表2所示,可以看出,8線程網絡處理器的效率有了很大的提升且非常可觀,完全能夠滿足高速網絡場景中的使用需求。

表2 IPv4路由轉發測試結果 單位:CLK周期

4 結論

本文提出了一種8線程網絡處理器微引擎的設計方案,通過實驗仿真驗證可以得知,本設計中的微引擎執行效率相較于單線程和4線程網絡處理器有了很大的提升。目前,本設計已經完成了全芯片代碼的集成、軟仿以及FPGA板級驗證,未來還將進行協同驗證,在流片封裝并進行硬件測試之后會應用在工業以太網等對即時性要求很高的使用場景中。隨著網絡速率和帶寬需求的不斷提升,網絡處理器在架構方面以及分組處理優化方面還有很大的發展潛力,這將是日后研究的重要方向。

猜你喜歡
引擎指令設計
聽我指令:大催眠術
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
藍谷: “涉藍”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
無形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
基于Cocos2d引擎的PuzzleGame開發
坐標系旋轉指令數控編程應用
機電信息(2014年27期)2014-02-27 15:53:56
主站蜘蛛池模板: 国产成人免费观看在线视频| 精品国产自在现线看久久| 中文字幕调教一区二区视频| AV老司机AV天堂| 久久99热66这里只有精品一| 亚洲av无码人妻| 天天躁狠狠躁| 日本三级欧美三级| 又爽又黄又无遮挡网站| 国产一区二区精品福利| 国产欧美综合在线观看第七页| 久久精品只有这里有| 国产精品香蕉在线| 72种姿势欧美久久久大黄蕉| 在线观看亚洲精品福利片| 巨熟乳波霸若妻中文观看免费 | 精品人妻一区无码视频| 国产精品熟女亚洲AV麻豆| 亚洲天堂成人在线观看| 色婷婷亚洲十月十月色天| 日本成人不卡视频| 日本欧美中文字幕精品亚洲| 国产XXXX做受性欧美88| 国产亚洲精久久久久久无码AV| 国产老女人精品免费视频| 久久久噜噜噜久久中文字幕色伊伊| 99精品在线看| 人人澡人人爽欧美一区| 99久久成人国产精品免费| 一级全免费视频播放| 丁香婷婷综合激情| 色悠久久综合| 特级精品毛片免费观看| 日本a级免费| 国产中文一区a级毛片视频 | 国产综合欧美| 国产无码网站在线观看| 91精品啪在线观看国产| 巨熟乳波霸若妻中文观看免费| 欧美国产另类| 美女高潮全身流白浆福利区| 国产亚洲精品资源在线26u| 国产男人天堂| 亚洲精品成人片在线观看 | 国产成人91精品免费网址在线| 国产日韩欧美精品区性色| 中文无码毛片又爽又刺激| 日本精品视频一区二区| 国产人人射| 国产成人精彩在线视频50| 国产精品99久久久| 亚洲中文在线视频| 国产在线97| 日韩区欧美区| 国产精品入口麻豆| 亚洲AⅤ综合在线欧美一区| 成人免费黄色小视频| 五月婷婷丁香综合| 香蕉视频国产精品人| 色屁屁一区二区三区视频国产| 色综合中文| 亚欧美国产综合| 国产精品太粉嫩高中在线观看| 精品国产成人av免费| 亚洲系列中文字幕一区二区| 国产玖玖视频| 99热这里只有免费国产精品 | 亚洲人成在线免费观看| 欧美国产菊爆免费观看 | 麻豆国产原创视频在线播放| 日韩高清欧美| 国产精品自在拍首页视频8| 国产精品不卡片视频免费观看| 欧美在线天堂| 99国产精品国产高清一区二区| 一级毛片在线免费视频| 精品成人免费自拍视频| 国产超薄肉色丝袜网站| 中国丰满人妻无码束缚啪啪| 扒开粉嫩的小缝隙喷白浆视频| 激情亚洲天堂| 国产精品高清国产三级囯产AV|