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
主站蜘蛛池模板: 日韩A∨精品日韩精品无码| 2022国产无码在线| 亚洲成人福利网站| 欧洲亚洲一区| 青青草原国产一区二区| 日韩欧美中文亚洲高清在线| 在线免费观看a视频| 久久国产精品嫖妓| 日韩小视频在线播放| 综合色天天| 爱做久久久久久| 欧美三级日韩三级| 免费国产好深啊好涨好硬视频| 国产日韩精品欧美一区灰| 国产亚洲精品自在线| 日本成人在线不卡视频| 久久综合九色综合97婷婷| 国产美女无遮挡免费视频| 在线99视频| 福利国产微拍广场一区视频在线| 午夜啪啪网| 免费精品一区二区h| 澳门av无码| 日韩麻豆小视频| 人人看人人鲁狠狠高清| 粉嫩国产白浆在线观看| 国产福利2021最新在线观看| 亚洲三级视频在线观看| 亚洲一级无毛片无码在线免费视频| 极品尤物av美乳在线观看| a级免费视频| 国产在线观看91精品| 欧美成人在线免费| 又粗又硬又大又爽免费视频播放| 亚洲一区毛片| 国产成人精品18| 国产精品视频第一专区| 亚洲精品桃花岛av在线| 亚洲欧美人成人让影院| 国产欧美网站| 日韩精品毛片| 国产浮力第一页永久地址| 日韩第一页在线| 国产精品对白刺激| 综合亚洲网| 国产网站一区二区三区| 蜜臀AVWWW国产天堂| 自拍偷拍欧美| 国产高清免费午夜在线视频| 福利小视频在线播放| 国产精女同一区二区三区久| 久久精品国产精品青草app| 91小视频在线播放| 久久精品人妻中文视频| 欧美人人干| 亚洲an第二区国产精品| 亚洲欧美一区二区三区蜜芽| 大香网伊人久久综合网2020| 人人91人人澡人人妻人人爽 | 国产欧美日本在线观看| 欧美va亚洲va香蕉在线| 爆乳熟妇一区二区三区| 片在线无码观看| 亚洲精品国产综合99| 午夜福利在线观看成人| 中日韩一区二区三区中文免费视频| 强奷白丝美女在线观看| 国产三级a| 婷婷成人综合| 国产永久无码观看在线| 在线va视频| 中文纯内无码H| 亚洲色欲色欲www在线观看| 福利视频一区| 国产一级毛片yw| 亚洲aaa视频| 精品综合久久久久久97超人| 在线视频精品一区| 亚洲三级电影在线播放| 在线国产综合一区二区三区| 久草性视频| 最新痴汉在线无码AV|