專利名稱:多硬件線程處理器及其業(yè)務(wù)處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別是涉及一種多硬件線程處理器及其業(yè) 務(wù)處理方法。
背景技術(shù):
多核多硬件線程處理器(CPU)中, 一個CPU核內(nèi)通常包含一個流水線 (pipeline)以及多個同時運行的硬件線程,其中,每個硬件線程均有自己 的上下文環(huán)境、寄存器、中斷和異常處理,操作系統(tǒng)或應(yīng)用軟件運行在這種 硬件線程上,就如同運行在一個CPU上一樣,因此,這種硬件線程又稱作為 虛擬CPU (virtual CPU, vCPU)。由于多個硬件線程共用 一個流水線,雖然 可以使流水線的性能最大化,但是,若一個硬件線程占用流水線資源過多, 勢必會降低其它硬件線程的性能,所以需要控制每個硬件線程占用流水線的 資源,提高CPU的整體性能。
目前,對流水線資源的控制主要采用輪詢方式、固定頻率方式以及優(yōu)先 級方式來對各石更件線程占用流水線的資源進行分配,具體分配方法如下(1) 通過輪詢方式來分配各個硬件線程的指令。該種方式下,在每個CPU時鐘周 期內(nèi),每個硬件線程的指令均可平等地調(diào)度到流水線中執(zhí)行。(2 )通過固定 頻率的方式分配各個硬件線程的指令。該種方式下,每個硬件線程被調(diào)度到 流水線后,執(zhí)行固定數(shù)量的指令后才讓出流水線資源。U)通過優(yōu)先級的方 式分配各個硬件線程的指令。該種方式下,每個硬件線程根據(jù)優(yōu)先級的高低 來決定占用流水線資源,優(yōu)先級高的線程優(yōu)先獲得流水線資源。個業(yè)務(wù)處理流程需要一個CPU核上的多個硬件線程來完成,如防火墻的報文 處理,而CPU核的多個^5更件線程在處理同一業(yè)務(wù)流程時,扭j亍前期業(yè)務(wù)流程
的上游硬件線程在報文處理完畢后,交給下游硬件線程繼續(xù)對其處理時,若 下游硬件線程繁忙而無法處理,需要丟棄報文,則執(zhí)行前期業(yè)務(wù)流程的上游
硬件線程占用的流水線的資源就會浪費掉,因此會降低整個CPU處理業(yè)務(wù)的
性能。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種多硬件線程處理器及其業(yè)務(wù)處理方法,提高整 個處理器處理業(yè)務(wù)的性能。
為實現(xiàn)上述目的,本發(fā)明實施例提供了一種多硬件線程處理器的業(yè)務(wù)處
理方法,包括
獲得硬件線程的先進先出隊列狀態(tài),在所述先進先出隊列狀態(tài)達到預(yù)設(shè) 狀態(tài)時向上游硬件線程發(fā)送控制命令;
接收到所述控制命令的上游硬件線程根據(jù)所述控制命令對業(yè)務(wù)進行處理。
本發(fā)明實施例提供了一種多硬件線程處理器,包括硬件線程以及所述硬 件線程的至少一個上游硬件線程,
所述硬件線程,用于獲得硬件線程的先進先出隊列狀態(tài),在所述先進先
出隊列狀態(tài)達到預(yù)設(shè)狀態(tài)時向上游硬件線程發(fā)送控制命令;
所述上游硬件線程,用于接收到所述控制命令時根據(jù)所述控制命令對業(yè) 務(wù)進行處理。
本發(fā)明實施例中,處于下游的硬件線程可以根據(jù)FIFO隊列狀態(tài),向其上 游硬件線程發(fā)送控制命令,控制上游硬件線程對業(yè)務(wù)的處理,使得上游硬件 線程可根據(jù)其下游硬件線程的FIFO隊列的繁忙狀態(tài),控制對業(yè)務(wù)處理的進度, 避免上游硬件線程處理業(yè)務(wù)后并將報文發(fā)送到下游硬件線程時導(dǎo)致報文丟棄,造成上游硬件線程占用的流水線的資源浪費的問題,可有效提高整個CPU 處理業(yè)務(wù)的性能。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對 實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地, 下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員 來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的 附圖。
圖l為本發(fā)明多硬件線程處理器的業(yè)務(wù)處理方法實施例一的結(jié)構(gòu)示意圖; 圖2為本發(fā)明多硬件線程處理器的業(yè)務(wù)處理方法實施例二的流程示意圖; 圖3為8核CPU的結(jié)構(gòu)示意圖4為8核CPU中一個CPU核中的四個硬件線程對業(yè)務(wù)的處理流程圖; 圖5為本發(fā)明多硬件線程處理器實施例一的結(jié)構(gòu)示意圖; 圖6為本發(fā)明多硬件線程處理器實施例二中硬件線程的結(jié)構(gòu)示意圖; 圖7為本發(fā)明多硬件線程處理器實施例中狀態(tài)獲取模塊的結(jié)構(gòu)示意圖。
具體實施例方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進 行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例, 而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒 有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的 范圍。
圖l為本發(fā)明多硬件線程處理器的業(yè)務(wù)處理方法實施例一的結(jié)構(gòu)示意圖。 該方法包括
步驟IOI、獲得硬件線程的先進先出(First Input First Output, FIFO)隊列狀態(tài),所述FIFO隊列狀態(tài)達到預(yù)設(shè)狀態(tài)時向上游硬件線程發(fā)送控制命令; 步驟102、接收到所述控制命令的上游硬件線程根據(jù)所述控制命令對業(yè)務(wù) 進行處理。
本發(fā)明實施例可應(yīng)用于多核多硬件線程處理器中,在處理業(yè)務(wù)過程中, 同一 CPU核上的多個硬件線程在處理一個業(yè)務(wù)流程中,各硬件線程可以根據(jù) 其管理的FIFO隊列的繁忙程度,向其上游硬件線程發(fā)送控制命令,以控制上 游硬件線程暫停或繼續(xù)執(zhí)行業(yè)務(wù)處理。具體地,布i設(shè)當(dāng)前硬件線程的FIFO隊 列中的緩存報文數(shù)量較多時,且其占用的流水線資源較少,則上游硬件線程 將報文發(fā)送來時,當(dāng)前硬件線程的FIFO隊列可能因空間已滿而無法全部接收 發(fā)送來的報文,必然導(dǎo)致報文丟掉處理,因此,本實施例中當(dāng)前硬件線程的 FIFO隊列中報文緩存數(shù)量較多時,可向其上游硬件線程發(fā)送暫停對新業(yè)務(wù)進 行處理的控制命令,這樣上游硬件線程就會釋放出更多的資源,因此,硬件 線程可獲得上游硬件線程釋放的流水線資源,加快對自身FIFO隊列中報文的 處理,避免因自身的FIFO隊列繁忙而導(dǎo)致上游硬件線程發(fā)送的報文丟棄,導(dǎo) 致上游硬件線程對報文進行處理時占用的流水線資源被浪費。
本發(fā)明實施例中,各硬件線程可以根據(jù)其管理的FIFO隊列狀態(tài),向其上 游硬件線程發(fā)送控制命令,控制上游硬件線程對業(yè)務(wù)的處理,使得上游硬件 線程可根據(jù)其下游硬件線程的FIFO隊列的繁忙狀態(tài),控制對業(yè)務(wù)處理的進度, 避免上游硬件線程處理業(yè)務(wù)后并將報文發(fā)送到下游硬件線程時導(dǎo)致報文丟 棄,造成上游硬件線程占用的流水線的資源浪費的問題,可有效提高整個CPU 處理業(yè)務(wù)的性能。
圖2為本發(fā)明多硬件線程處理器的業(yè)務(wù)處理方法實施例二的流程示意圖。 本發(fā)明實施例可應(yīng)用于多核多硬件線程處理器處理業(yè)務(wù)的流程中,由于CPU 核中的每個硬件線程均管理有相應(yīng)的獨立的FIFO隊列,當(dāng)CPU核中的硬件線 程在從各自管理的FIFO隊列中讀取報文時,可檢查FIFO隊列中緩存報文的 數(shù)量,對FIFO隊列狀態(tài)進行檢查,并根據(jù)FIFO隊列狀態(tài)向其上游硬件線程發(fā)送返壓指令或解返壓指令,以控制上游硬件線程暫?;蚶^續(xù)對報文的處理, 其中,所述的返壓指令是指當(dāng)前硬件線程向其上游硬件線程發(fā)送的指示上游 硬件線程暫停處理新業(yè)務(wù)的指令,解返壓指令是指當(dāng)前硬件線程向其上游硬 件線程發(fā)送的指示上游硬件線程恢復(fù)處理新業(yè)務(wù)的指令。具體地,本發(fā)明實
施例方法包4舌
步驟201、硬件線程檢查其管理的FIFO隊列的緩存報文的數(shù)量。
當(dāng)硬件線程在其管理的FIFO隊列中讀取報文時,可檢查FIFI隊列中緩 存報文的數(shù)量,獲得緩存報文的數(shù)量。
步驟202、硬件線程判斷其管理的FIFO隊列中報文的數(shù)量是否超過預(yù)設(shè) 正常閾值,如果是,則將FIFO隊列狀態(tài)設(shè)定為繁忙狀態(tài),執(zhí)行步驟203,否 則,將FIF0隊列狀態(tài)設(shè)定為正常狀態(tài),執(zhí)行步驟206。
步驟203、硬件線程判斷其管理的FIFO隊列中報文的數(shù)量是否超過預(yù)設(shè) 繁忙閾值,如果是,則將FIFO隊列狀態(tài)設(shè)定為極度繁忙狀態(tài),執(zhí)行步驟204, 否則,執(zhí)行步驟205。
步驟204、硬件線程向其維護的所有上游硬件線程發(fā)送返壓指令。
本步驟中,當(dāng)硬件線程的FIFO隊列處于極度繁忙狀態(tài)時,說明此時FIFO 隊列可能無法接收其上游硬件線程發(fā)送來的報文,因此,可發(fā)送返壓指令到 硬件線程維護的所有上游硬件線程,指示上游硬件線程暫停對新業(yè)務(wù)報文的 處理。具體地,硬件線程本身可雉護有其上游硬件線程的分布情況,并根據(jù) 其上游硬件線程的分布以及FIFO隊列的繁忙程度,將返壓指令發(fā)送給上游硬 件線程。上游硬件線程接收到返壓指令后,可暫停對新業(yè)務(wù)報文的處理,將 其占用的流水線資源讓給處于其下游的硬件線程。
步驟205、硬件線程向其維護的上游硬件線程中處于最上游的硬件線程發(fā) 送返壓指令。
步驟206、若硬件線程的FIFO隊列狀態(tài)是從繁忙狀態(tài)或極度繁忙狀態(tài)恢 復(fù)到正常狀態(tài)時,硬件線程向因接收反壓指令而停止業(yè)務(wù)處理的上游硬件線程發(fā)送解返壓指令,以使上游硬件線程恢復(fù)對新業(yè)務(wù)的處理。
為對本發(fā)明實施例有更好的了解,下面以8核CPU中的一個核中的四個 硬件線程對業(yè)務(wù)的處理流程進行說明。
圖3為8核CPU的結(jié)構(gòu)示意圖;圖4為8核CPU中一個CPU核中的四個 硬件線程對業(yè)務(wù)的處理流程圖。具體地,如圖3所示,所述的8核CPU包括8 個CPU核,分別為核0-核7,且每個CPU核均包含有四個硬件線程,每個硬 件線程可稱之為vCPU。下面以CPU核4為例it明CPU核中的四個vCPU16、 vCPU17、 vCPU18和vCPU19對一個業(yè)務(wù)的處理流程,其中,vCPU16為負責(zé)收 包的vCPU, vCPU17為負責(zé)對報文進行初步處理的vCPU, vCPU18為負責(zé)對報 文進行進一步處理的vCPU, vCPU19為負責(zé)對處理后的才艮文進4亍發(fā)包的vCPU。 業(yè)務(wù)的處理流程可包括以下步驟
步驟301、 vCPU16通過網(wǎng)絡(luò)驅(qū)動接收到報文,并將報文寫入共享內(nèi)存區(qū) 的第一FIFO隊列。
其中,所述的第一 FIFO隊列即為vCPU17管理的FIFO隊列,vCPU17可從
該第一 FIFO隊列中讀取和處理報文。
步驟302、 vCPU17從第一 FIFO隊列中讀取報文,對報文進行處理。 步驟303、 vCPU17將需要進一步處理的報文寫入第二FIFO隊列中。 其中,所述的第二 FIFO隊列為vCPU18管理的FIFO隊列,vCPU18可從該
第二 FIFO隊列中讀取和處理才艮文。
步驟304、 vCPU18從第二 FIFO隊列中讀取報文,對報文進行進一步地處理。
步驟305、 vCPU18將處理后的才艮文寫入第三FIFO隊列。 其中,所述的第三FIFO隊列為vCPU19管理的FIFO隊列,vCPU19可從該 第三FIFO隊列中讀取并轉(zhuǎn)發(fā)報文。
步驟306、 vCPU19從第三FIF0隊列中讀取凈艮文,并將報文轉(zhuǎn)發(fā)出去。 可以看出,在CPU核的業(yè)務(wù)處理流程中,若其中一個vCPU出現(xiàn)瓶頸,將導(dǎo)致其管理的相應(yīng)的FIFO隊列由于塞滿了緩存報文而導(dǎo)致新送入的報文溢 出,導(dǎo)致丟包。具體地,假設(shè)vCPU18中的FIFO隊列處于繁忙狀態(tài),則在vCPU17 將報文寫入vCPU18的第二FIFO隊列時,可能會出現(xiàn)第二FIFO隊列滿而無法 寫進去,此時只能將vCPU17要寫如入的報文丟棄,則步驟304之前的vCPU16 和vCPU17對報文的處理均是無用功,其占用的流水線資源也被浪費掉。
因此,本發(fā)明實施例可應(yīng)用于上述業(yè)務(wù)處理流程中,當(dāng)vCPU18在從第二 FIF0隊列中讀取報文時,可檢查第二 FIF0隊列狀態(tài),確定第二 FIF0隊列狀 態(tài)是否處于繁忙或極度繁忙狀態(tài),并向處于上游的vCPU16和/或vCPU17發(fā)送 返壓指令,指示其暫停對業(yè)務(wù)的處理,則vCPU16和/或vCPU17占用的流水線 資源即可被vCPU18使用,力口快vCPU18對第二 FIFO隊列中報文處理的速度, 同時可有效避免vCPU16和/或vCPU17因第二 FIFO隊列滿而造成的資源浪費。 此外,當(dāng)?shù)诙?FIFO隊列中緩存報文的數(shù)量減少至一定值時,即FIFO隊列狀 態(tài)恢復(fù)到正常狀態(tài)時,vCPUl 8可向因接收反壓指令而停止業(yè)務(wù)處理的vCPU 發(fā)送解返壓指令,指示相應(yīng)的vCPU恢復(fù)對新業(yè)務(wù)的處理。
上述本發(fā)明實施例中,硬件線程發(fā)送返壓指令到其上游硬件線程時,也 可根據(jù)上游硬件線程的分布狀況,向維護的部分硬件線程發(fā)送返壓指令,具 體地,硬件線程可為其維護的上游硬件線程設(shè)定返壓優(yōu)先級,當(dāng)需要向上游 硬件線程發(fā)送返壓指令時,可優(yōu)先向處于較高返壓優(yōu)先級的硬件線程發(fā)送返 壓指令。 一般而言,對于一個硬件線程,處于越上游的硬件線程,其具有的 返壓優(yōu)先級就越高,即當(dāng)前的硬件線程需要發(fā)送返壓指令時,首先將其發(fā)送 給返壓優(yōu)先級最高的上游硬件線程。
圖5為本發(fā)明多硬件線程處理器實施例一的結(jié)構(gòu)示意圖。本實施例中多 硬件線程處理器包括硬件線程以及所述硬件線程的至少一個上游硬件線程, 其巾,
所述硬件線程,用于獲得硬件線程的FIFO隊列狀態(tài),在所述FIF0隊列 狀態(tài)達到預(yù)設(shè)狀態(tài)時向上游硬件線程發(fā)送控制命令;所述上游硬件線程,用于接收到所述控制命令時根據(jù)所述控制命令對業(yè) 務(wù)進行處理。
本發(fā)明實施例硬件線程可根據(jù)其管理的FIFO隊列狀態(tài),向其上游硬件線
程發(fā)送控制命令,控制上游硬件線程對業(yè)務(wù)的處理,使得上游硬件線程可根
據(jù)其下游硬件線程的FIFO隊列的繁忙狀態(tài),控制對業(yè)務(wù)處理的進度,避免上 游硬件線程處理業(yè)務(wù)后并將報文發(fā)送到下游硬件線程時導(dǎo)致報文丟棄,造成 上游硬件線程占用的流水線的資源浪費的問題,可有效提高整個CPU處理業(yè) 務(wù)的性能。
圖6為本發(fā)明多硬件線程處理器實施例二中硬件線程的結(jié)構(gòu)示意圖。如 圖6所示,本發(fā)明實施例中的硬件線程可包括狀態(tài)獲取模塊1和指令發(fā)送模 塊2,其中,
狀態(tài)獲取模塊l,用于根據(jù)FIF0隊列中的緩沖報文的數(shù)量,獲得硬件線 程的FIFO隊列狀態(tài);
指令發(fā)送^^莫塊2,用于所述FIFO隊列狀態(tài)達到預(yù)設(shè)狀態(tài)時向上游^5更件線 程發(fā)送控制命令。
圖7為本發(fā)明多硬件線程處理器實施例中狀態(tài)獲取模塊的結(jié)構(gòu)示意圖。
具體地,如圖7所示,本發(fā)明實施例中的狀態(tài)獲取模塊1可包括報文數(shù)量
檢查單元11和第一判斷單元12,其中,
報文數(shù)量檢查單元11,用于檢查硬件線程的FIFO隊列中緩存報文的數(shù)量; 第一判斷單元12,用于判斷所述緩存報文的數(shù)量是否超過預(yù)設(shè)正常閾值,
如果是,則所述FIFO隊列狀態(tài)為繁忙狀態(tài),否則,所述FIF0隊列狀態(tài)為正
常狀態(tài);
所述指令發(fā)送模塊可具體用于當(dāng)所述FIFO隊列狀態(tài)為繁忙狀態(tài)時,向硬 件線程維護的上游硬件線程中處于最上游的硬件線程發(fā)送暫停對業(yè)務(wù)處理的 返壓指令;
其中,在多硬件線程中,每個CPU核的各硬件線程排列順序是固定的,當(dāng)所述FIFO對列狀態(tài)為繁忙狀態(tài)時,向處于最上游的硬件線程發(fā)送暫停對業(yè) 務(wù)處理的返壓指令。
此外,如圖7所示,狀態(tài)獲取模塊l還可包括第二判斷單元13,用于 若所述FIF0隊列為繁忙狀態(tài)時,判斷所述繁忙狀態(tài)的FIFO隊列中的緩存報 文的數(shù)量是否超過預(yù)設(shè)繁忙閾值,如果是,則所述FIF0隊列狀態(tài)為極度繁忙 狀態(tài);
所述指令發(fā)送模塊還可用于當(dāng)所述FIFO對列狀態(tài)為極度繁忙狀態(tài)時,所 述硬件線程向其維護的所有上游石更件線程發(fā)送暫停對業(yè)務(wù)處理的返壓指令。
本發(fā)明實施例中,所述指令發(fā)送模塊還可用于當(dāng)所述FIFO隊列狀態(tài)恢復(fù) 到正常狀態(tài)時,向因接收返壓指令而停止業(yè)務(wù)處理的上游硬件線程發(fā)送恢復(fù) 業(yè)務(wù)處理的解返壓指令。
本發(fā)明實施例可根據(jù)硬件線程的FIFO隊列的狀態(tài)向上游硬件線程發(fā)送控 制命令,控制上游硬件線程對業(yè)務(wù)的處理,使得上游硬件線程可根據(jù)其下游 硬件線程的FIFO隊列的繁忙狀態(tài),控制對業(yè)務(wù)處理的進度,避免上游硬件線 程處理業(yè)務(wù)后在將報文發(fā)送到下游硬件線程而導(dǎo)致報文丟棄,造成上游硬件 線程占用的流水線的資源浪費的問題,可有效提高整個CPU處理業(yè)務(wù)的性能。
程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于 計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例 的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random Access Memory,隨)等。
最后應(yīng)說明的是以上實施例僅用以說明本發(fā)明的技術(shù)方案而非對其進 行限制,盡管參照較佳實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技 術(shù)人員應(yīng)當(dāng)理解其依然可以對本發(fā)明的技術(shù)方案進行修改或者等同替換, 而這些修改或者等同替換亦不能使修改后的技術(shù)方案脫離本發(fā)明技術(shù)方案的 津青神和范圍。
權(quán)利要求
1、一種多硬件線程處理器的業(yè)務(wù)處理方法,其特征在于,包括獲得硬件線程的先進先出隊列狀態(tài),在所述先進先出隊列狀態(tài)達到預(yù)設(shè)狀態(tài)時向上游硬件線程發(fā)送控制命令;接收到所述控制命令的上游硬件線程根據(jù)所述控制命令對業(yè)務(wù)進行處理。
2、 根據(jù)權(quán)利要求l所述的多硬件線程處理器的業(yè)務(wù)處理方法,其特征在 于,所述獲得硬件線程的先進先出隊列狀態(tài)包括檢查硬件線程的先進先出隊列中緩存報文的數(shù)量,判斷所述緩存報文的 數(shù)量是否超過預(yù)設(shè)正常闊值,如果是,則所述先進先出隊列狀態(tài)為繁忙狀態(tài), 否則,所述先進先出隊列狀態(tài)為正常狀態(tài);所述先進先出隊列狀態(tài)達到預(yù)"&狀態(tài)時向上游^^件線程發(fā)送控制命令包括當(dāng)所述先進先出隊列狀態(tài)為繁忙狀態(tài)時,所述硬件線程向其維護的上游 硬件線程中處于最上游的硬件線程發(fā)送暫停對業(yè)務(wù)處理的返壓指令。
3、 根據(jù)權(quán)利要求2所述的多硬件線程處理器的業(yè)務(wù)處理方法,其特征在 于,所述獲得硬件線程的先進先出隊列狀態(tài)還包括若所述先進先出隊列為繁忙狀態(tài)時,判斷所述繁忙狀態(tài)的先進先出隊列 中的緩存報文的數(shù)量是否超過預(yù)設(shè)繁忙閾值,如果是,則所述先進先出隊列 狀態(tài)為極度繁忙狀態(tài);所述先進先出隊列狀態(tài)達到預(yù)設(shè)狀態(tài)時向上游硬件線程發(fā)送控制命令包括當(dāng)所述先進先出對列狀態(tài)為極度繁忙狀態(tài)時,所述硬件線程向其維護的 所有上游硬件線程發(fā)送暫停對業(yè)務(wù)處理的返壓指令。
4、 根據(jù)權(quán)利要求2或3所述的多硬件線程處理器的業(yè)務(wù)處理方法,其特 征在于,還包括所述先進先出隊列狀態(tài)恢復(fù)到正常狀態(tài)時,所述硬件線程向因接收反壓 指令而停止業(yè)務(wù)處理的上游硬件線程發(fā)送恢復(fù)對業(yè)務(wù)處理的解返壓指令。
5、 一種多硬件線程處理器,包括硬件線程以及所述硬件線程的至少一個 上游硬件線程,其特征在于,所述硬件線程,用于獲得硬件線程的先進先出隊列狀態(tài),在所述先進先 出隊列狀態(tài)達到預(yù)設(shè)狀態(tài)時向上游硬件線程發(fā)送控制命令;所述上游硬件線程,用于接收到所述控制命令時根據(jù)所述控制命令對業(yè) 務(wù)進行處理。
6、 根據(jù)權(quán)利要求5所述的多硬件線程處理器,其特征在于,所述硬件線 程包括狀態(tài)獲取模塊,用于根據(jù)先進先出隊列中的緩沖報文的數(shù)量,獲得硬件 線程的先進先出隊列狀態(tài);指令發(fā)送模塊,用于所述先進先出隊列狀態(tài)達到預(yù)設(shè)狀態(tài)時向上游硬件 線程發(fā)送控制命令。
7、 根據(jù)權(quán)利要求6所述的多硬件線程處理器,其特征在于,所述狀態(tài)獲 取模塊包括報文數(shù)量檢查單元,用于檢查硬件線程的先進先出隊列中緩存報文的數(shù)量;第一判斷單元,用于判斷所述緩存報文的數(shù)量是否超過預(yù)設(shè)正常閾值,如果是,則所述先進先出隊列狀態(tài)為繁忙狀態(tài),否則,所述FIFO隊列狀態(tài)為正 常狀態(tài);所述指令發(fā)送模塊具體用于當(dāng)所述先進先出隊列狀態(tài)為繁忙狀態(tài)時,向 硬件線程維護的上游硬件線程中處于最上游的硬件線程發(fā)送暫停對業(yè)務(wù)處理 的返壓指令。
8、 根據(jù)權(quán)利要求7所述的多硬件線程處理器,其特征在于,所述狀態(tài)獲 取模塊還包括第二判斷單元,用于若所述先進先出隊列為繁忙狀態(tài)時,判斷所述繁忙 狀態(tài)的先進先出隊列中的緩存報文的數(shù)量是否超過預(yù)設(shè)繁忙闊值,如果是,則所述先進先出隊列狀態(tài)為極度繁忙狀態(tài);所述指令發(fā)送模塊還用于當(dāng)所述先進先出對列狀態(tài)為極度繁忙狀態(tài)時, 所述硬件線程向其維護的所有上游硬件線程發(fā)送暫停對業(yè)務(wù)處理的返壓指令。
9、根據(jù)權(quán)利要求7或8所述的多硬件線程處理器,其特征在于,所述指 令發(fā)送模塊還用于當(dāng)所述先進先出隊列狀態(tài)恢復(fù)到正常狀態(tài)時,向因接收反 壓指令而停止業(yè)務(wù)處理的的上游硬件線程發(fā)送恢復(fù)業(yè)務(wù)處理的解返壓指令。
全文摘要
本發(fā)明實施例公開了一種多硬件線程處理器及其業(yè)務(wù)處理方法。該方法包括獲得硬件線程的FIFO隊列狀態(tài),所述FIFO隊列狀態(tài)達到預(yù)設(shè)狀態(tài)時向上游硬件線程發(fā)送控制命令;接收到所述控制命令的上游硬件線程根據(jù)所述控制命令對業(yè)務(wù)進行處理。該多硬件線程處理器包括硬件線程以及所述硬件線程的至少一個上游硬件線程。本發(fā)明實施例硬件線程可根據(jù)自身的FIFO隊列的狀態(tài),向上游硬件線程發(fā)送控制命令使上游硬件線程暫停對業(yè)務(wù)的處理,可有效提高各硬件線程占有流水線資源的利用率,降低流水線資源的浪費,提高整個CPU處理業(yè)務(wù)的性能。
文檔編號G06F9/38GK101661386SQ200910093490
公開日2010年3月3日 申請日期2009年9月24日 優(yōu)先權(quán)日2009年9月24日
發(fā)明者昶 李 申請人:成都市華為賽門鐵克科技有限公司