[發(fā)明專利]一種基于多核多線程處理器的功能宏流水線實現(xiàn)方法有效
| 申請?zhí)枺?/td> | 201110309287.2 | 申請日: | 2011-10-13 |
| 公開(公告)號: | CN102331923A | 公開(公告)日: | 2012-01-25 |
| 發(fā)明(設(shè)計)人: | 李康;趙慶賀;雷理;范勇;馬佩軍;史江義;郝躍 | 申請(專利權(quán))人: | 西安電子科技大學(xué) |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 710071*** | 國省代碼: | 陜西;61 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 多核 多線程 處理器 功能 流水線 實現(xiàn) 方法 | ||
1.一種基于多核多線程處理器的功能宏流水線實現(xiàn)方法,其特征在于,將多個處理器劃分成不同的族:接收族和發(fā)送族;在接收族和發(fā)送族的族內(nèi)部,多個處理器采用并行結(jié)構(gòu);接收族負責(zé)報文的接收處理,接收族內(nèi)部采用并行結(jié)構(gòu),多個線程并行的完成所有的包接收處理任務(wù);發(fā)送族負責(zé)報文的發(fā)送處理,包括檢查是否有新的數(shù)據(jù)包發(fā)送任務(wù),讀取新的發(fā)送任務(wù)后,要獲取當前頭指針的隊列描述符信息,將數(shù)據(jù)包從描述符指定的SDRAM單元發(fā)送到指定的發(fā)送緩沖單元,維護隊列頭指針與接收族進行同步通信,發(fā)送族內(nèi)部采用并行結(jié)構(gòu),多個線程并行的完成所有的包發(fā)送處理任務(wù)。
2.根據(jù)權(quán)利要求1所述的基于多核多線程處理器的功能宏流水線實現(xiàn)方法,其特征在于,所述接收族和發(fā)送族的并行包處理任務(wù)調(diào)度方法為:兩個族的報文任務(wù)的分配都是基于將報文分組分割為若干個微包,將不同的微包處理任務(wù)分配給不同的線程,各個線程并行的進行包處理任務(wù),線程間需要進行同步通信,傳遞包處理狀態(tài)信息,以保證同一分組接收處理、緩存、發(fā)送的連續(xù)性。
3.根據(jù)權(quán)利要求2所述的基于多核多線程處理器的功能宏流水線實現(xiàn)方法,其特征在于,所述接收族的報文接收任務(wù)分配策略為:采用傳統(tǒng)的線程池模型進行微包處理任務(wù)的分配,同一分組的微包接收任務(wù)分配給不同的線程來處理,當線程完成接收任務(wù)后,放入接收線程池中,等待新的包處理任務(wù),采用輪轉(zhuǎn)調(diào)度方式向空閑線程分配任務(wù),當前線程獲得一個微包接收任務(wù)后,會向下一個線程發(fā)送一個信號量,通知給下一個線程分配任務(wù)。
4.根據(jù)權(quán)利要求2所述的基于多核多線程處理器的功能宏流水線實現(xiàn)方法,其特征在于,所述發(fā)送族的報文發(fā)送任務(wù)分配策略為:采用改進的線程池模型進行微包處理任務(wù)的分配,同一分組的微包發(fā)送任務(wù)分配給不同的線程來處理;提供一個獨立的仲裁線程對發(fā)送線程池的空閑線程進行任務(wù)分配,仲裁線程持續(xù)的檢查是否有新的發(fā)送任務(wù),若有新的任務(wù)則將其分配給空閑線程,處理線程完成一個發(fā)送任務(wù)進入空閑線程池后,會等待獲取新的分配任務(wù)并開始新一輪的處理。
5.根據(jù)權(quán)利要求2所述的基于多核多線程處理器的功能宏流水線實現(xiàn)方法,其特征在于,所述線程間相互通信的方法為:
步驟602:每個線程獲得一個分組的包處理任務(wù)后,線程首先檢查待處理的微包的類別,接著跳轉(zhuǎn)到步驟604;
步驟604:判斷獲得的包處理任務(wù)是否是分組的第一個微包,如果是則跳轉(zhuǎn)到步驟612,如果不是,則跳轉(zhuǎn)到步驟606;
步驟606:讀取當前包處理線程的共享存儲單元,接著跳轉(zhuǎn)到步驟608;
步驟608:判斷讀出的信息是否有效,即最高位是否為1,如果有效則跳轉(zhuǎn)到步驟610,如果無效,則跳轉(zhuǎn)到步驟606,等待數(shù)據(jù)有效;
步驟610:判斷獲得的包處理任務(wù)是否是分組的中間的微包,如果是,則跳轉(zhuǎn)到步驟612,如果不是,則跳轉(zhuǎn)到步驟614;
步驟612:使線程本身共享存儲單元無效,然后更新下一個線程的共享存儲單元中的狀態(tài)信息,并使其有效,接著跳轉(zhuǎn)步驟616;
步驟614:使線程本身共享存儲單元無效,然后向下一個接收線程的共享存儲單元寫入零值并使其有效,接著跳轉(zhuǎn)到步驟616;
步驟616:執(zhí)行包處理任務(wù)的具體處理操作。
6.根據(jù)權(quán)利要求2所述的基于多核多線程處理器的功能宏流水線實現(xiàn)方法,其特征在于,所述接收族和發(fā)送族之間的同步通信通過基于多生產(chǎn)者——多消費者模型的串行流水的共享隊列結(jié)構(gòu)實現(xiàn),具體方法為:接收族的各線程作為生產(chǎn)者維護隊列的尾指針,在完成一個分組的接收處理任務(wù)后,要更新尾指針指向的連續(xù)兩個共享片上存儲單元,將要傳遞給發(fā)送線程的分組狀態(tài)信息組成的隊列描述符寫入隊列,并且將尾指針增加2以指向下一個隊列的空閑單元;而發(fā)送族的各線程作為消費者維護隊列的頭指針,在開始處理一個分組的第一個微包時會首先讀取隊列頭指針指向的連續(xù)兩個共享片上存儲單元的隊列描述符以獲取分組狀態(tài)信息,然后將頭指針增加2以指向下一個有效隊列描述符;同一族的各線程之間及不同族的線程對隊列同一單元進行訪問操作的互斥問題通過基于硬件讀操作鎖定的互斥機制解決,具體方法為:步驟802:線程在對一個隊列單元進行訪問時,要對該單元的指針的地址進行鎖定,接著跳轉(zhuǎn)到步驟804;
步驟804:判斷該地址是否已經(jīng)被其他線程鎖定,如果是則跳轉(zhuǎn)到步驟806,如果不是,則跳轉(zhuǎn)到步驟810;
步驟806:等待其他訪問操作對該地址的解鎖,接著跳轉(zhuǎn)到步驟808;
步驟808:判斷該地址是否已經(jīng)解鎖,如果解鎖成功則跳轉(zhuǎn)到步驟810,如果解鎖失敗則跳轉(zhuǎn)到步驟806,繼續(xù)等待地址解鎖;
步驟810:鎖定該指針的地址,開始訪問隊列的操作,接著跳轉(zhuǎn)到步驟812;
步驟812:訪問結(jié)束后,解鎖當前地址,允許其他需要訪問隊列的線程可以獲得訪問權(quán)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于西安電子科技大學(xué),未經(jīng)西安電子科技大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110309287.2/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 多線程應(yīng)用系統(tǒng)的異常處理方法和異常處理裝置
- 一種面向片上網(wǎng)絡(luò)的多線程調(diào)度實現(xiàn)方法
- 基于計算機多線程多核顯微鏡細胞圖像快速掃描處理方法
- 一種基于同步鎖的多線程處理方法、終端以及存儲介質(zhì)
- 多線程并發(fā)處理系統(tǒng)及方法
- 海外控股估值流程控制方法、裝置、計算機設(shè)備及存儲介質(zhì)
- 讀數(shù)方法、電子裝置、計算機設(shè)備及存儲介質(zhì)
- 一種基于云平臺多線程調(diào)度的方法、系統(tǒng)、設(shè)備及介質(zhì)
- 一種基于云平臺的前端多線程調(diào)度方法和系統(tǒng)
- 多線程調(diào)度方法、裝置、電子設(shè)備及存儲介質(zhì)





