專利名稱:一種多核處理器系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及處理器技術領域,特別涉及一種多核處理器系統(tǒng)。
背景技術:
單芯片多核處理器(Chip Multi Processors,簡稱CMP)是在一塊芯片內實現(xiàn)多個處理器單兀(Central Processor Unit,簡稱CPU),每個CPU又可以稱為一個核。CMP中各核之間共享一定的資源并可以并行執(zhí)行不同的進程。CMP的各核執(zhí)行的程序之間有時需要進行數(shù)據(jù)共享與同步,因此CMP的硬件結構必須支持核間的通信。目前比較主流的核間的通信機制有兩種,一種是總線共享的高速緩沖存儲器(Cache)結構,另一種是硬件消息隊列結構。
0003]總線共享Cache結構是指每個核擁有共享的二級或三級Cache,用于保存比較常用的數(shù)據(jù),并通過連接各核的總線保證各個核之間的數(shù)據(jù)一致性。各個核之間可以通過一塊共享的數(shù)據(jù)段來實現(xiàn)的通訊。硬件消息隊列結構是指以硬件方式為每個核實現(xiàn)一組隊列,隊列的操作與總線共享Cache結構相比,提升了核間通訊的效率。高效的核間的通信機制是CMP高性能的重要保障;但是,現(xiàn)有的CMP核間硬件消息隊列結構不能滿足更高性能的核間消息交互及任務調度。
發(fā)明內容
有鑒于此,本發(fā)明在于提供一種多核處理器系統(tǒng),以提供更高性能的核間消息交互及任務調度。本發(fā)明的一方面提供一種多核處理器系統(tǒng),包括多個中央處理器單元以及多組第一級硬件消息隊列;其中,每一個中央處理器單元分別連接一組第一級硬件消息隊列,用于處理所述第一級硬件消息隊列中的消息;其中,每一組第一級硬件消息隊列包括多個第一級硬件消息隊列;并且每一組第一級硬件消息隊列中,優(yōu)先級高的第一級硬件消息隊列優(yōu)先被調度,相同優(yōu)先級的第一級硬件消息隊列根據(jù)輪轉調度權重被輪轉調度。本發(fā)明的另一方面還提供多核處理器系統(tǒng),包括多個中央處理器單元、多組第一級硬件消息隊列以及多組第二級硬件消息隊列;其中,每一個中央處理器單元分別連接一組第一級硬件消息隊列,用于處理所述第一級硬件消息隊列中的消息;其中,每一組第一級硬件消息隊列包括多個第一級硬件消息隊列;并且每一組第二級硬件消息隊列分別連接至少一組第一級硬件消息隊列,用于向所述第一級消息隊列推送消息。較現(xiàn)有技術相比,本發(fā)明各方面提供的多核處理器系統(tǒng),可以滿足更高性能的核間消息交互及任務調度,提高了多核處理器系統(tǒng)的效率和性能。
圖I為本發(fā)明一個實施例提供的一種多核處理器系統(tǒng)。
具體實施例方式本發(fā)明的一個實施例提供一種多核處理器系統(tǒng)。該系統(tǒng)包括多個中央處理器單元以及多組第一級硬件消息隊列;每一個中央處理器單元分別連接一組第一級硬件消息隊列,用于處理第一級硬件消息隊列中的消息;其中,每一組第一級硬件消息隊列包括多個第一級硬件消息隊列;并且,每一組第一級硬件消息隊列中,優(yōu)先級高的第一級硬件消息隊列優(yōu)先被調度,相同優(yōu)先級的第一級硬件消息隊列根據(jù)輪轉調度權重被輪轉調度。 本發(fā)明的另一個實施例還提供一種多核處理器系統(tǒng)。該系統(tǒng)包括多個中央處理器單元、多組第一級硬件消息隊列以及多組第二級硬件消息隊列;每一個中央處理器單元分別連接一組第一級硬件消息隊列,用于處理第一級硬件消息隊列中的消息;其中,每一組第一級硬件消息隊列包括多個第一級硬件消息隊列;并且,每一組第二級硬件消息隊列分別連接至少一組第一級硬件消息隊列,用于向第一級消息隊列推送消息。其中,上述實施例中的第一級硬件消息隊列的讀取速度高于第二級硬件消息隊列,且第一級硬件消息隊列支持的消息少于第二級硬件消息隊列支持的消息數(shù)。下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。本實施例提供一種多核處理器系統(tǒng)100,如圖I所示,該多核處理器系統(tǒng)100包括多個中央處理器單元101 (CoreO,Corel,Core2,Core3)以及多組第一級硬件消息隊列102。其中,每一個中央處理器單元101分別連接一組第一級硬件消息隊列102,用于處理第一級硬件消息隊列中的消息;每一組第一級硬件消息隊列102包括多個第一級硬件消息隊列。進一步地,該多核處理器系統(tǒng)還可以包括多組第二級硬件消息隊列103,如圖I中示出了 GroupO和Groupl兩組第二級硬件消息隊列。其中,每一組第二級硬件消息隊列103分別連接至少一組第一級硬件消息隊列102,用于向第一級消息隊列推送消息。本實施例中,第一級硬件消息隊列可以為靠近核的位置設置的高速硬件消息隊列,該高速硬件消息隊列的讀取速度高于第二級硬件消息隊列。第二級硬件消息隊列的位置離核較遠,但可以支持的消息數(shù)多于第一級硬件消息隊列支持的消息數(shù)。本實施例提供的多核處理器系統(tǒng)100可以支持靈活的、可配置的消息隊列的調度出隊策略。以下對本發(fā)明實施例中用到的幾種調度策略做簡要地描述。RR(Round Robin,輪詢)調度輪詢各個隊列,如果隊列有消息則調度出。PQ(Priority Queue,優(yōu)先隊列)調度基于優(yōu)先隊列的一種調度算法。該算法按照隊列優(yōu)先級的高低進行調度,高優(yōu)先級先調度,低優(yōu)先級后調度。高優(yōu)先級隊列非空,就先調度優(yōu)先級高的隊列出隊,只有在優(yōu)先級高的隊列調度空后,才調度低優(yōu)先級隊列。WRR (Weight Round Robin,加權輪詢)調度WRR是在RR調度的基礎上演變而來,在隊列之間進行輪轉調度,根據(jù)每個隊列的權重來調度各隊列中的消息。圖I示出了與Corel相連接的一組第一級硬件消息隊列102配置為PQ+WRR調度策略,Core2相連接的一組第一級硬件消息隊列102配置為RR調度策略。以下對PQ+WRR調度策略進行詳細說明,PQ+WRR調度策略可以包括支持將一個隊列配置為最高優(yōu)先級(PQO)。每次調度消息出隊時,如果該隊列中有消息,將被調度。如果該隊列沒有消息,則查詢其它的隊列。支持將一個隊列配置為次高優(yōu)先級(PQi)。每次調度消息出隊時,如果優(yōu)先級高于 該隊列的隊列(PQ0 PQi-D中都沒有消息并且該隊列中有消息,將被調度。如果該隊列沒有消息,則查詢其它的隊列。支持為多個相同優(yōu)先級(PQi+1)的隊列配置不同的調度權重(WRR1,WRR2)。如果優(yōu)先級高于該隊列的隊列(PQ0 PQi)中都沒有消息,按照WRR策略調度各個隊列消息出隊。本領域技術人員可以理解,圖I示出的調度策略僅為一個示例,對于每一組第一級硬件消息隊列102,可以根據(jù)設計需求配置其他的調度策略,比如,所有的第一級硬件消息隊列102均配置為PQ+WRR調度策略。進一步地,對于與第一級硬件消息隊列相連接的每一組第二級硬件隊列103,也可以根據(jù)設計需求配置調度策略,例如,圖I示出了將兩組第二級硬件消息隊列103的調度策略配置為PQ+WRR,即如果第一級硬件消息隊列為空或消息隊列水線低于預設值,按優(yōu)先級從高到低對組內所有隊列進行遍歷,如果某一個優(yōu)先級只有一個隊列并且該隊列中有消息,則將消息調度映射到第一級硬件隊列中;如果某一個優(yōu)先級隊列中沒有消息,則查詢下一個優(yōu)先級的隊列;如果某一個優(yōu)先級有多個隊列,并且該多個隊列中有消息,則按照WRR調度策略調度相同優(yōu)先級的各個隊列。進一步地,本發(fā)明實施例中可以將一組第二級硬件消息隊列映射到多個核對應的第一級硬件消息隊列。例如,圖I示出了第二級硬件消息隊列組Groupl可以映射到Corel,Core2和Core3對應的第一級硬件消息隊列。本領域技術人員可以理解,還可以配置其他的映射方案,圖I的示例并非用于限定本發(fā)明。本發(fā)明實施例中,將一組第二級硬件消息隊列中的消息推送到該第二級硬件消息隊列組映射的某一個核對應的第一級硬件消息隊列可選用的映射方案包括(I)簡單輪轉(RR):循環(huán)遍歷所有映射的核的第一級硬件消息隊列,如果第一級硬件消息隊列隊列為空或低于預設水線值,則將消息推送到該第一級硬件消息隊列;或者,(2)查詢所有映射核的第一級硬件消息隊列的水線,將消息推送到緩存消息最小的第一級硬件消息隊列;或者(3)指定優(yōu)先處理的核,只有當該核的第一級硬件消息隊列滿,才推送到其他核的第一級硬件消息隊列;或者
(4)按照消息標簽(TAG)流保序將消息推送到合適的核的第一級硬件消息隊列。本領域技術人員可以理解,在各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。以上僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內?!?br>
權利要求
1.一種多核處理器系統(tǒng),其特征在于,包括 多個中央處理器單元以及多組第一級硬件消息隊列;其中, 每一個中央處理器單元分別連接一組第一級硬件消息隊列,用于處理所述第一級硬件消息隊列中的消息;其中,每一組第一級硬件消息隊列包括多個第一級硬件消息隊列;并且, 每一組第一級硬件消息隊列中,優(yōu)先級高的第一級硬件消息隊列優(yōu)先被調度,相同優(yōu)先級的第一級硬件消息隊列根據(jù)輪轉調度權重被輪轉調度。
2.根據(jù)權利要求I所述的多核處理器系統(tǒng),其特征在于, 所述多核處理器系統(tǒng)還包括多組第二級硬件消息隊列;其中, 每一組第二級硬件消息隊列分別連接至少一組第一級硬件消息隊列,用于向所述第一級消息隊列推送消息。
3.根據(jù)權利要求2所述的多核處理器系統(tǒng),其特征在于, 每一組第二級硬件消息隊列中,優(yōu)先級高的第二級硬件消息隊列優(yōu)先被調度,相同優(yōu)先級的第二級硬件消息隊列根據(jù)輪轉調度權重被輪轉調度。
4.根據(jù)權利要求2所述的多核處理器系統(tǒng),其特征在于, 當所述第一級硬件消息隊列中的消息為空或者低于預設水線值,所述第二級硬件消息隊列中的消息被推送到所述第一級硬件消息隊列中。
5.根據(jù)權利要求2所述的多核處理器系統(tǒng),其特征在于,當一組第二級硬件消息隊列連接至少兩組第一級硬件消息隊列時, 與所述至少兩組第一級硬件消息隊列連接的所述第二級硬件消息隊列中的消息被優(yōu)先推送到所述至少兩組第一級硬件消息隊列中緩存消息數(shù)最小的第一級硬件消息隊列。
6.根據(jù)權利要求2所述的多核處理器系統(tǒng),其特征在于,當一組第二級硬件消息隊列連接至少兩組第一級硬件消息隊列且所述至少兩組第一級硬件消息隊列具有不同的優(yōu)先級時, 與所述至少兩組第一級硬件消息隊列連接的所述第二級硬件消息隊列中的消息被優(yōu)先推送到所述至少兩組第一級硬件消息隊列中優(yōu)先級高的一組第一級硬件消息隊列。
7.根據(jù)權利要求2所述的多核處理器系統(tǒng),其特征在于,當一組第二級硬件消息隊列連接至少兩組第一級硬件消息隊列時, 按照消息標簽流保序將與所述至少兩組第一級硬件消息隊列連接的所述第二級硬件消息隊列中的消息推送到所述至少兩組第一級硬件消息隊列。
8.根據(jù)權利要求2-7任意一項所述的多核處理器系統(tǒng),其特征在于, 所述第一級硬件消息隊列的讀取速度高于所述第二級硬件消息隊列,且所述第一級硬件消息隊列支持的消息少于所述第二級硬件消息隊列支持的消息數(shù)。
9.一種多核處理器系統(tǒng),其特征在于,包括 多個中央處理器單元、多組第一級硬件消息隊列以及多組第二級硬件消息隊列;其中, 每一個中央處理器單元分別連接一組第一級硬件消息隊列,用于處理所述第一級硬件消息隊列中的消息;其中,每一組第一級硬件消息隊列包括多個第一級硬件消息隊列;并且 每一組第二級硬件消息隊列分別連接至少一組第一級硬件消息隊列,用于向所述第一級消息隊列推送消息。
10.根據(jù)權利要求9所述的多核處理器系統(tǒng),其特征在于, 每一組第一級硬件消息隊列中,優(yōu)先級高的第一級硬件消息隊列優(yōu)先被調度,相同優(yōu)先級的第一級硬件消息隊列根據(jù)輪轉調度權重被輪轉調度。
11.根據(jù)權利要求9所述的多核處理器系統(tǒng),其特征在于, 每一組第二級硬件消息隊列中,優(yōu)先級高的第二級硬件消息隊列優(yōu)先被調度,相同優(yōu)先級的第二級硬件消息隊列根據(jù)輪轉調度權重被輪轉調度。
12.根據(jù)權利要求9所述的多核處理器系統(tǒng),其特征在于, 當所述第一級硬件消息隊列中的消息為空或者低于預設水線值,所述第二級硬件消息隊列中的消息被推送到所述第一級硬件消息隊列中。
13.根據(jù)權利要求9所述的多核處理器系統(tǒng),其特征在于,當一組第二級硬件消息隊列連接至少兩組第一級硬件消息隊列時, 與所述至少兩組第一級硬件消息隊列連接的所述第二級硬件消息隊列中的消息被優(yōu)先推送到所述至少兩組第一級硬件消息隊列中緩存消息數(shù)最小的第一級硬件消息隊列。
14.根據(jù)權利要求9所述的多核處理器系統(tǒng),其特征在于,當一組第二級硬件消息隊列連接至少兩組第一級硬件消息隊列且所述至少兩組第一級硬件消息隊列具有不同的優(yōu)先級時, 與所述至少兩組第一級硬件消息隊列連接的所述第二級硬件消息隊列中的消息被優(yōu)先推送到所述至少兩組第一級硬件消息隊列中優(yōu)先級高的一組第一級硬件消息隊列。
15.根據(jù)權利要求9所述的多核處理器系統(tǒng),其特征在于,當一組第二級硬件消息隊列連接至少兩組第一級硬件消息隊列時, 根據(jù)消息標簽流保序將與所述至少兩組第一級硬件消息隊列連接的所述第二級硬件消息隊列中的消息推送到所述至少兩組第一級硬件消息隊列。
16.根據(jù)權利要求9-15任意一項所述的多核處理器系統(tǒng),其特征在于, 所述第一級硬件消息隊列的讀取速度高于所述第二級硬件消息隊列,且所述第一級硬件消息隊列支持的消息少于所述第二級硬件消息隊列支持的消息數(shù)。
全文摘要
本發(fā)明提供了一種多核處理器系統(tǒng),包括多個中央處理器單元以及多組第一級硬件消息隊列;每一個中央處理器單元分別連接一組第一級硬件消息隊列,用于處理所述第一級硬件消息隊列中的消息;其中,每一組第一級硬件消息隊列包括多個第一級硬件消息隊列;并且每一組第一級硬件消息隊列中,優(yōu)先級高的第一級硬件消息隊列優(yōu)先被調度,相同優(yōu)先級的第一級硬件消息隊列根據(jù)輪轉調度權重被輪轉調度。通過本發(fā)明提供的多核處理器系統(tǒng),提高了多核處理器系統(tǒng)的效率和性能。
文檔編號G06F9/50GK102713852SQ201280000273
公開日2012年10月3日 申請日期2012年2月1日 優(yōu)先權日2012年2月1日
發(fā)明者張衛(wèi)國, 鄔力波 申請人:華為技術有限公司