[發明專利]采用硬件多線程機制的網絡處理器在審
| 申請號: | 202010214339.7 | 申請日: | 2020-03-24 |
| 公開(公告)號: | CN111459630A | 公開(公告)日: | 2020-07-28 |
| 發明(設計)人: | 李苗 | 申請(專利權)人: | 華東計算技術研究所(中國電子科技集團公司第三十二研究所) |
| 主分類號: | G06F9/48 | 分類號: | G06F9/48;G06F9/4401 |
| 代理公司: | 上海段和段律師事務所 31334 | 代理人: | 李佳俊;郭國中 |
| 地址: | 201800 *** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 采用 硬件 多線程 機制 網絡 處理器 | ||
1.一種采用硬件多線程機制的網絡處理器,其特征在于,包括:
控制內核、微引擎內核、Hash加速器、DDR控制器、網絡接口控制器、PCIe控制器以及SRAM控制器;
控制內核:由通用CPU內核實現網絡處理器的寄存器、存儲器以及查找表的訪問;
網絡接口控制器用于連接外部的網絡終端接口;
PCIe控制器用于連接外部的CPU;
SRAM控制器外接片外的SRAM存儲器,用于存放查找表數據;
微引擎內核處理數據報文中的信息時,采用外設命令調用如Hash加速器或DDR控制器處理和讀取數據;
在微引擎內核執行完外設命令之后執行線程切換指令,在執行此線程外設命令的時間段內,對應著其他數據包的線程會被喚醒,執行相應的指令。
2.根據權利要求1所述的采用硬件多線程機制的網絡處理器,其特征在于,所述微引擎內核:
當網絡接口接收到數據包以后,數據包的信息會提取到微引擎內核進行處理,通過線程切換指令實現多個線程的切換。
3.根據權利要求2所述的采用硬件多線程機制的網絡處理器,其特征在于,所述微引擎內核中沒有硬件中斷機制,多線程切換為非搶占式,通過微碼切換指令控制線程間的切換,切換時采用Round-Robin輪轉調度算法對就緒的線程按序號進行調度。
4.根據權利要求3所述的采用硬件多線程機制的網絡處理器,其特征在于,不同線程對應的程序指針不同,即指向指令存儲器的執行地址不同;
同一微引擎中多個線程的指令存儲器是共享的,每一個微引擎內部只需要提供一塊指令存儲空間。
5.根據權利要求4所述的采用硬件多線程機制的網絡處理器,其特征在于,每個線程配備一套專門的硬件來存放切換狀態,該套硬件包括:
信號事件寄存器、程序指針寄存器、控制和狀態寄存器;
遇到線程切換指令時,信號事件寄存器和程序指針寄存器記錄進入睡眠的線程的當前狀態,同時控制和狀態寄存器根據實時的事件狀態維護線程切換狀態機,線程仲裁器從就緒狀態的線程中仲裁出激活狀態線程,并把該線程的程序指針寄存器值作為微引擎內核的程序指針,待切換線程指令之后立即執行指令存儲器的指令,實現流水線指令無縫的銜接,不因線程切換而造成微引擎指令的中止。
6.根據權利要求5所述的采用硬件多線程機制的網絡處理器,其特征在于,所述信號事件寄存器包括每個線程*_CTX_SIG_EVENTS寄存器和*_CTX_WAKEUP_EVENTS寄存器,記錄線程切換所需要的信號量;
程序指針寄存器記錄每個線程所對應的程序指針,線程激活時,程序指針用于控制微引擎內核指令執行的內存地址;
控制和狀態寄存器用于進行線程狀態機的切換和激活線程的維護。
7.根據權利要求6所述的采用硬件多線程機制的網絡處理器,其特征在于,當前線程執行線程切換指令后,交出執行控制權,進入睡眠狀態,同時將本線程需要等待的信號量標記在CTX_WAKEUP_EVENTS寄存器中,等待外設指令執行完畢;
外設執行指令完成后,將標志完成的信號量記錄在微引擎中的CTX_SIG_EVENTS寄存器,根據比對,如果睡眠線程所等待的信號量完全匹配,那么該線程又可以重新進入就緒狀態,等待下一次的仲裁,可以認為此時線程被喚醒。
8.根據權利要求4所述的采用硬件多線程機制的網絡處理器,其特征在于,每個線程都處于下述4個狀態中的一個:
未激活狀態:該狀態下的線程不執行任何操作;
運行狀態:該狀態下的線程控制微引擎內核的執行權,根據程序指針讀取指令來執行,線程執行線程切換指令就會進入睡眠狀態,其他就緒線程才會獲得執行權,激活線程狀態寄存器ACTIVE_CTX_STATUS記錄當前處于運行狀態的線程,任何時刻只有一個線程運行;
就緒狀態:該狀態下的線程準備去運行,就緒線程狀態寄存器INDIRECT_CTX_STATUS記錄就緒線程的情況,當運行線程進入睡眠狀態,線程仲裁器采用輪轉算法從就緒線程中選擇一個去運行;
睡眠狀態:當線程執行了線程切換指令后會進入睡眠狀態,當睡眠線程喚醒事件寄存器INDIRECT_CTX_SIG_EVENTS中指明的外設事件信號量發生時,通過與記錄外設返回于各自線程的信號量位圖的寄存器INDIRECT_CTX_WAKEUP_EVENTS比較匹配之后線程即可進入就緒狀態。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華東計算技術研究所(中國電子科技集團公司第三十二研究所),未經華東計算技術研究所(中國電子科技集團公司第三十二研究所)許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010214339.7/1.html,轉載請聲明來源鉆瓜專利網。





