亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種多核處理器的任務(wù)分配方法、系統(tǒng)及設(shè)備的制作方法

文檔序號:6471070閱讀:243來源:國知局
專利名稱:一種多核處理器的任務(wù)分配方法、系統(tǒng)及設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種多核處理器的任務(wù)分配方法、系統(tǒng)及設(shè)備。
技術(shù)背景在高性能處理器設(shè)計(jì)中,靠單純提高主頻實(shí)現(xiàn)處理器性能提升已經(jīng)遇到瓶頸,目前主流 的趨勢是使用處理器多內(nèi)核設(shè)計(jì),例如PC (Personal Computer,個(gè)人計(jì)算機(jī))通用處理器 的雙核以及網(wǎng)絡(luò)處理器的幾十個(gè)處理器內(nèi)核的設(shè)計(jì)。在現(xiàn)實(shí)中,處理器的任務(wù)在時(shí)間域上往 往是不均衡的,因此對處理能力的需求也有所不同。例如,網(wǎng)絡(luò)繁忙時(shí),可能需要網(wǎng)絡(luò)處理 器的全部處理能力,而網(wǎng)絡(luò)較空閑時(shí),可能只需要等效一兩個(gè)處理器內(nèi)核的處理能力就足夠 了,這種處理能力上的裕量,為降低處理器功耗提供了可能的空間。關(guān)于低功耗設(shè)計(jì)(LPD, Low Power Design),目前在器件級上已有一些比較成熟的方法,比如停止閑置器件的時(shí)鐘信 號或者切斷該部分的電壓。現(xiàn)有技術(shù)中,當(dāng)處理器空閑時(shí),保存現(xiàn)場,然后整個(gè)處理器進(jìn)入休眠狀態(tài)。當(dāng)有任務(wù)要 處理時(shí),恢復(fù)現(xiàn)場,喚醒處理器進(jìn)行處理。在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中由于整個(gè)處理器進(jìn)入休眠,此時(shí)無法 處理任何實(shí)時(shí)數(shù)據(jù)。而當(dāng)有任務(wù)需要處理時(shí)只能先喚醒處理器,然后才發(fā)送任務(wù)信息,這樣 處理任務(wù)的效率就受到了影響。發(fā)明內(nèi)容為了提高多核處理器處理任務(wù)的效率,使多核處理器在不降低對突發(fā)數(shù)據(jù)的處理能力及 系統(tǒng)性能的前提下,實(shí)現(xiàn)低功耗,本發(fā)明實(shí)施例提供了一種多核處理器的任務(wù)分配方法、系統(tǒng)及設(shè)備,所述技術(shù)方案如下一方面,提供了一種多核處理器的任務(wù)分配方法,所述方法包括任務(wù)分配器根據(jù)狀態(tài)寄存器的狀態(tài)判斷處理器內(nèi)核是否空閑;所述任務(wù)分配器通過傳輸通道向空閑的處理器內(nèi)核傳輸消息包。另一方面,還提供了一種多核處理器的任務(wù)分配方法,用于多核處理器中,所述多核處 理器包括多個(gè)子處理系統(tǒng),所述方法包括通過狀態(tài)寄存器讀取所述多個(gè)子處理系統(tǒng)的狀態(tài)信息,所述狀態(tài)信息顯示所述多個(gè)子處 理系統(tǒng)的當(dāng)前狀態(tài),所述當(dāng)前狀態(tài)包括等待、休眠或關(guān)閉;向處于休眠或關(guān)閉狀態(tài)的子處理系統(tǒng)的緩沖器發(fā)送消息包;喚醒所述處于休眠或關(guān)閉狀態(tài)的子處理系統(tǒng);所述緩沖器將所述消息包發(fā)送給所述子處理系統(tǒng)的處理器內(nèi)核。再一方面,還提供了一種多核處理器的任務(wù)分配系統(tǒng),所述系統(tǒng),包括任務(wù)分配器和 子處理系統(tǒng),所述子處理系統(tǒng)包括狀態(tài)寄存器、處理器內(nèi)核及傳輸通道,其中,所述狀態(tài)寄存器,用于向所述任務(wù)分配器發(fā)送所述子處理系統(tǒng)的狀態(tài)信息,所述狀態(tài)信 息包括所述子處理系統(tǒng)的處理器內(nèi)核是否處于空閑狀態(tài),所述空閑狀態(tài)包括等待、休眠或關(guān) 閉;所述任務(wù)分配器,用于向所述子處理系統(tǒng)發(fā)送消息包;所述傳輸通道,用于將所述任務(wù)分配器發(fā)送的所述消息包傳送給所述處理器內(nèi)核,所述 傳輸通道的傳輸路徑中至少包括一個(gè)緩沖器;其中,當(dāng)所述處理器內(nèi)核處于休眠或關(guān)閉狀態(tài)時(shí),所述任務(wù)分配器將所述消息包發(fā)送給 所述緩沖器緩存,并喚醒所述處理器內(nèi)核,當(dāng)所述處理器內(nèi)核被喚醒后,所述緩沖器將所述 消息包發(fā)送給所述處理器內(nèi)核。本發(fā)明實(shí)施例提供的技術(shù)方案的有益效果是可以根據(jù)應(yīng)用場景和數(shù)據(jù)流量靈活配置,提高了多核處理器處理任務(wù)的效率,在不降低 系統(tǒng)性能的前提下實(shí)現(xiàn)了低功耗;屏蔽了處理器內(nèi)核的開關(guān)狀態(tài),從任務(wù)分配器來看,所有 的處理器內(nèi)核都是可用的,確保了在降低功耗的同時(shí),不降低對突發(fā)數(shù)據(jù)的處理能力。


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