一種可重構(gòu)的處理器架構(gòu)及其重構(gòu)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種可重構(gòu)的處理器架構(gòu),屬微處理器設(shè)計技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]現(xiàn)代信號處理應(yīng)用中,任務(wù)級并行與數(shù)據(jù)級并行兩種處理模式兩極分化的情況日益嚴(yán)重。工程實現(xiàn)中,針對不同應(yīng)用領(lǐng)域的要求,需構(gòu)建不同的處理器硬件平臺。面向任務(wù)級并行,需構(gòu)建多核處理器平臺,適應(yīng)多任務(wù)并發(fā)的要求;而數(shù)據(jù)級并行,則需構(gòu)建單核處理器平臺,面向單任務(wù)應(yīng)用,選擇處理能力強的單核處理器搭建系統(tǒng)。任務(wù)需求的多樣性,導(dǎo)致處理器架構(gòu)繁多,用戶學(xué)習(xí)實現(xiàn)不便。
[0003]具有可重構(gòu)架構(gòu)的處理器可針對不同應(yīng)用需求,進行處理器結(jié)構(gòu)重組,力求解決不同應(yīng)用特征下,計算平臺通用化的問題,是目前國內(nèi)外研究熱點。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的所要解決的技術(shù)問題在于提供一種在不同應(yīng)用特征下,計算平臺能夠通用化的可重構(gòu)的處理器架構(gòu)。
[0005]本發(fā)明采用以下技術(shù)方案解決上述技術(shù)問題的:一種可重構(gòu)的處理器架構(gòu),其內(nèi)部包含4個指令緩存、16個運算宏、共享數(shù)據(jù)存儲器、共享程序存儲器及外設(shè),所述16個運算宏通過4條指令總線連接到指令緩存,指令緩存連接到交叉開關(guān),各外設(shè)也與交叉開關(guān)連接,運算宏、交叉開關(guān)連接到共享數(shù)據(jù)存儲器,指令緩存連接到共享程序存儲器,指令總線采用流水的方式;
[0006]該可重構(gòu)的處理器包含兩種工作模式:離散和重組模式;
[0007]離散模式:該模式下的處理器形成一個4核同構(gòu)處理器,每核均包含4個運算宏,I個指令緩存及I條指令總線;
[0008]重組模式:該模式將運算宏及指令流水進行重組,構(gòu)建不同規(guī)模的邏輯核,處理器內(nèi)部根據(jù)需要選擇是I個核,或者2個核、或者3個核或者4個核,每一個核內(nèi)部的包含1-16個運算宏。
[0009]作為進一步具體的技術(shù)方案,每條指令總線一次能夠發(fā)射8條48bit指令字,單指令最多能夠驅(qū)動16運算宏參與計算,內(nèi)部不使用的指令流水和運算宏設(shè)置成低功耗模式。
[0010]作為進一步具體的技術(shù)方案,每個運算宏包含私有的數(shù)據(jù)存儲器、分配譯碼邏輯、運算部件及直接內(nèi)存存取控制器;
[0011]運算部件由一個128*32bit字的本地通用寄存器組、8個算數(shù)邏輯單元、8個乘法器、4個移位器和I個超算器構(gòu)成,支持16bit、32bit、單精度和雙精度浮點格式數(shù)據(jù)計算,通用寄存器作為數(shù)據(jù)暫存設(shè)備負(fù)責(zé)運算部件與宏內(nèi)私有數(shù)據(jù)存儲器之間的數(shù)據(jù)交互,運算宏內(nèi)部包含3條獨立的64bit數(shù)據(jù)總線。
[0012]作為進一步具體的技術(shù)方案,所述可重構(gòu)的處理器架構(gòu)的指令總線采用流水方式,共15級,劃分為前段和后段兩個部分,前段7級流水,后段8級,其中,指令總線前段為邏輯核的公共部分,每個邏輯核I條共4條;指令總線后段處于每個運算宏的內(nèi)部,為每個運算宏私有,共16條。
[0013]作為進一步具體的技術(shù)方案,數(shù)據(jù)及程序均按照32bit的位寬進行存儲,采用字節(jié)編址,處理器采用48bit指令集,機器碼位寬均為48bit,邏輯核每個時鐘周期最多接收8條48bit單字指令,所有子程序及中斷服務(wù)程序的入口地址均為16個32bit字對齊。
[0014]作為進一步具體的技術(shù)方案,該可重構(gòu)的處理器架構(gòu)包括運算宏私有、公有及流水線同步控制三類程序控制寄存器,運算宏內(nèi)的私有程序控制寄存器根據(jù)本運算宏的信息進行設(shè)置,運算宏內(nèi)的公用程序控制寄存器及4條流水線的同步控制器根據(jù)所有運算宏的私有寄存器進行更新,運算宏及流水線前段的同步操作分別受控于宏內(nèi)公有及流水線同步控制寄存器。
[0015]作為進一步具體的技術(shù)方案,運算宏內(nèi)部私有的數(shù)據(jù)存儲器與宏內(nèi)用于數(shù)據(jù)交換的寄存器堆之間通過3條數(shù)據(jù)總線相連,每條總線的數(shù)據(jù)位寬位64bit,宏內(nèi)私有數(shù)據(jù)存儲器劃分成6個數(shù)據(jù)block,每個block含2個數(shù)據(jù)bank,每個bank數(shù)據(jù)位寬32bit,數(shù)據(jù)bank由雙口 SRAM構(gòu)建。
[0016]作為進一步具體的技術(shù)方案,所述共享數(shù)據(jù)存儲器分為4個存儲block,每個數(shù)據(jù)block劃分為32個存儲bank,運算通過共享數(shù)據(jù)存儲器接口連接到共享數(shù)據(jù)存儲器。
[0017]本發(fā)明還公開了上述任一項方案所述的可重構(gòu)的處理器架構(gòu)的重構(gòu)方法,包括下述步驟:
[0018]步驟1:增設(shè)一重構(gòu)配置模塊,將其作為共享外設(shè)掛接在交叉開關(guān)上,該重構(gòu)配置模塊包含一組用于設(shè)置重構(gòu)信息的配置寄存器;
[0019]步驟2:上電復(fù)位后,處理器進入用戶代碼的加載過程,此時處理器處于離散工作模式,等同一個4核同構(gòu)處理器加載過程;
[0020]步驟3:訪存指令設(shè)置重構(gòu)配置模塊,待所有配置寄存器設(shè)置完成后,且加載程序結(jié)束后通過重構(gòu)指令完成結(jié)構(gòu)重組,在完成重構(gòu)指令后才開始用戶代碼的執(zhí)行。
[0021]作為進一步具體的技術(shù)方案,所述可重構(gòu)的處理器架構(gòu)的指令總線采用流水方式,共15級,劃分為前段和后段兩個部分,前段7級流水,后段8級,其中,指令總線前段為邏輯核的公共部分,每個邏輯核I條共4條;指令總線后段處于每個運算宏的內(nèi)部,為每個運算宏私有,共16條,指令總線的前段負(fù)責(zé)從指令緩存中獲取指令包,并從指令包中提取可同時執(zhí)行的指令執(zhí)行行,發(fā)射給指令總線后段處理,同時根據(jù)指令總線后段反饋的同步控制信息,控制指令總線前段的執(zhí)行,指令總線后段根據(jù)重構(gòu)配置信息,判斷本運算宏歸屬于哪個邏輯核,并選取對應(yīng)的指令總線前段執(zhí)行用戶程序。
[0022]本發(fā)明的優(yōu)點在于:本發(fā)明可重構(gòu)的處理器架構(gòu)可針對不同應(yīng)用需求,進行處理器結(jié)構(gòu)重組,實現(xiàn)不同應(yīng)用特征下的計算平臺通用化,統(tǒng)一處理器架構(gòu),方便用戶學(xué)習(xí)。
【附圖說明】
[0023]圖1為本發(fā)明可重構(gòu)的處理器架構(gòu)的可重構(gòu)方式示意圖;
[0024]圖2為本發(fā)明可重構(gòu)的處理器架構(gòu)圖;
[0025]圖3為本發(fā)明可重構(gòu)的處理器架構(gòu)中的運算宏的微架構(gòu)圖;
[0026]圖4為私有、公有及流水線同步控制寄存器的設(shè)置關(guān)系圖;
[0027]圖5為48bit機器指令形式;
[0028]圖6為匯編指令形式。
【具體實施方式】
[0029]以下結(jié)合附圖對本發(fā)明進行詳細(xì)的描述。
[0030]一種可重構(gòu)的處理器架構(gòu),以一組運算及存儲部件構(gòu)建的運算宏為最小重構(gòu)顆粒,采用靜態(tài)重構(gòu)方式,完成處理器內(nèi)部架構(gòu)重組,適用不用應(yīng)用場景需求。
[0031 ]該可重構(gòu)的處理器架構(gòu)內(nèi)部包含4個指令緩存(指令Cache)、16個運算宏、共享數(shù)據(jù)存儲器、共享程序存儲器,及外設(shè)。所述16個運算宏通過指令總線連接到指令緩存,指令緩存連接到交叉開關(guān),各外設(shè)也與交叉開關(guān)連接,運算宏、交叉開關(guān)連接到共享數(shù)據(jù)存儲器,指令緩存連接到共享程序存儲器。指令總線采用流水的方式。
[0032]本實施例中的外設(shè)包括擴展存儲器、中斷控制器、串行器/解碼器、定時器、通用輸入/輸出口、異步收發(fā)傳輸器。
[0033]請參閱圖1所示,該可重構(gòu)的處理器主要包含兩種工作模式:離散和重組模式。
[0034]離散模式:該模式下的處理器形成一個4核同構(gòu)處理器,每核均包含4個運算宏,I個指令緩存及I條指令總線,4個運算宏為:宏O?宏3為邏輯核O;宏4?宏7為邏輯核I;宏8?宏11為邏輯核2;宏12?宏15為邏輯核3。
[0035]重組模式:該模式可將運算宏及指令流水進行重組,構(gòu)建不同規(guī)模的邏輯核。在此條件下,處理器內(nèi)部根據(jù)需要可以是I個核,也可以是2個核、3個核或者4個核,每一個核內(nèi)部的運算宏的個數(shù)可以不一樣,每個處理器邏輯核包含1-16個運算宏,每條指令總線一次可發(fā)射8條48bit指令字,單指令最多可驅(qū)動16運算宏參與計算,內(nèi)部不使用的指令流水和運算宏均可設(shè)置成低功耗模式。
[0036]如圖1右側(cè)所示的重組結(jié)構(gòu)為一個包括16個運算宏的核,只使用一條指令流水。
[0037]該可重構(gòu)的處理器架構(gòu)的重構(gòu)方法包括下述步驟:
[0038]步驟1:增設(shè)一重構(gòu)配置模塊(core_fus1n_config),將其作為共享外設(shè)掛接在交叉開關(guān)上,該重構(gòu)配置模塊包含一組配置寄存器,用于設(shè)置重構(gòu)信息,如指令流水的選擇寄存器;
[0039]步驟2:上電復(fù)位后,處理器進入用戶代碼的加載過程,此時處理器處于離散工作模式,等同一個4核同構(gòu)處理器加載過程;
[0040]步驟3:訪存指令設(shè)置重構(gòu)配置模塊,待所有配置寄存器設(shè)置完成后,且加載程序結(jié)束后通過重構(gòu)指令(COre_fUSi0n)完成結(jié)構(gòu)重組,在完成重構(gòu)指令后才開始用戶代碼的執(zhí)行。
[0041]上述運算宏是最小的重構(gòu)顆粒,如圖3所示,每個運算宏包含私有的數(shù)據(jù)存儲器、分配譯碼邏輯、運算部件及DMA(Direct Memory Access,直接內(nèi)存存取)控制器。運算部件由一個128*32bit字的本地通用寄存器組、8個算數(shù)邏輯單元(ALU)、8個乘法器、4個移位器和I個超算器(SPU)構(gòu)成,支持16bit、32bit、單精度和雙精度浮點格式數(shù)據(jù)計算。通用寄存器作為數(shù)據(jù)暫存設(shè)備負(fù)責(zé)運算部件與宏內(nèi)私有數(shù)據(jù)存儲器之間的數(shù)據(jù)交互。運算宏內(nèi)部包含3條獨立的64bit數(shù)據(jù)總線,最多可同時實現(xiàn)2寫I讀或2讀I寫操作。宏內(nèi)數(shù)據(jù)存儲空間劃分為6個block,每個block大小為64KB。
[0042]所述可重構(gòu)的處理器架構(gòu)的指令總線采用流水方式,共15級,劃分為前段和后段兩個部分,前段7級流水,后段8級。其中,指令總線前段為邏輯核的公共部分,每個邏輯核I條共4條;指令總線后段處于每個運算宏的內(nèi)部,為每個運算宏私有,共16條。指令總線的前段負(fù)責(zé)從指令cache中獲取指令包,并從指令包中提取可同時執(zhí)行的指令執(zhí)行行,發(fā)射給指令總線后段處理,同時根據(jù)指令總線后段反饋的同步控制信息,控制指令總線前段的執(zhí)行。指令總線后段根據(jù)重構(gòu)配置信息,判斷本運算宏歸屬于哪個邏輯核,并選取對應(yīng)的指令總線前段執(zhí)行用戶程序。
[0043]處理器的數(shù)據(jù)及程序采用統(tǒng)一共享的存儲空間,且數(shù)據(jù)及程序均按照32bit的位寬進行存儲,采用字節(jié)編址。處理器采用48bit指令集,機器碼位寬均為48bit,邏輯核每個時鐘周期最多可接收8條48bit單字指令。由于48非2n,為保證一次取指長度不低于8*48bit(SPl2*32bit)且保證指令緩存設(shè)計簡單(如果一次取指12*32bit,因12非2n,所以指令緩存的缺失判斷邏輯將非常復(fù)雜,且指令PC的生產(chǎn)器,需要引入加12操作),實際取指過程中,控制邏輯從私