專利名稱:一種多核處理器的任務分配方法、系統(tǒng)及設備的制作方法
技術領域:
本發(fā)明涉及通信技術領域,特別涉及一種多核處理器的任務分配方法、系統(tǒng)及設備。
技術背景在高性能處理器設計中,靠單純提高主頻實現(xiàn)處理器性能提升已經遇到瓶頸,目前主流 的趨勢是使用處理器多內核設計,例如PC (Personal Computer,個人計算機)通用處理器 的雙核以及網絡處理器的幾十個處理器內核的設計。在現(xiàn)實中,處理器的任務在時間域上往 往是不均衡的,因此對處理能力的需求也有所不同。例如,網絡繁忙時,可能需要網絡處理 器的全部處理能力,而網絡較空閑時,可能只需要等效一兩個處理器內核的處理能力就足夠 了,這種處理能力上的裕量,為降低處理器功耗提供了可能的空間。關于低功耗設計(LPD, Low Power Design),目前在器件級上已有一些比較成熟的方法,比如停止閑置器件的時鐘信 號或者切斷該部分的電壓。現(xiàn)有技術中,當處理器空閑時,保存現(xiàn)場,然后整個處理器進入休眠狀態(tài)。當有任務要 處理時,恢復現(xiàn)場,喚醒處理器進行處理。在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術中由于整個處理器進入休眠,此時無法 處理任何實時數(shù)據(jù)。而當有任務需要處理時只能先喚醒處理器,然后才發(fā)送任務信息,這樣 處理任務的效率就受到了影響。發(fā)明內容為了提高多核處理器處理任務的效率,使多核處理器在不降低對突發(fā)數(shù)據(jù)的處理能力及 系統(tǒng)性能的前提下,實現(xiàn)低功耗,本發(fā)明實施例提供了一種多核處理器的任務分配方法、系統(tǒng)及設備,所述技術方案如下一方面,提供了一種多核處理器的任務分配方法,所述方法包括任務分配器根據(jù)狀態(tài)寄存器的狀態(tài)判斷處理器內核是否空閑;所述任務分配器通過傳輸通道向空閑的處理器內核傳輸消息包。另一方面,還提供了一種多核處理器的任務分配方法,用于多核處理器中,所述多核處 理器包括多個子處理系統(tǒng),所述方法包括通過狀態(tài)寄存器讀取所述多個子處理系統(tǒng)的狀態(tài)信息,所述狀態(tài)信息顯示所述多個子處 理系統(tǒng)的當前狀態(tài),所述當前狀態(tài)包括等待、休眠或關閉;向處于休眠或關閉狀態(tài)的子處理系統(tǒng)的緩沖器發(fā)送消息包;喚醒所述處于休眠或關閉狀態(tài)的子處理系統(tǒng);所述緩沖器將所述消息包發(fā)送給所述子處理系統(tǒng)的處理器內核。再一方面,還提供了一種多核處理器的任務分配系統(tǒng),所述系統(tǒng),包括任務分配器和 子處理系統(tǒng),所述子處理系統(tǒng)包括狀態(tài)寄存器、處理器內核及傳輸通道,其中,所述狀態(tài)寄存器,用于向所述任務分配器發(fā)送所述子處理系統(tǒng)的狀態(tài)信息,所述狀態(tài)信 息包括所述子處理系統(tǒng)的處理器內核是否處于空閑狀態(tài),所述空閑狀態(tài)包括等待、休眠或關 閉;所述任務分配器,用于向所述子處理系統(tǒng)發(fā)送消息包;所述傳輸通道,用于將所述任務分配器發(fā)送的所述消息包傳送給所述處理器內核,所述 傳輸通道的傳輸路徑中至少包括一個緩沖器;其中,當所述處理器內核處于休眠或關閉狀態(tài)時,所述任務分配器將所述消息包發(fā)送給 所述緩沖器緩存,并喚醒所述處理器內核,當所述處理器內核被喚醒后,所述緩沖器將所述 消息包發(fā)送給所述處理器內核。本發(fā)明實施例提供的技術方案的有益效果是可以根據(jù)應用場景和數(shù)據(jù)流量靈活配置,提高了多核處理器處理任務的效率,在不降低 系統(tǒng)性能的前提下實現(xiàn)了低功耗;屏蔽了處理器內核的開關狀態(tài),從任務分配器來看,所有 的處理器內核都是可用的,確保了在降低功耗的同時,不降低對突發(fā)數(shù)據(jù)的處理能力。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術 描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一 些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些 附圖獲得其他的附圖。圖1是本發(fā)明實施例1提供的多核處理器的任務分配系統(tǒng)示意圖;圖2是本發(fā)明實施例1提供的多核處理器的任務分配系統(tǒng)的另一種示意圖;圖3是本發(fā)明實施例2提供的多核處理器的任務分配方法流程圖; 圖4是本發(fā)明實施例3提供的多核處理器的任務分配方法流程圖; 圖5是本發(fā)明實施例4提供的路徑控制器結構示意圖; 圖6是本發(fā)明實施例5提供的緩沖器結構示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描 述,顯然,所描述的實施例僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中 的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都 屬于本發(fā)明保護的范圍。為了提高多核處理器處理任務的效率,使多核處理器在不降低對突發(fā)數(shù)據(jù)的處理能力及 系統(tǒng)性能的前提下,實現(xiàn)低功耗,本發(fā)明實施例提供了一種多核處理器的任務分配方法、系 統(tǒng)及設備,詳見如下各實施例,對本發(fā)明實施例所提供的技術方案進行描述-實施例1請參照圖i,本發(fā)明實施例提供了一種多核處理器任務分配系統(tǒng)ioo,所述多核處理器任務分配系統(tǒng)IOO,包括任務分配器20,及多個子處理系統(tǒng)O至X。下面以子處理系統(tǒng)0為例迸行說明,該子處理系統(tǒng)0包括一處理器內核12、 一緩沖器14、 及一狀態(tài)寄存器16。其中,緩沖器14的輸入端和輸出端分別與任務分配器20和處理器內核 12相通,用于自任務分配器20處接收任務信息,并將該任務信息發(fā)送給處理器內核12。狀 態(tài)寄存器16與緩沖器14及處理器內核12相通,用于將處理器內核12和緩沖器14的狀態(tài), 反饋給任務分配器20。而在實際應用中,所述任務分配器20根據(jù)該多核處理器任務分配系統(tǒng)中的各個狀態(tài)寄存 器所反映的判斷結果,向多個子處理系統(tǒng)0至X分發(fā)任務。在實際應用中,狀態(tài)寄存器16保持監(jiān)控處理器內核12和緩沖器14的狀態(tài)。在本發(fā)明實 施例中,當所述處理器內核12正在處理任務、或緩沖器14中保存有任務信息時,狀態(tài)寄存 器16向任務分配器20反饋其所屬的子處理系統(tǒng)處于忙碌狀態(tài)。而當處理器內核12處于等待、 休眠、或關閉狀態(tài),且緩沖器14中并未保存有任務信息時,則狀態(tài)寄存器16向任務分配器 20反饋其所屬的子處理系統(tǒng)處于空閑狀態(tài)。在實際應用中,狀態(tài)寄存器16向任務分配器20反饋的信息中可包括第一狀態(tài)位,用于表示其所屬的子處理系統(tǒng)是否處于空閑狀態(tài)。進一步地,所述狀態(tài)寄存器16向任務分配器20反饋的信息中還可包括第二狀態(tài)位,用 于表示其所屬的子處理系統(tǒng)的當前狀態(tài),即在空閑狀態(tài)下所處的具體的某一狀態(tài)情況,如等 待、休眠、或關閉等。其中,當需要分配任務時,處于等待狀態(tài)的子處理系統(tǒng)的優(yōu)先級高于 處于休眠狀態(tài)的子處理系統(tǒng),處于休眠狀態(tài)的子處理系統(tǒng)的優(yōu)先級高于處于關閉狀態(tài)的子處 理系統(tǒng),從而當有多個子處理系統(tǒng)處于空閑狀態(tài)時,任務分配器20可將任務優(yōu)先分配給處于 等待狀態(tài)的子處理系統(tǒng),避免了喚醒處于休眠、關閉狀態(tài)的子處理系統(tǒng)所帶來的能源的消耗 以及效率的降低。更進一步地,當子處理系統(tǒng)的處理器內核12為多線程處理器內核時,所述狀態(tài)寄存器 16向任務分配器20反饋的信息還可包括第三狀態(tài)位,用于表示所述處理器內核12的空閑程 度,比如有幾條線程空閑,而任務分配器20在分配任務的時候會優(yōu)先向空閑程度高的處理器 內核12分配任務。易于理解的是,當由于降低能耗的需要而讓部分子處理系統(tǒng)休眠或關閉時, 即使其狀態(tài)寄存器中顯示其有較高的空閑程度,只要其他的子處理系統(tǒng)的處理器內核12中仍 有空閑線程,就不會喚醒處于休眠或關閉狀態(tài)的子處理系統(tǒng),從而降低了該系統(tǒng)的工作功耗。在本發(fā)明實施例中,所述緩沖器14可以采用FIFO (First In First Out,先入先出緩 存隊列)形式實現(xiàn),在其它可選擇的實施例中,其也可以采用其它形式的緩沖器,且并不會 影響到本發(fā)明實施例的實施。本發(fā)明實施例的多核處理器任務分配系統(tǒng)100通過狀態(tài)寄存器16來判斷子處理系統(tǒng)的狀 態(tài),如果有任務需要進行分配,而處于活動狀態(tài)的子處理系統(tǒng)均繁忙時。任務分配器20根據(jù) 處于休眠或關閉狀態(tài)的子處理系統(tǒng)的狀態(tài)寄存器16 了解到這些休眠或關閉狀態(tài)的子處理系 統(tǒng)可以處理任務,于是任務分配器20可先將任務存入緩沖器14中,并喚醒處于休眠或關閉 狀態(tài)的子處理系統(tǒng)的內處理器內核12,從而提高了任務處理的效率。在本發(fā)明實事例中,可由緩沖器14來喚醒其相應的處理器內核12。本發(fā)明實施例充分利用多核處理器結構上的特點,利用緩沖器和狀態(tài)寄存器,在處理器 內核處于休眠或關閉的狀態(tài)時,任務分配器也可以向其分配任務,以使得當處理器內核被喚 醒后可以及時進行處理,提高了任務處理的效率。請參照圖2,本發(fā)明實施例還提供另一種多核處理器任務分配系統(tǒng)200。與本發(fā)明實施例 提供的多核處理器任務分配系統(tǒng)100的相同之處省略說明,本實施例的多核處理器任務分配 系統(tǒng)200與前一實施例中所述的多核處理器任務分配系統(tǒng)的區(qū)別之處在于每個子處理系統(tǒng) 還包括旁路(Bypass ) 213及路徑控制器215,其中,路徑控制器215與任務分配器220相通,并接受任務分配器220發(fā)送的任務信息,路徑控制器215根據(jù)狀態(tài)寄存器216中儲存的 狀態(tài)信息,選擇任務信息的傳輸通道。具體地,當待接收任務的處理器內核212在處理數(shù)據(jù) 時,即該處理器內核212處于忙碌狀態(tài)時,路徑控制器215選擇緩沖器214作為任務信息發(fā) 送的路徑;當處理器內核212處于等待狀態(tài)時,路徑控制器215選擇旁路213作為任務信息 發(fā)送的路徑,該旁路213可以直接將接收的任務消息發(fā)送給處于等待狀態(tài)的處理器內核212, 以加快任務信息的處理速度;當處理器內核212處于休眠或關閉狀態(tài)時,路徑控制器215將 任務信息通過緩沖器214發(fā)送,該緩沖器214接收并緩存任務消息的同時,喚醒處于休眠或 關閉狀態(tài)的處理器內核212,當該處理器內核212被喚醒后,緩沖器214將緩存的任務消息 發(fā)送給處理器內核212。本發(fā)明實施例提供的系統(tǒng),通過設置狀態(tài)寄存器以及傳輸通道,可以根據(jù)應用場景和數(shù) 據(jù)流量靈活配置,提高了多核處理器處理任務的效率,在不降低系統(tǒng)性能的前提下實現(xiàn)了低 功耗;屏蔽了處理器內核的開關狀態(tài),從任務分配器來看,所有的處理器內核都是可用的, 確保了在降低功耗的同時,不降低對突發(fā)數(shù)據(jù)的處理能力。實施例2本發(fā)明實施例提供了一種多核處理器的任務分配方法,該方法包括 首先,任務分配器根據(jù)狀態(tài)寄存器的狀態(tài)判斷處理器內核是否空閑; 然后,通過傳輸通道向空閑的處理器內核傳輸消息包。下面將結合附圖對本發(fā)明實施例提供的多核處理器的任務分配方法進行說明本發(fā)明實 施例提供了一種多核處理器的任務分配方法,且以任務分配器和處理器內核之間設置的傳輸 通道為緩沖器為例進行說明,參見圖3,方法包括301:任務分配器根據(jù)每個處理器內核對應的狀態(tài)寄存器的忙閑狀態(tài)查找空閑的處理器內 核,然后把消息包通過緩沖器發(fā)送給空閑的處理器內核處理。如果該空閑的處理器內核處于休眠或關閉狀態(tài),則執(zhí)行302;如果該空閑的處理器內核處于等待狀態(tài),則執(zhí)行304。具體地,對于多線程處理器內核,則要根據(jù)內部線程的狀態(tài)設置狀態(tài)寄存器,以8線程 處理器內核為例, 一個處理器內核可以同時處理最多8個任務,以權重0-8來表示處理器內 核忙閑狀態(tài),若8個線程全部為空閑,狀態(tài)寄存器的第三狀態(tài)位為8,若有3個被占用,5個 空閑,則狀態(tài)寄存器的第三狀態(tài)位為5。為了避免資源競爭,任務分配器通常優(yōu)先把任務發(fā) 給狀態(tài)寄存器空閑程度高的處理器內核,而多線程處理器內核只有內部全部線程都空閑時才 能關閉處理器內核。任務分配器在活動內核中分配任務時,此時,為了在效率和功耗上取得一個平衡點,可以根據(jù)處理器內核的處理能力設定,當活動處理器內核中空閑線程比率高于 關閉閾值則關掉一個處理器內核,此內核設為非活動狀態(tài),待內部全部線程運行完后,自動 停止工作,在所有活動處理器內核中仍然執(zhí)行空閑程度高的處理器內核優(yōu)先分配算法。302:處理器內核處于休眠或關閉狀態(tài),任務分配器發(fā)給處理器內核的消息包暫存在緩沖 器中,同時喚醒處理器內核,并將狀態(tài)寄存器設為忙碌狀態(tài)。其中,當處理器內核處于休眠狀態(tài)時,整個系統(tǒng)的功耗降低且處于休眠狀態(tài)的處理器內 核可以很快地被喚醒,緩沖器的緩存壓力較小。當處理器內核處于不活動狀態(tài)時,還可以通 過關掉單個處理器內核的電源來關閉處理器內核,這樣做可以更為省電,但喚醒時所需要的切換時間相對較長,需要的緩存更大,具體采用哪種方式實現(xiàn)低功耗視應用場合而定。303:處理器內核被喚醒后,對暫存在緩沖器中的消息包處理完畢后,狀態(tài)寄存器復位為 閑狀態(tài),然后結束。其中,當狀態(tài)寄存器復位為空閑狀態(tài)后,從任務分配器來看,該處理器內核又處于可分 配任務狀態(tài)。304:處理器內核處于等待狀態(tài),緩沖器接收任務分配器發(fā)來的消息包,并將接收的消息 包直接傳輸給處理器內核處理,同時將狀態(tài)寄存器設為忙碌狀態(tài);其中,由于處理器內核處于等待狀態(tài),可以對通過緩沖器傳輸?shù)南苯舆M行處理, 不需要等待。此時,該處理器內核可處理已在接收的消息包,但不接收新消息包。305:當處理器內核處理完消息包后,恢復等待狀態(tài),將狀態(tài)寄存器復位為空閑狀態(tài),然后結束。其中,當狀態(tài)寄存器復位為空閑狀態(tài)后,從任務分配器來看,該處理器內核又處于可分 配任務狀態(tài)。本發(fā)明實施例中多核處理器通過狀態(tài)寄存器的忙閑狀態(tài)進行動態(tài)開關,屏蔽了處理器內 核的開關狀態(tài)對任務分配器在分配任務時的影響。即使處理器內核處于關閉狀態(tài),但從任務 分配器來看,該處于關閉狀態(tài)的處理器內核仍是可用的,且所有的處理器內核都是可用的, 確保了在降低功耗的同時,不降低對突發(fā)數(shù)據(jù)的處理能力。實施例3本發(fā)明實施例還提供了一種多核處理器的任務分配的方法,且以任務分配器和處理器內核之間設置的傳輸通道包括旁路和緩沖器為例,進行說明,參見圖4,方法包括401:任務分配器根據(jù)每個處理器內核對應的狀態(tài)寄存器所顯示的忙閑狀態(tài),查找空閑的處理器內核,然后把接收到的消息包發(fā)送給空閑的處理器內核處理。其中,當處理器內核為單線程內核時,設置其狀態(tài)寄存器的空閑或忙碌狀態(tài)的定義,可 以根據(jù)具體的需要實現(xiàn),例如,根據(jù)該單線程處理器內核是否正在處理數(shù)據(jù),從而定義該單 線程內核的忙閑狀態(tài),如果該處理器內核正在處理任務,或緩沖器中保存有任務時,則為忙 碌狀態(tài);反之,當處理器內核并未在處理任務,而緩沖器中亦未有任務時,則為空閑狀態(tài), 更具體的,所述空閑狀態(tài)包括處理器內核等待處理任務、休眠和關閉這三種情況。當任務分 配器獲取到多個內核都處于空閑狀態(tài)時,可以隨機任選出一個空閑內核,也可以根據(jù)預設的 優(yōu)化選擇算法,從中選擇出一個空閑內核,本發(fā)明實施例不限制具體的選擇方式和方法。其中,當處理器內核為多線程處理器內核時,則要根據(jù)內部線程的狀態(tài)設置狀態(tài)寄存器, 以8線程處理器內核為例,即一個處理器內核可以同時處理最多8個任務,以權重0-8來表 示處理器內核忙閑狀態(tài),若8個線程全部為空閑,狀態(tài)寄存器的第三狀態(tài)位為8,若有3個 被占用,5個空閑,則狀態(tài)寄存器的第三狀態(tài)位為5。為了避免資源競爭,任務分配器通常優(yōu) 先把任務發(fā)給狀態(tài)寄存器空閑程度高的處理器內核,而多線程處理器內核只有內部全部線程 都空閑時才能關閉處理器內核或使處理器內核休眠。根據(jù)多線程處理器內核的狀態(tài)將多線程 處理器內核分為活動與非活動兩種狀態(tài),任務分配器只在活動內核中分配任務,此時為了在 效率和功耗上取得一個平衡點,可以根據(jù)處理器內核的處理能力設定,當處于活動的處理器 內核中的空閑線程高于關閉閾值則關掉一個處理器內核,此內核設為非活動狀態(tài),待內部全 部線程運行完后,自動停止工作;在所有工作的處理器內核中仍然在執(zhí)行任務且空閑程度高 的處理器內核優(yōu)先分配任務。即當多核處理器中的處理器內核為多線程時,則根據(jù)多線程中 的空閑線程數(shù)目,設定空閑程度,每個多線程處理器內核的狀態(tài)寄存器根據(jù)所述空閑程度設 定狀態(tài)值,相應地,任務分配器根據(jù)所述空閑程度,優(yōu)先選擇活動內核中空閑線程數(shù)目最大 的多線程處理器內核進行分配。其中,針對處理器的內核狀態(tài)進行如下說明 (r)對于單線程內核而言,默認所有內核都可由任務分配器進行任務分配,內核為降低 功耗而關閉與否對分配器是透明的。因此這種情況下只有空閑狀態(tài)(包括等待、休眠、關機) 和忙碌狀態(tài)。(2)對于多線程內核而言,其管理較為復雜,當一個內核中的空閑線程高于關閉閾值則 關掉一個處理器內核,此內核設為非活動狀態(tài),待內部全部線程運行完后,自動停止工作, 只有所有線程都空閑,才能關閉該內核。因此如果所有內核仍由任務分配器分配任務,就可 能造成所有內核都工作但每個內核中平均工作線程較少,從降低功耗的角度看是不合理的。應該存在一種算法能夠保證工作的內核數(shù)較少而每核內平均工作的線程數(shù)較多,同時要關掉 某個內核時也需要有機制保證其內部全部線程不再分配任務。因此多線程內核有活動和非活 動狀態(tài)的區(qū)別,而上述"空閑"、"忙"等狀態(tài)只在活動內核中有效,活動內核內部關閉與否 對分配器也是透明的,任務分配器只在活動內核中分配。而對于非活動的內核也可以看成一直 是"忙"狀態(tài),實際上不參與工作,任務分配器也不會向其分配。402:與該空閑的處理器內核相對應的路徑控制器收到任務分配器發(fā)送的消息包后,根據(jù) 該處理器內核的空閑狀態(tài)選擇一個通道傳輸消息包。如果處理器內核處于休眠或關閉狀態(tài), 則執(zhí)行203,如果處理器內核處于等待狀態(tài),則執(zhí)行205。其中,如前文所述,處理器內核的空閑狀態(tài),根據(jù)空閑的時間長短可為等待狀態(tài)、休眠 或關閉狀態(tài),當該處理器內核不處理數(shù)據(jù)時,則由忙碌狀態(tài)轉為空閑狀態(tài),具體地,處理器 內核首先會轉為等待狀態(tài),而當該等待狀態(tài)的持續(xù)時間達到設定時間值時,該處理器內核由 等待狀態(tài)切換到休眠或關閉狀態(tài),從而減少功耗。403:當處理器內核處于休眠或關閉狀態(tài),選擇使用緩沖器傳輸消息包,傳輸?shù)南删彌_器緩存,同時喚醒處理器內核,狀態(tài)寄存器設為忙碌狀態(tài)。其中,處理器內核空閑時可以采用關掉時鐘的方式來實現(xiàn)低功耗,該方式切換喚醒速度快;也可以采用分別關掉單個處理器內核的電源來實現(xiàn)低功耗,該方式更省電,節(jié)省功耗, 但切換喚醒時間相對較長,需要的緩存更大,例如對于功耗要求較高時,則可以采用分別關 掉單個處理器內核的電源的方式,而對于對切換喚醒時間要求較高時,則可以采用上述第一 種關掉時鐘的方式。其中,具體采用哪種方式實現(xiàn)低功耗依據(jù)具體的應用場合而定。404:處理器內核被喚醒后,對暫存在緩沖器中的消息包處理完后,把輸入通道切換到旁路,狀態(tài)寄存器復位為空閑狀態(tài),然后結束。其中,當狀態(tài)寄存器復位為空閑狀態(tài)后,從任務分配器來看,該處理器內核又處于可分 配任務狀態(tài)。405:當處理器內核處于等待狀態(tài),選擇使用旁路傳輸消息包,旁路開始接收任務分配器發(fā)送的消息包,狀態(tài)寄存器設為忙碌狀態(tài),當前處理器內核可處理己在接收的消息包,但不 接收新消息包。其中,當處理器內核處于等待狀態(tài),選擇使用旁路傳輸消息包,將消息包直接傳送給等 待狀態(tài)的處理器內核,實現(xiàn)了處于等待狀態(tài)的處理器內核對旁路傳輸消息包的直接處理,此 時消息包的處理過程不需要等待,因此,減少傳輸消息包的功耗和時延。406:當處理器內核處理旁路傳輸完消息包后,進入等待狀態(tài),狀態(tài)寄存器復位為空閑狀態(tài),然后結束。其中,當狀態(tài)寄存器復位為空閑狀態(tài)后,從任務分配器來看,該處理器內核又處于可分 配任務狀態(tài)。本發(fā)明實施例中多核處理器通過狀態(tài)寄存器的忙閑狀態(tài)進行動態(tài)開關,任務分配器根據(jù) 狀態(tài)寄存器的狀態(tài)分配內核任務,根據(jù)選擇的傳輸通道(緩沖器或旁路)實現(xiàn)對消息包的傳 輸,即使多核處理器處于關閉狀態(tài),從任務分配器來看,該關閉的多核處理器仍是可分配任 務的狀態(tài),確保了在為降低功耗而關閉空閑的處理器內核的同時,又不會降低對突發(fā)數(shù)據(jù)的 處理能力。實施例4參見圖5,本發(fā)明實施例提供了一種路徑控制器,該路徑控制器,包括 接收模塊501,用于接收任務分配器發(fā)送的消息包;選擇模塊502,用于選擇傳輸通道傳輸消息包。其中,當傳輸通道包括旁路和緩沖器時,選擇模塊502具體包括第一選擇單元,用于當空閑的處理器內核的狀態(tài)為等待狀態(tài)時,選擇旁路作為傳輸通道,并將接收的消息包發(fā)送給旁路;第二選擇單元,用于當空閑的處理器內核的狀態(tài)為休眠或關閉狀態(tài)時,選擇緩沖器作為 傳輸通道,并將接收的消息包發(fā)送給緩沖器。本發(fā)明實施例提供的路徑控制器,可以實現(xiàn)對傳輸通道的選擇,進而根據(jù)選擇的傳輸通 道實現(xiàn)對消息包的傳輸,從而提高了多核處理器處理任務的效率,使多核處理器在不降低對 突發(fā)數(shù)據(jù)的處理能力及系統(tǒng)性能的前提下,實現(xiàn)低功耗。實施例5參見圖6,本發(fā)明實施例提供了一種緩沖器,該所述緩沖器,包括接收模塊601,用于接收路徑控制器傳輸?shù)南?緩存模塊602,用于將接收模塊接收到的消息包緩存; 喚醒模塊603,用于喚醒休眠或關閉的處理器內核;傳輸模塊604,用于當喚醒模塊喚醒處理器內核后,將緩沖模塊緩存的消息包傳輸給被 喚醒的處理器內核。進一步地,當處理器內核處于空閑狀態(tài),則傳輸模塊604還用于將接收模塊接收的消息包直接發(fā)送給處于空閑狀態(tài)的處理器內核。本發(fā)明實施例提供的緩沖器,當處理器內核為休眠或關閉狀態(tài)時,對接收的消息包緩存的同時,并喚醒該處理器內核,當喚醒處理器內核后,將緩存的消息包發(fā)送,從而提高了多核處理器處理任務的效率,使多核處理器在不降低對突發(fā)數(shù)據(jù)的處理能力及系統(tǒng)性能的前提下,實現(xiàn)低功耗。通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本發(fā)明可以通過硬件 實現(xiàn),也可以借助軟件加必要的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技 術方案可以以軟件產品的形式體現(xiàn)出來,該軟件產品可以存儲在一個非易失性存儲介質(可 以是CD-ROM, U盤,移動硬盤等)中,包括若干指令用以使得一臺計算機設備(可以是個人 計算機,服務器,或者網絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之 內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
權利要求
1、一種多核處理器的任務分配方法,其特征在于,所述方法包括任務分配器根據(jù)狀態(tài)寄存器的狀態(tài)判斷處理器內核是否空閑;所述任務分配器通過傳輸通道向空閑的處理器內核傳輸消息包。
2、 根據(jù)權利要求1所述的多核處理器的任務分配方法,其特征在于,所述任務分配器根 據(jù)狀態(tài)寄存器的狀態(tài)判斷處理器內核是否空閑,包括當所述多核處理器中包括多個多線程處理器內核時,所述多個多線程處理器內核相應的 狀態(tài)寄存器根據(jù)所述多線程處理器內核空閑線程的數(shù)目向所述任務分配器發(fā)送一狀態(tài)信息;所述任務分配器根據(jù)所述多個多線程處理器內核所相應的狀態(tài)寄存器返回的狀態(tài)信息, 判斷所述多個多線程處理器內核的空閑程度,及所述任務分配器通過傳輸通道向空閑的處理器內核傳輸消息包,包括所述任務分配器通過傳輸通道向空閑線程高的多線程處理器內核發(fā)送消息包。
3、 根據(jù)權利要求1所述的多核處理器的任務分配方法,其特征在于,所述空閑狀態(tài),包 括等待狀態(tài)、休眠狀態(tài)或關閉狀態(tài),所述通過傳輸通道向空閑的處理器內核傳輸消息包,包 括當所述空閑的處理器內核的狀態(tài)為等待時,所述路徑控制器選擇所述傳輸通道中的旁路 作為所述消息包發(fā)送的通道;當所述空閑的處理器內核的狀態(tài)為休眠或關閉時,所述路徑控制器選擇所述傳輸通道中 的緩沖器作為所述消息包發(fā)送的通道。
4、 根據(jù)權利要求1所述的實現(xiàn)多核處理器的任務分配方法,其特征在于,所述空閑狀態(tài),包括等待狀態(tài)、休眠狀態(tài)或關閉狀態(tài),所述方法還包括所述傳輸通道中的緩沖器將接收的所述路徑控制器發(fā)送的消息包緩存; 當所述處理器內核為休眠或關閉狀態(tài)時,喚醒所述休眠或關閉狀態(tài)的處理器內核; 當所述休眠或關閉狀態(tài)的處理器內核被喚醒后,所述緩沖器將緩存的消息包發(fā)送給被所 述喚醒后的處理器內核。
5、 一種多核處理器的任務分配方法,用于多核處理器中,所述多核處理器包括多個子處理系統(tǒng),其特征在于,所述方法包括通過狀態(tài)寄存器讀取所述多個子處理系統(tǒng)的狀態(tài)信息,所述狀態(tài)信息顯示所述多個子處 理系統(tǒng)的當前狀態(tài),所述當前狀態(tài)包括等待、休眠或關閉;向處于休眠或關閉狀態(tài)的子處理系統(tǒng)的緩沖器發(fā)送消息包;喚醒所述處于休眠或關閉狀態(tài)的子處理系統(tǒng);所述緩沖器將所述消息包發(fā)送給所述子處理系統(tǒng)的處理器內核。
6、 -種多核處理器的任務分配系統(tǒng),其特征在于,所述系統(tǒng),包括任務分配器和子處 理系統(tǒng),所述子處理系統(tǒng)包括狀態(tài)寄存器、處理器內核及傳輸通道,其中,所述狀態(tài)寄存器,用于向所述任務分配器發(fā)送所述子處理系統(tǒng)的狀態(tài)信息,所述狀態(tài)信 息包括所述子處理系統(tǒng)的處理器內核是否處于空閑狀態(tài),所述空閑狀態(tài)包括等待、休眠或關 閉;所述任務分配器,用于向所述子處理系統(tǒng)發(fā)送消息包;所述傳輸通道,用于將所述任務分配器發(fā)送的所述消息包傳送給所述處理器內核,所述 傳輸通道的傳輸路徑中至少包括一個緩沖器;其中,當所述處理器內核處于休眠或關閉狀態(tài)時,所述任務分配器將所述消息包發(fā)送給 所述緩沖器緩存,并喚醒所述處理器內核,當所述處理器內核被喚醒后,所述緩沖器將所述 消息包發(fā)送給所述處理器內核。
7、 根據(jù)權利要求6所述的多核處理器的任務分配系統(tǒng),其特征在于,當所述傳輸通道還 包括旁路,所述子處理系統(tǒng)還包括路徑控制器;所述路徑控制器,用于接收所述任務分配器發(fā)送的消息包;還用于根據(jù)空閑的處理器內 核的狀態(tài),選擇所述緩沖器或旁路傳輸消息包;其中,當所述空閑的處理器內核的狀態(tài)為等待狀態(tài)時,所述路徑控制器選擇所述旁路作為傳輸 通道,并將接收的消息包發(fā)送給所述旁路;當所述空閑的處理器內核的狀態(tài)為休眠或關閉狀態(tài)時,所述路徑控制器選擇所述緩沖器 作為傳輸通道,并將接收的消息包發(fā)送給所述緩沖器。
全文摘要
本發(fā)明公開了一種多核處理器的任務分配方法、系統(tǒng)及設備,屬于通信技術領域。所述方法包括任務分配器根據(jù)狀態(tài)寄存器的狀態(tài)判斷處理器內核是否空閑;任務分配器通過傳輸通道向空閑的處理器內核傳輸消息包。所述系統(tǒng)包括多個子處理系統(tǒng),所述多個子處理系統(tǒng)分別包括任務分配器、狀態(tài)寄存器及處理器內核。本發(fā)明提高了多核處理器處理任務的效率,使多核處理器在不降低對突發(fā)數(shù)據(jù)的處理能力及系統(tǒng)性能的前提下,實現(xiàn)低功耗。
文檔編號G06F9/50GK101403982SQ200810225648
公開日2009年4月8日 申請日期2008年11月3日 優(yōu)先權日2008年11月3日
發(fā)明者侯忠明 申請人:華為技術有限公司