一種多核共享simd協(xié)處理器的系統(tǒng)級模型構(gòu)建方法
【專利摘要】一種多核共享SIMD協(xié)處理器的系統(tǒng)級模型構(gòu)建方法,包括有片上系統(tǒng),所述的片上系統(tǒng)上設(shè)置有n個核和n個向量協(xié)處理器,其中n為正偶數(shù),所述的n個向量協(xié)處理器通過一個交叉開關(guān)與所述的n個核相連接,還設(shè)置有分別與所述的n個核、n個向量協(xié)處理器和交叉開關(guān)相連用于通過所述的交叉開關(guān)調(diào)度向量協(xié)處理器與所述的核連通的調(diào)度器,其中,所述的調(diào)度器是根據(jù)每個向量協(xié)處理器當(dāng)前狀態(tài)來調(diào)度向量協(xié)處理器。本發(fā)明通過共享機制,顯著提高SIMD向量協(xié)處理器的資源利用率,降低系統(tǒng)功耗,在資源一定的情況下,任務(wù)完成的效率會更高。
【專利說明】—種多核共享SIMD協(xié)處理器的系統(tǒng)級模型構(gòu)建方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種處理器的系統(tǒng)級模型。特別是涉及一種多核共享SMD協(xié)處理器的系統(tǒng)級模型構(gòu)建方法。
【背景技術(shù)】
[0002]SIMD (Single Instruct1n Multiple Data)是一種實現(xiàn)數(shù)據(jù)級并行的技術(shù),對多個數(shù)據(jù)執(zhí)行相同的操作。SIMD技術(shù)的關(guān)鍵是在一條單獨的指令中同時執(zhí)行多個運算操作,以增加處理器的吞吐量,這一特點使得SMD技術(shù)特別適合于多媒體應(yīng)用等數(shù)據(jù)密集型運算。現(xiàn)在主流的處理器都有其SMD指令子集,如X86的MMX或SSE,ARM的NEON指令子集,PowerPC的Altivec指令子集等。在現(xiàn)代的多核處理器中,處理器上的每個核通常都會配有一個專屬的SIMD協(xié)處理器,也稱為Vector Coprocessor (VP)。然而,由于其專屬屬性,當(dāng)某一個核執(zhí)行一個缺乏數(shù)據(jù)級并行性的程序時,該SMD協(xié)處理器處于閑置狀態(tài),而其他核可能正在執(zhí)行有數(shù)據(jù)級并行性的程序,但只能使用屬于該核的SMD協(xié)處理器,而不能使用其他閑置的SMD協(xié)處理器,從而造成資源的浪費以及功耗的增加。
[0003]如圖1所示為傳統(tǒng)的體系結(jié)構(gòu),假設(shè)一個片上系統(tǒng)有4個核和4個VP,。在該結(jié)構(gòu)中,每個VP都是專屬于某一個核,不能被其他核所共享。當(dāng)某一個核沒有執(zhí)行數(shù)據(jù)密集型的程序時,該VP處于閑置狀態(tài),從而造成資源和功耗的浪費。
【發(fā)明內(nèi)容】
[0004]本發(fā)明所要解決的技術(shù)問題是,提供一種能夠提高向量協(xié)處理器的資源利用率,降低系統(tǒng)功耗多核共享SMD協(xié)處理器的系統(tǒng)級模型。
[0005]本發(fā)明所采用的技術(shù)方案是:一種多核共享SMD協(xié)處理器的系統(tǒng)級模型構(gòu)建方法,包括有片上系統(tǒng),所述的片上系統(tǒng)上設(shè)置有η個核和η個向量協(xié)處理器,其中η為正偶數(shù),所述的η個向量協(xié)處理器通過一個交叉開關(guān)與所述的η個核相連接,還設(shè)置有分別與所述的η個核、η個向量協(xié)處理器和交叉開關(guān)相連用于通過所述的交叉開關(guān)調(diào)度向量協(xié)處理器與所述的核連通的調(diào)度器,其中,所述的調(diào)度器是根據(jù)每個向量協(xié)處理器當(dāng)前狀態(tài)來調(diào)度向量協(xié)處理器。
[0006]所述的每個向量協(xié)處理器是通過3個狀態(tài)寄存器來描述當(dāng)前所處的狀態(tài),其中,
[0007]第一狀態(tài)寄存器,用于描述所在的向量協(xié)處理器當(dāng)前正在被η個核中的哪個核使用,或是沒有被任何一個核使用,當(dāng)向量協(xié)處理器當(dāng)前沒有被任何一個核使用,則設(shè)定為所述的向量協(xié)處理器處在空閑狀態(tài),能夠由調(diào)度器來調(diào)度;
[0008]第二狀態(tài)寄存器,用于描述所在的向量協(xié)處理器當(dāng)前是處于共享狀態(tài)還是處于專屬狀態(tài),設(shè)定處于共享狀態(tài)的向量協(xié)處理器能夠被調(diào)度器調(diào)度,而處于專屬狀態(tài)的向量協(xié)處理器無法被調(diào)度器調(diào)度;
[0009]第三狀態(tài)寄存器,用于描述所在的向量協(xié)處理器在所處核中所有向量協(xié)處理器中的索引。
[0010]當(dāng)一個核當(dāng)前正在使用多個向量協(xié)處理器時,其中只有一個向量協(xié)處理器處于專屬狀態(tài),其他向量協(xié)處理器則都是處于共享狀態(tài)。
[0011]片上系統(tǒng)在初始狀態(tài)時,每個向量協(xié)處理器都處在專屬狀態(tài),其中第一個向量協(xié)處理器專屬于第一個核,第二個向量協(xié)處理器專屬于第二個核,依次類推,每個向量協(xié)處理器的索引都為O ;向量協(xié)處理器由專屬狀態(tài)改變?yōu)楣蚕頎顟B(tài)的條件是:使用所述向量協(xié)處理器的核主動讓出所述向量協(xié)處理器的使用權(quán),此后所述向量協(xié)處理器由調(diào)度器來調(diào)度。
[0012]當(dāng)η個核中的任一個核因執(zhí)行有數(shù)據(jù)級并行性的程序需要更多的向量協(xié)處理器來參與運算,則所述的核需向調(diào)度器申請更多的向量協(xié)處理器,調(diào)度器運行一種負載均衡的調(diào)度算法,若當(dāng)前有處在空閑狀態(tài)的向量協(xié)處理器,則調(diào)度器將所述的向量協(xié)處理器分配給正在申請的那個核,若當(dāng)前沒有空閑的向量協(xié)處理器,但是有處在共享狀態(tài)的向量協(xié)處理器,則調(diào)度器根據(jù)當(dāng)時情況依據(jù)負載均衡策略進行向量協(xié)處理器資源的重新分配。
[0013]本發(fā)明的一種多核共享SMD協(xié)處理器的系統(tǒng)級模型構(gòu)建方法,通過共享機制,顯著提高SMD向量協(xié)處理器的資源利用率,降低系統(tǒng)功耗,在資源一定的情況下,任務(wù)完成的效率會更高。
【專利附圖】
【附圖說明】
[0014]圖1是傳統(tǒng)的片上系統(tǒng)結(jié)構(gòu);
[0015]圖2是采用本發(fā)明的方法構(gòu)建的一個4核通過交叉開關(guān)共享4個VP的系統(tǒng)級模型;
[0016]圖3是一個調(diào)度示例。
[0017]圖中
[0018]1:核2:向量協(xié)處理器
[0019]3:交叉開關(guān)4:調(diào)度器
【具體實施方式】
[0020]下面結(jié)合實施例和附圖對本發(fā)明的一種多核共享SMD協(xié)處理器的系統(tǒng)級模型構(gòu)建方法做出詳細說明。
[0021]本發(fā)明的一種多核共享SMD協(xié)處理器的系統(tǒng)級模型構(gòu)建方法,包括有片上系統(tǒng),所述的片上系統(tǒng)上設(shè)置有η個核和η個向量協(xié)處理器,其中η為正偶數(shù),所述的η個向量協(xié)處理器通過一個交叉開關(guān)與所述的η個核相連接,還設(shè)置有分別與所述的η個核、η個向量協(xié)處理器和交叉開關(guān)相連用于通過所述的交叉開關(guān)調(diào)度向量協(xié)處理器與所述的核連通的調(diào)度器,其中,所述的調(diào)度器是根據(jù)每個向量協(xié)處理器當(dāng)前狀態(tài)來調(diào)度向量協(xié)處理器。
[0022]所述的每個向量協(xié)處理器是通過3個狀態(tài)寄存器來描述當(dāng)前所處的狀態(tài),其中,
[0023]第一狀態(tài)寄存器,用于描述所在的向量協(xié)處理器當(dāng)前正在被η個核中的哪個核使用,可能是核0,核I...核(η-1)。或是沒有被任何一個核使用,當(dāng)向量協(xié)處理器當(dāng)前沒有被任何一個核使用,則設(shè)定為所述的向量協(xié)處理器處在空閑狀態(tài),能夠由調(diào)度器來調(diào)度;
[0024]第二狀態(tài)寄存器,用于描述所在的向量協(xié)處理器當(dāng)前是處于共享狀態(tài)還是處于專屬狀態(tài)。當(dāng)一個核當(dāng)前正在使用多個向量協(xié)處理器時,其中只有一個向量協(xié)處理器處于專屬狀態(tài),其他向量協(xié)處理器則都是處于共享狀態(tài)。設(shè)定處于共享狀態(tài)的向量協(xié)處理器能夠被調(diào)度器調(diào)度,而處于專屬狀態(tài)的向量協(xié)處理器無法被調(diào)度器調(diào)度;
[0025]第三狀態(tài)寄存器,用于描述所在的向量協(xié)處理器在所處核中所有向量協(xié)處理器中的索引。
[0026]本發(fā)明的一種多核共享SMD協(xié)處理器的系統(tǒng)級模型構(gòu)建方法,片上系統(tǒng)在初始狀態(tài)時,每個向量協(xié)處理器都處在專屬狀態(tài),其中第一個向量協(xié)處理器專屬于第一個核,第二個向量協(xié)處理器專屬于第二個核,依次類推,每個向量協(xié)處理器的索引都為O ;向量協(xié)處理器由專屬狀態(tài)改變?yōu)楣蚕頎顟B(tài)的條件是:使用所述向量協(xié)處理器的核主動讓出所述向量協(xié)處理器的使用權(quán),此后所述向量協(xié)處理器由調(diào)度器來調(diào)度。
[0027]當(dāng)η個核中的任一個核因執(zhí)行有數(shù)據(jù)級并行性的程序需要更多的向量協(xié)處理器來參與運算,則所述的核需向調(diào)度器申請更多的向量協(xié)處理器,調(diào)度器運行一種負載均衡的調(diào)度算法,若當(dāng)前有處在空閑狀態(tài)的向量協(xié)處理器,則調(diào)度器將所述的向量協(xié)處理器分配給正在申請的那個核,若當(dāng)前沒有空閑的向量協(xié)處理器,但是有處在共享狀態(tài)的向量協(xié)處理器,則調(diào)度器根據(jù)當(dāng)時情況依據(jù)負載均衡策略進行向量協(xié)處理器資源的重新分配。
[0028]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖對本發(fā)明實施方式作進一步地詳細描述。
[0029]圖2是依據(jù)本發(fā)明的多核共享SMD協(xié)處理器的系統(tǒng)級模型構(gòu)建方法設(shè)計的一個4核通過交叉開關(guān)共享4個VP的系統(tǒng)級模型。調(diào)度器4會與4個核(Core) I及4個向量協(xié)處理器(VP)2進行通信,根據(jù)核I的申請進行向量協(xié)處理器2資源的分配以及交叉開關(guān)3的配置。
[0030]在系統(tǒng)初始狀態(tài)下,4個向量協(xié)處理器2分別專屬于4個核1,不可被調(diào)度器4調(diào)度。當(dāng)其中某一個核I執(zhí)行一個沒有數(shù)據(jù)級并行性的程序時,可以向調(diào)度器4申請讓出向量協(xié)處理器2的使用權(quán),此后該向量協(xié)處理器2由調(diào)度器4進行管理,其狀態(tài)也由專屬狀態(tài)改變?yōu)楣蚕頎顟B(tài)。由于程序本身的動態(tài)特點,在某一個時間段,由于操作系統(tǒng)的調(diào)度,讓出向量協(xié)處理器2的核I有可能又會執(zhí)行一個具有數(shù)據(jù)級并行性的程序。此時,該核I需要向調(diào)度器4申請一定數(shù)量的向量協(xié)處理器2資源,如果當(dāng)前有空閑狀態(tài)的向量協(xié)處理器2,那么調(diào)度器4會將一定量的向量協(xié)處理器2分配給該核I,并將其中一個向量協(xié)處理器2的狀態(tài)由共享態(tài)改變?yōu)閷賾B(tài),其他的分配給該核的向量協(xié)處理器2仍然處在共享態(tài)。在任何情況下,一個讓出向量協(xié)處理器使用權(quán)的核,若再次申請向量協(xié)處理器資源,那么該核至少會申請到一個向量協(xié)處理器資源,這樣就會保證每個核不會被“餓死”。
[0031]圖3所示是一個調(diào)度示例,用以說明本發(fā)明的共享模型是如何進行工作的。分為兩攔,左側(cè)為時間狀態(tài),右側(cè)為4個向量協(xié)處理器(VP)。在系統(tǒng)初始狀態(tài),也就是State O狀態(tài),4個VP分別各屬于一個核。每個VP通過三個參數(shù)來描述當(dāng)前所處的狀態(tài),以VPO舉例,三個參數(shù)分別為:C0/0/0。CO代表當(dāng)前VPO正在被核O使用;第二個參數(shù)若為O代表當(dāng)前處在專屬狀態(tài),即專屬于核0,不可被調(diào)度器調(diào)度,若為1,則處在共享態(tài),可被調(diào)度器調(diào)度;第三個參數(shù)為O表示在屬于核O的所有VP中,該VP的索引為O。
[0032]系統(tǒng)運行之后,核O、核I和核2由于沒有執(zhí)行數(shù)據(jù)級并行性的程序,因此主動向調(diào)度器申請,讓出VP的使用權(quán),此時進入State I狀態(tài)中。在State I狀態(tài)中,以VPO為例,其三個參數(shù)為:s/l/2。第一個參數(shù)為s代表該VP由調(diào)度器負責(zé)管理,第二個參數(shù)為I表示當(dāng)前VPO處在共享態(tài),第三個參數(shù)為2代表在所有屬于調(diào)度器管理的VP當(dāng)中,VPO在其中的索引為2。
[0033]系統(tǒng)繼續(xù)運行,在某一段時間,核3由于執(zhí)行大量的數(shù)據(jù)密集型任務(wù),因此主動向調(diào)度器申請VP資源,由于調(diào)度器正在管理著3個處于閑置狀態(tài)且處在共享狀態(tài)的VP,因此將這3個VP資源全部分配給核3使用,進入State I狀態(tài)。在該狀態(tài)中,4個VP都被核3使用,有3個VP(VP0?VP3)仍然處在共享態(tài),一個VP(VP3)處在專屬態(tài),索引分別為O到3。
[0034]系統(tǒng)繼續(xù)往下運行,在某一時間段,由于操作系統(tǒng)的調(diào)度,核O被調(diào)度進去一個有數(shù)據(jù)級并行性的程序,因此核O主動向調(diào)度器申請VP資源,而此時核3仍然在使用著全部的VP資源。由于調(diào)度器運行的是負載均衡調(diào)度算法,因此會將被核3使用的3個處在共享狀態(tài)的VP中的兩個分配給核0,同時會對這兩個VP的狀態(tài)寄存器進行設(shè)置,隨機的將這兩個VP中的一個由共享態(tài)設(shè)置為專屬態(tài),另一個仍然為共享態(tài),進入State 3狀態(tài)。在State3狀態(tài)中,核O和核3分別使用2個VP資源,每個核使用的兩個VP中都有一個是專屬態(tài),一個是共享態(tài)。根據(jù)系統(tǒng)運行情況,處在共享態(tài)的VP資源仍然可被調(diào)度器調(diào)度,整個過程一直是一個動態(tài)調(diào)整的過程。
[0035]本領(lǐng)域技術(shù)人員可以理解附圖只是一個優(yōu)選實施例的示意圖,上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種多核共享SIMD協(xié)處理器的系統(tǒng)級模型構(gòu)建方法,包括有片上系統(tǒng),所述的片上系統(tǒng)上設(shè)置有η個核和η個向量協(xié)處理器,其中η為正偶數(shù),其特征在于,所述的η個向量協(xié)處理器通過一個交叉開關(guān)與所述的η個核相連接,還設(shè)置有分別與所述的η個核、η個向量協(xié)處理器和交叉開關(guān)相連用于通過所述的交叉開關(guān)調(diào)度向量協(xié)處理器與所述的核連通的調(diào)度器,其中,所述的調(diào)度器是根據(jù)每個向量協(xié)處理器當(dāng)前狀態(tài)來調(diào)度向量協(xié)處理器。
2.根據(jù)權(quán)利要求1所述的一種多核共享SMD協(xié)處理器的系統(tǒng)級模型構(gòu)建方法,其特征在于,所述的每個向量協(xié)處理器是通過3個狀態(tài)寄存器來描述當(dāng)前所處的狀態(tài),其中, 第一狀態(tài)寄存器,用于描述所在的向量協(xié)處理器當(dāng)前正在被η個核中的哪個核使用,或是沒有被任何一個核使用,當(dāng)向量協(xié)處理器當(dāng)前沒有被任何一個核使用,則設(shè)定為所述的向量協(xié)處理器處在空閑狀態(tài),能夠由調(diào)度器來調(diào)度; 第二狀態(tài)寄存器,用于描述所在的向量協(xié)處理器當(dāng)前是處于共享狀態(tài)還是處于專屬狀態(tài),設(shè)定處于共享狀態(tài)的向量協(xié)處理器能夠被調(diào)度器調(diào)度,而處于專屬狀態(tài)的向量協(xié)處理器無法被調(diào)度器調(diào)度; 第三狀態(tài)寄存器,用于描述所在的向量協(xié)處理器在所處核中所有向量協(xié)處理器中的索引。
3.根據(jù)權(quán)利要求2所述的一種多核共享SIMD協(xié)處理器的系統(tǒng)級模型構(gòu)建方法,其特征在于,當(dāng)一個核當(dāng)前正在使用多個向量協(xié)處理器時,其中只有一個向量協(xié)處理器處于專屬狀態(tài),其他向量協(xié)處理器則都是處于共享狀態(tài)。
4.根據(jù)權(quán)利要求2所述的一種多核共享SMD協(xié)處理器的系統(tǒng)級模型構(gòu)建方法,其特征在于,片上系統(tǒng)在初始狀態(tài)時,每個向量協(xié)處理器都處在專屬狀態(tài),其中第一個向量協(xié)處理器專屬于第一個核,第二個向量協(xié)處理器專屬于第二個核,依次類推,每個向量協(xié)處理器的索引都為O ;向量協(xié)處理器由專屬狀態(tài)改變?yōu)楣蚕頎顟B(tài)的條件是:使用所述向量協(xié)處理器的核主動讓出所述向量協(xié)處理器的使用權(quán),此后所述向量協(xié)處理器由調(diào)度器來調(diào)度。
5.根據(jù)權(quán)利要求4所述的一種多核共享SMD協(xié)處理器的系統(tǒng)級模型構(gòu)建方法,其特征在于,當(dāng)η個核中的任一個核因執(zhí)行有數(shù)據(jù)級并行性的程序需要更多的向量協(xié)處理器來參與運算,則所述的核需向調(diào)度器申請更多的向量協(xié)處理器,調(diào)度器運行一種負載均衡的調(diào)度算法,若當(dāng)前有處在空閑狀態(tài)的向量協(xié)處理器,則調(diào)度器將所述的向量協(xié)處理器分配給正在申請的那個核,若當(dāng)前沒有空閑的向量協(xié)處理器,但是有處在共享狀態(tài)的向量協(xié)處理器,則調(diào)度器根據(jù)當(dāng)時情況依據(jù)負載均衡策略進行向量協(xié)處理器資源的重新分配。
【文檔編號】G06F15/80GK104391821SQ201410669796
【公開日】2015年3月4日 申請日期:2014年11月20日 優(yōu)先權(quán)日:2014年11月20日
【發(fā)明者】郭煒, 崔魯平, 魏繼增 申請人:天津大學(xué)