一種可重構單指令多進程的多核處理器及方法
【專利摘要】本發(fā)明屬于多核處理器【技術領域】,具體涉及一種可重構單指令多進程的多核處理器及方法。本發(fā)明的可重構單指令多進程多核處理器,基于現(xiàn)有的一個簇狀結構、共享內存多核處理器模型,每個簇中包含四個單核和一個共享內存;在此基礎上增加如下功能部件:為每個單核增加相應的控制寄存器,增加主核流水線停頓判斷邏輯,增加從核指令的選擇邏輯,增加片上網(wǎng)絡的發(fā)包配置邏輯等。單指令多進程方法針對這樣的情形,當有若干個核執(zhí)行相同代碼時,將它們組成主從模式,主核執(zhí)行取指令操作,而從核從主核獲取指令,關閉自己的指令存儲器,從而減少不必要的指令存儲器訪問,減小功耗。本發(fā)明可以明顯降低多核處理器的功耗。
【專利說明】—種可重構單指令多進程的多核處理器及方法
【技術領域】
[0001]本發(fā)明屬于多核處理器【技術領域】,具體涉及一種可重構單指令多進程的多核處理器及方法。
【背景技術】
[0002]指令存儲器存儲了源程序的指令代碼,在傳統(tǒng)多核處理器領域,每個處理器單核分別完成取指令工作。而在現(xiàn)代的多媒體、數(shù)字通信、信息安全等諸多嵌入式領域中,往往呈現(xiàn)出并行的程序指令代碼十分類似的特點,如果這些核分別要取指令,則存在巨大的取指令冗余,浪費了取指令的功耗。另一方面,研究表明在嵌入式領域指令存儲器功耗約為微處理器的功耗的30-40%,以至于指令存儲器成為了微處理器的能量消耗主要部件。高能耗對微處理器特別是嵌入式應用領域的微處理器提出了挑戰(zhàn)。因此,在程序執(zhí)行類似代碼的情形下,考慮減少取指令的冗余度來降低指令存儲器功耗有十分重要的現(xiàn)實意義。
[0003]圖1展示了一個多核處理器的模型,每個單核擁有傳統(tǒng)的6級流水線的微處理器結構圖。包括了取指令級、譯碼級、執(zhí)行級、訪存儲器級、對齊級和寫回級。本發(fā)明的可重構局限在圖中所示的一個簇的四個核內。
[0004]在傳統(tǒng)的多核處理器設計中,所有的單核擁有自己的指令存儲器,并且總是從各自的指令存儲器中獲取指令??紤]到目前一些嵌入式應用的程序具有之前所述的特點,傳統(tǒng)多核處理器在執(zhí)行這些代碼相同的N道程序時,總是用N次訪存來獲取一條相同的指令,存在著明顯的訪存冗余,同時也造成了功耗的浪費。
[0005]本發(fā)明提出的技術能夠在這種情形下重構這些核為主從模式,主核取指令、分配指令,從而不再取相同的指令,減少無用的功耗。
【發(fā)明內容】
[0006]本發(fā)明的目的在于提供一種能夠減少無用功耗的可重構單指令多進程的多核處理器及方法。
[0007]本發(fā)明提供的可重構單指令多進程的多核處理器,在執(zhí)行多道相同指令程序的情形下,通過將單核重構為主從模式,只有主核取指令,并且將取到的指令分配給其從核,而從核不取指令,從而降低無用的取指令功耗。由于指令存儲器的功耗占據(jù)了整個處理器功耗的相當大比例(30-40%),從而也明顯降低了整個處理器的功耗。
[0008]本發(fā)明提出的可重構單指令多進程多核處理器,如圖1所示,是基于現(xiàn)有的一個簇狀結構、共享內存多核處理器模型,每個簇中包含四個單核和一個共享內存,其中每個單核包含基本流水線結構的MIPS微處理器,所述微處理器包含取指令級、譯碼級、執(zhí)行級、訪存儲器級、對齊級和寫回級,單核中有指令存儲器和數(shù)據(jù)存儲器;多核處理器采用包交換片上互聯(lián),互聯(lián)的路由器節(jié)點是“R”;本發(fā)明的多核處理器是在上述多核處理器模型基礎上,增加如下功能部件而得到:
為每個單核增加相應 的寄存器,用于表征其當前的工作模式為主核或者從核,如果是主核,還要指示其為哪些核的主核;具體來說,每個單核都增加一個I或2bit的寄存器ctrl_reg。圖2中,(a)中第一幅圖的左上角的單核處理器中給出示例,(b)中給出寄存器ctrl_reg與其對應的主從核配置模式不例;
增加主核流水線停頓判斷(控制)邏輯,由于工作在主從模式下,從核流水線的停頓也會引起主核流水線的停頓,需要將從核的流水線停頓信號增加到主核流水線控制中,具體的位置和連接關系如圖3所示,以左上角的單核示例,其中斜線框代表了主核流水線的判斷邏輯模塊,旁邊從核(來自左上,右下,左下單核)的流水線停頓信號連接到這個模塊并按照圖3左邊的表格進行邏輯判斷。
[0009]增加從核指令的選擇邏輯,從核的指令可能來自其對應的主核,也可能來自其自身的指令存儲器,選擇邏輯用于對從核的指令來源進行選擇。示例如圖4所示,以右下角單核為例,其增加的指令選擇來源邏輯可以根據(jù)寄存器ctrl_reg選擇來自左上角(UL)和左下角(DL)的指令譯碼結果。
[0010]增加片上網(wǎng)絡的發(fā)包配置邏輯,完成主從模式的初始化工作,如圖5所示。增加一個配置包的類型,從而指導片上網(wǎng)絡將這類型的配置包發(fā)配到控制寄存器ctrl_reg中,以完成控制寄存器ctrl_reg的初始化。
[0011]由上可見,本發(fā)明是在現(xiàn)有多核處理器的構架的基礎上增加了一些功能部件,得到一種具有新的功能、且可降低功耗的新的多核處理器。
[0012]本發(fā)明還提供基于上述多核處理器的可重構單指令多進程的方法,具體步驟為:
(1)在程序執(zhí)行前,首先根據(jù)多核處理器運行程序的實際情況(是每個單核獨立執(zhí)行,還是可以構成主從模式),如果可以構成主從模式,則按照上述提到的配置包的格式,編寫相應的配置包,該配置包可以由片上互聯(lián)網(wǎng)絡發(fā)送到相關單核的控制寄存器ctrl_reg,從而完成控制寄存器ctrl_reg的初始化;
(2)如果工作在主從模式下,完成初始化之后,做為從核的處理器的指令存儲器將被關閉,包括將其指令存儲器的時鐘門控,選擇信號無效,從而避免了從核指令存儲器的功耗,而從核的指令選擇邏輯將控制寄存器ctrl_reg選擇其主核的指令譯碼,代替其自身的指令譯碼;
(3)如果工作在主從模式下,主核的流水線停頓將按照上述增加的邏輯產生。根據(jù)控制寄存器ctrl_reg將其從核的流水線停頓信號引入主核。如果從核有流水線的停頓,則此時,主核也必須將自身的流水線停頓,知道從核的流水線停頓解除。
[0013]與現(xiàn)有的架構相比,本發(fā)明提供的可重構單指令多進程方法,能夠在不明顯增加硬件開銷、并且不影響處理器工作最高頻率的情況下,有效地降低多道進程執(zhí)行相同指令代碼情況下的訪存功耗,從而降低了整個處理器的功耗。
【專利附圖】
【附圖說明】
[0014]圖1是多核處理器模型以及傳統(tǒng)的6級流水線微處理器架構。
[0015]圖2是四種主從配置模式(a)以及控制寄存器ctrl_reg的配置模式(b)。
[0016]圖3是主核流水線停頓控制邏輯(左上核示例)。
[0017]圖4是從核指令選擇邏輯(右下核示例)。
[0018]圖5是控制寄存器ctrl_reg的片上網(wǎng)絡初始化邏輯與架構?!揪唧w實施方式】
[0019]下面結合附圖和實例進一步描述本發(fā)明。
[0020]圖2展示了四種主從配置模式以及控制寄存器ctrl_reg??偣灿兴姆N主從模式:
1、四個核全部為主(4主);2、一對為主從(左上+右上或者左下+右下),另外兩個為主(I主I從+2主);3、兩對為主從(左上+右上以及左下+右下)(I主I從+1主I從);4、左上核為主,其余核為從,(I主3從)。不同的核用不同的配置寄存器ctrl_reg來區(qū)分工作模式,如圖2 (b)所示:
(1)對于左上角的單核,用2bit表示ctrl_reg,其ctrl_reg的值和表示的意義分別為:00表示左上角單核單獨執(zhí)行程序;01表示左上角單核做為右上單核的主核;10表示左上角單核是所有其它核(右上、左下、右下單核)的主核;
(2)對于右上角的單核,用Ibit表示ctrl_reg,其值和意義為:0表示右上角的單核單獨執(zhí)行程序,I表示右上角的單核是左上角單核的從核;
(3)對于左下角的單核,用2bit來表示ctrl_reg,其值和意義為:00表示左下角單核單獨執(zhí)行程序,01表示左下角單核是右下角單核的主核,10表示左下角單核是左上角單核的從核;
(4)對于右下角的單核,用2bit來表示其ctrl_reg,其值和意義為:00表示右下角的單核獨立執(zhí)行程序,01表示右下角的單核是左下角單核的從核,10表示右下角單核是左上角單核的從核。
[0021]圖3展示主核的流水線停頓的控制邏輯,這里用主核為左上核為示例,其它情況主核的控制邏輯類似。需要將右上核的流水線停頓信號outer_stall_UR、左下核的流水線停頓信號outer_stall_DL、右下核的流水線停頓信號outer_stall_DR反饋回左上主核,根據(jù)主核工作的不同模式(按照ctrl_reg區(qū)分),如果是獨立工作(ctrl_reg為00),則其流水線的停頓stall就等于自身的流水線停頓信號stall_UL,與其它的停頓信號無關;如果是做為右上核的主核(ctrl_reg為01),則要把outer_stall_UR并入自身的流水線停頓,即Stall=StallJJL或outer_stall_UR ;如果做為所有核的主核(ctrl_reg為10),則要把三個從核(右上角、左下角和右下角核)的停頓信號都并入到流水線停頓控制中,即stall=outer_stal1_UR 或 outer_stall_DL 或 outer_stall_DR。
[0022]圖4展示從核的指令譯碼選擇邏輯,這里示例的從核是右下核,其它情況下從核的選擇邏輯類似。該核可能做為左下核和左上核的從核,或者獨立工作,因此,在選擇指令譯碼結果時根據(jù)ctrl_reg來選擇,ctrl_reg的對應表格見圖2。如果是從核模式(即ctrl_reg為01或者10),則關閉自身的指令存儲器,具體的做法是:m_clk不被選中,選中門控時鐘gated,從而自身的指令存儲器被門控無效,而m_ce不被選中,選中無效信號invalid,從而指令存儲器的選擇信號被置無效,自身的指令存儲器被完全控制,減少了功耗。而對于指令譯碼結果的選擇,同樣根據(jù)ctrl_reg進行,具體的過程是:
(1)ctrl_reg為00,表示右下角核獨立執(zhí)行,選擇來自自身的譯碼結果;
(2)ctrl_reg為01,表示右下角核做為左下角核的從核執(zhí)行,選擇來自左下角(DL)核的譯碼結果;
(3)ctrl_reg為10,表示右下角核做為左上角核的從核執(zhí)行,選擇來自左上角(UL)核的譯碼結果。
[0023]圖5展示了通過片上網(wǎng)絡發(fā)包的方式來初始化ctrl_reg的架構,其包格式的31位表示是給核(core)還是給接收器(receiver),為O表示給核(core),為I表示給接收器(receiver), 30位表示是給ctrl_reg還是給存儲器(memory),為O表示給ctrl_reg,為I表示給存儲器(memory),,29、28位表示X坐標(因為本發(fā)明中給出的多核處理器采用了 4X4的網(wǎng)絡結構,所以需要2比特來指出X坐標,對于其它尺寸的網(wǎng)格結構多核處理器,需要相適應的bit位來表示X坐標,下面的y坐標道理與此類似),27、26位表示y坐標,25、24位就是ctrl_reg的配置值(本發(fā)明中的ctrl_reg最多是2bit,應該需要兩位來指示,如果ctrl_reg只需要Ibit則第24位有效,而25位無效),上電初始化后,通過片上網(wǎng)絡發(fā)包灌數(shù)據(jù)到對應核的ctrl_reg,完成其初始化工作。例如,要給坐標為(0,0)的左上角的核發(fā)ctrl_reg,并且把它配置成其它三個核的主核,則這個配置包的格式為:
131
29 28 27
24
I
忽略低位的其它比特位,配置的具體過程為:
(1)首先,片上網(wǎng)絡根據(jù)X和I的坐標為0,0,將該包傳遞到(0,O)節(jié)點,并進入到該節(jié)點的輸入FIFO中;
(2)然后片上網(wǎng)絡解析出31bit為1,則將該包從輸入FIFO中傳遞給Receiver,然后解析出30bit為O,再將該包傳遞給ctrl_reg,并把值10寫入到該節(jié)點的ctrl_reg中,完成配置初始化工作。
【權利要求】
1.一種可重構單指令多進程多核處理器,基于現(xiàn)有的一個簇狀結構、共享內存多核處理器模型,每個簇中包含四個單核和一個共享內存,其中每個單核包含基本流水線結構的MIPS微處理器,所述微處理器包含取指令級、譯碼級、執(zhí)行級、訪存儲器級、對齊級和寫回級;單核中有指令存儲器和數(shù)據(jù)存儲器;多核處理器采用包交換片上互聯(lián),互聯(lián)的路由器節(jié)點是“R” ;其特征在于,在所述多核處理器模型基礎上,增加如下功能部件而得到:為每個單核增加相應的控制寄存器,用于表征其當前的工作模式為主核或者從核,如果是主核,還要指示其為哪些核的主核;增加主核流水線停頓判斷邏輯,由于工作在主從模式下,從核流水線的停頓會引起主核流水線的停頓,故將從核的流水線停頓信號增加到主核流水線控制中,用于進行邏輯判斷;增加從核指令的選擇邏輯,用于選擇從核的指令來自其對應的主核,或來自其自身的指令存儲器;增加片上網(wǎng)絡的發(fā)包配置邏輯,即增加一個配置包的類型,指導片上網(wǎng)絡將這類型的配置包發(fā)配到控制寄存器中,以完成控制寄存器的初始化。
2.基于權利要求1所述的多核處理器的可重構單指令多進程的方法,其特征在于具體步驟為:(1)在程序執(zhí)行前,首先根據(jù)多核處理器運行程序的實際情況:是每個單核獨立執(zhí)行,還是可以構成主從模式,如果可以構成主從模式,則按照所述的配置包的格式,編寫相應的配置包,該配置包由片上互聯(lián)網(wǎng)絡發(fā)送到相關單核的控制寄存器,從而完成控制寄存器的初始化;(2)如果工作在主從模式下,完成初始化之后,將作為從核的處理器的指令存儲器關閉,包括將其指令存儲器的時鐘門控,選擇信號無效;而從核的指令選擇邏輯將控制寄存器選擇其主核的指令譯碼,代替其自身的指令譯碼;(3)如果工作在主從模式下,主核的流水線停頓將按照所述增加的邏輯產生;根據(jù)控制寄存器將其從核的流水線停頓信號引入主核;如果從核有流水線的停頓,則此時,主核也將自身的流水線停頓,從核的流水線停頓解除。
【文檔編號】G06F15/80GK103440225SQ201310365649
【公開日】2013年12月11日 申請日期:2013年8月21日 優(yōu)先權日:2013年8月21日
【發(fā)明者】虞志益, 俞政, 于學球, 劉寧希, 曾曉洋 申請人:復旦大學