專利名稱:一種流處理器中多核擴(kuò)展的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及面向密集計(jì)算應(yīng)用領(lǐng)域的流處理器內(nèi)部擴(kuò)展方法,尤其是將流處理器中的流處理核進(jìn)行擴(kuò)展以達(dá)到加速流應(yīng)用執(zhí)行速度的方法。
背景技術(shù):
流處理器是新一代面向密集計(jì)算的高性能微處理器的典型代表,專門面向流應(yīng)用。流應(yīng)用主要分為兩類一類是媒體應(yīng)用;另一類是科學(xué)計(jì)算。流應(yīng)用具有以下幾個(gè)主要特征計(jì)算密集性,與傳統(tǒng)的桌面應(yīng)用相比,流式應(yīng)用對(duì)每次從內(nèi)存取出的數(shù)據(jù)都要進(jìn)行大量的算術(shù)運(yùn)算;并行性,以數(shù)據(jù)級(jí)并行為主,同時(shí)存在指令級(jí)和任務(wù)級(jí)并行;局域性,是指應(yīng)用中的數(shù)據(jù)重用局域性。
流處理器的原型結(jié)構(gòu)由標(biāo)量核、DRAM控制器、存儲(chǔ)控制器、流控制器、微控制器、流寄存器文件(SRF)、多個(gè)運(yùn)算簇和多個(gè)流緩沖組成,各部件之間通過片上通用總線連接。其中微控制器、運(yùn)算簇和對(duì)應(yīng)的流緩沖構(gòu)成核心程序的執(zhí)行部件--流處理核(Core)。流處理器中所有的計(jì)算指令由運(yùn)算簇完成,每個(gè)運(yùn)算簇內(nèi)包含多個(gè)ALU及ALU間的簇內(nèi)互聯(lián)開關(guān),運(yùn)算簇之間通過通訊單元保證不同運(yùn)算簇間的通訊。同計(jì)算相關(guān)的輸入數(shù)據(jù)流、輸出數(shù)據(jù)流以及中間數(shù)據(jù)都被存放在流寄存器文件SRF中,保證數(shù)據(jù)能夠在處理器內(nèi)部循環(huán)利用而不產(chǎn)生對(duì)外部存儲(chǔ)器DRAM的訪問。運(yùn)算簇和流寄存器文件通過雙向的流緩沖連接,所有對(duì)流寄存器文件的訪問都通過流緩沖完成。
目前的流應(yīng)用需要很高的計(jì)算速度,而且流應(yīng)用采用的算法以及流應(yīng)用本身變得越來越復(fù)雜,這個(gè)需求還將繼續(xù)提高。例如天基雷達(dá)(SBR)應(yīng)用的性能需求在2004年左右就達(dá)到1TFLOPS,無人機(jī)(UAV)應(yīng)用的性能需求增長(zhǎng)非常明顯,在2005年達(dá)到1TFLOPS。在1GHz的頻率下要達(dá)到該峰值性能,需要在芯片上集成1000個(gè)ALU。這些新的發(fā)展變化要求流體系結(jié)構(gòu)具有良好的可擴(kuò)展性,以滿足更高的性能需求。
目前對(duì)流處理器進(jìn)行擴(kuò)展的方法有兩種簇內(nèi)擴(kuò)展法和簇間擴(kuò)展法。對(duì)流處理器運(yùn)算簇內(nèi)部的功能單元進(jìn)行擴(kuò)展即增加功能單元ALU的方法稱為簇內(nèi)擴(kuò)展法。這種擴(kuò)展法會(huì)對(duì)整個(gè)運(yùn)算簇造成影響,每增加一個(gè)功能單元,都需要在超長(zhǎng)指令字中添加一個(gè)子域,且對(duì)應(yīng)該功能單元的每個(gè)輸入輸出端口都要添加一個(gè)本地寄存器文件,當(dāng)運(yùn)算簇內(nèi)部的ALU數(shù)量增長(zhǎng)時(shí),將直接造成運(yùn)算簇、微控制器、本地寄存器文件的開銷相應(yīng)增長(zhǎng),且功耗、延遲也相應(yīng)增加。采用簇內(nèi)擴(kuò)展法時(shí),硬件資源與ALU數(shù)量的比值基本成線性增長(zhǎng)趨勢(shì),實(shí)驗(yàn)表明當(dāng)ALU數(shù)目為4至8時(shí)效率最高,繼續(xù)增長(zhǎng)ALU數(shù)目效率將降低,這是由于簇內(nèi)互聯(lián)開關(guān)的影響增加造成的。
簇間擴(kuò)展法是指對(duì)運(yùn)算簇的數(shù)目進(jìn)行擴(kuò)展。采用簇間擴(kuò)展法時(shí),簇內(nèi)互聯(lián)開關(guān)不發(fā)生變化,硬件資源與ALU數(shù)量的比值基本保持不變,擴(kuò)展開銷小于簇內(nèi)擴(kuò)展法。但是運(yùn)算簇的數(shù)量增加,會(huì)使得離微控制器較遠(yuǎn)的運(yùn)算簇和離微控制器較近運(yùn)算簇的延時(shí)不同,必須通過在較近的運(yùn)算簇中設(shè)置指令緩沖來解決該問題,這會(huì)增加VLIW編譯器調(diào)度的難度,微控制器與流控制器的通訊和同步變得困難。
這兩種擴(kuò)展法都有缺陷,不能滿足密集計(jì)算型流應(yīng)用的加速執(zhí)行的需要。因此技術(shù)人員開始考慮對(duì)處理核的數(shù)目進(jìn)行擴(kuò)展,這種方法是目前在通用處理器中解決大規(guī)模并行計(jì)算加速問題的一種重要方法。這種多核擴(kuò)展方法在處理器中采用多個(gè)處理核,核的結(jié)構(gòu)一般相同。多個(gè)處理核并行執(zhí)行程序,可以有效加速大規(guī)模并行程序的執(zhí)行速度。但是,這種多核擴(kuò)展方法無法直接應(yīng)用于流處理器中,因?yàn)榱魈幚砥鞯南到y(tǒng)結(jié)構(gòu)與通用處理器不同,其關(guān)鍵部件流寄存器文件SRF是流處理器獨(dú)有的,與計(jì)算相關(guān)的數(shù)據(jù)在SRF中存儲(chǔ),多個(gè)核之間如果進(jìn)行數(shù)據(jù)通信,就必須考慮如何設(shè)計(jì)SRF及用于通信的數(shù)據(jù)通道。對(duì)于通信的數(shù)據(jù)通道而言,目前常見的交叉開關(guān)結(jié)構(gòu)和總線結(jié)構(gòu),均不能直接用在流處理器中。
交叉開關(guān)結(jié)構(gòu)是指使用交叉開關(guān)網(wǎng)絡(luò)作為核間傳輸通道,若用在流處理器中,則每個(gè)流寄存器文件對(duì)應(yīng)的流緩沖都通過交叉開關(guān)網(wǎng)絡(luò)互聯(lián)。數(shù)據(jù)可以通過這個(gè)網(wǎng)絡(luò)在任意兩個(gè)流寄存器文件之間進(jìn)行傳輸。這種結(jié)構(gòu)下,當(dāng)核的數(shù)目較多時(shí),硬件代價(jià)和延遲代價(jià)太高,一個(gè)擁有N個(gè)核的流處理器,若每個(gè)核的流寄存器文件有a個(gè)專屬的流緩沖,則交叉開關(guān)硬件代價(jià)高達(dá)O(aN2)。流寄存器文件的最大延遲為6.5納秒左右,核間流傳輸通道與流緩沖傳輸數(shù)據(jù)的延遲要與流寄存器文件的最大延遲相近才能滿足需要,而采用交叉開關(guān)結(jié)構(gòu),當(dāng)核的數(shù)目為8時(shí)就達(dá)到了8.5納秒的延遲;當(dāng)核的數(shù)目為16時(shí),延遲超過了11納秒,差不多是流寄存器文件延遲的2倍,嚴(yán)重影響了流數(shù)據(jù)的傳輸速度。
總線結(jié)構(gòu)用在流處理器中時(shí)是指在流處理器中設(shè)置一條總線用于完成不同流處理核中的流寄存器文件間的數(shù)據(jù)通信。為每個(gè)流寄存器文件增加一個(gè)專門用于總線訪問的端口,當(dāng)存在流傳輸需求時(shí)流寄存器文件通過該端口占用總線進(jìn)行流傳輸。在核間傳輸通道中設(shè)置一個(gè)仲裁器,如果存在多路流傳輸需要使用總線,則通過仲裁器競(jìng)爭(zhēng)總線的使用權(quán)。而增加流寄存器文件端口的代價(jià)是非常昂貴的;而且這種由于總線的固有瓶頸,只能通過仲裁機(jī)制分時(shí)共享數(shù)據(jù)通路,因此每次只能傳輸一組流數(shù)據(jù),因此一個(gè)N核系統(tǒng)的核間和核內(nèi)的帶寬比僅為1∶N,核間帶寬明顯不能滿足流數(shù)據(jù)高速傳輸?shù)男枨蟆?br>
因此研究一種適用于流處理器的多核擴(kuò)展方法成為本領(lǐng)域技術(shù)人員極為關(guān)心的問題。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種新的適用于流處理器的多核擴(kuò)展方法,克服簇內(nèi)擴(kuò)展法和簇間擴(kuò)展法的不足,既減小擴(kuò)展開銷,又不增加VLIW編譯器調(diào)度的難度,提高執(zhí)行效率,使擴(kuò)展后的新型流體系結(jié)構(gòu)可以支持不同并行需求的流應(yīng)用。
本發(fā)明的技術(shù)方案是對(duì)流處理核的邏輯結(jié)構(gòu)進(jìn)行改進(jìn),在流處理器內(nèi)部設(shè)置多個(gè)完全同構(gòu)的流處理核并設(shè)計(jì)多核間的數(shù)據(jù)通信通道,形成新型的流體系結(jié)構(gòu)。
本發(fā)明對(duì)流處理器進(jìn)行多核擴(kuò)展方法的具體步驟如下第一步,改進(jìn)流處理核的邏輯結(jié)構(gòu)原有流處理器中的流處理核Core通過內(nèi)部的流緩沖與流寄存器文件SRF進(jìn)行數(shù)據(jù)通信。在不改變流處理核邏輯結(jié)構(gòu)的情況下,設(shè)置多個(gè)流處理核,共同訪問集中式的流寄存器文件。這種結(jié)構(gòu)下流緩沖數(shù)目也成線性增長(zhǎng),訪問帶寬如果不變,將與計(jì)算能力失衡。因此流寄存器文件的端口訪問帶寬必須隨著Core的數(shù)量增長(zhǎng),原有集中式單端口流寄存器文件顯然不能滿足帶寬要求。因此需要在流處理器中采用有多路選擇器的多端口流寄存器文件,其資源A多路選擇器_集中式的計(jì)算公式如下,A多路選擇器_集中式=NSBNport2bw+c,其中NSB=I0+NCOREICLSB。其中,NSB是流處理器中總的流緩沖數(shù)目,Nport是SRF的端口數(shù)目,b是流處理器的數(shù)據(jù)字長(zhǎng),w是選擇開關(guān)資源常數(shù),c是每個(gè)流處理核內(nèi)運(yùn)算簇的數(shù)量,I0是除面向流處理核之外的流緩沖數(shù)目,NCORE是流處理核的數(shù)量,ICLSB是每個(gè)流處理核所需的流緩沖數(shù)目,其值為8。為保證帶寬等比增長(zhǎng),Nport必須等于NCORE,因此A多路選擇器_集中式將以O(shè)(8NCORE3)增長(zhǎng),即硬件開銷隨端口數(shù)數(shù)量的增加成3次方增長(zhǎng),性能開銷比過低。另一方面,由于集中式流寄存器文件必須采用集中式仲裁,當(dāng)流緩沖數(shù)目大幅增加時(shí),仲裁電路的延遲也大幅增加,流寄存器文件將成為制約運(yùn)算速度的關(guān)鍵路徑。
因此,必須對(duì)流處理核的邏輯結(jié)構(gòu)進(jìn)行改進(jìn)每個(gè)流處理核內(nèi)部設(shè)置一個(gè)微控制器、M個(gè)運(yùn)算簇(各個(gè)運(yùn)算簇的內(nèi)部結(jié)構(gòu)相同)及M個(gè)流緩沖,一個(gè)本地流寄存器文件。流緩沖與運(yùn)算簇一一對(duì)應(yīng),稱為專有的運(yùn)算簇流緩沖。M的數(shù)目由硬件資源的大小來決定,當(dāng)M為8以下,運(yùn)算簇間互聯(lián)開關(guān)所占資源小于流寄存器文件,但以O(shè)(M2)增長(zhǎng),因此很快超過流寄存器文件和流緩沖,當(dāng)M≥32時(shí),互聯(lián)開關(guān)成為第二大模塊,硬件資源開銷顯著增加。由于硬件資源的限制,M的取值范圍應(yīng)在4至8之間。本地流寄存器文件的大小隨M的變化而增加,在一般的媒體應(yīng)用及科學(xué)計(jì)算中,當(dāng)M取4的時(shí)候,本地流寄存器文件大小取128K比較合適;當(dāng)M取8時(shí),本地流寄存器文件大小取256K比較合適。
流處理核內(nèi)各部件的連接方式為每個(gè)流緩沖分別與一個(gè)運(yùn)算簇連接,這些流緩沖都與本地流寄存器文件連接。在這種連接方式下,流處理核內(nèi)的運(yùn)算簇只能從本地流寄存器文件中讀寫流數(shù)據(jù)。由于每個(gè)流處理核中都有一個(gè)本地流寄存器文件,在流處理器中就不再設(shè)置集中式流寄存器文件,這種結(jié)構(gòu)稱為分布式流寄存器文件的多核流體系結(jié)構(gòu)。在這種結(jié)構(gòu)下所有流寄存器文件資源以單個(gè)流處理核的本地流寄存器文件為基礎(chǔ),隨流處理核的數(shù)目NCORE線性增長(zhǎng),相比集中式流寄存器文件的開銷大幅降低,帶寬也可等比增長(zhǎng)。在分布式流寄存器文件的結(jié)構(gòu)中,流處理核的數(shù)目NCORE可以根據(jù)流應(yīng)用的需求靈活地增加或減少。
第二步在分布式流寄存器文件的多核流處理器中設(shè)置一個(gè)可編程專用數(shù)據(jù)通道作為核間的流數(shù)據(jù)傳輸通道。
在具有N個(gè)流處理核的流處理器中,專用數(shù)據(jù)通道中包含N個(gè)獨(dú)立的雙向數(shù)據(jù)通道,每個(gè)雙向數(shù)據(jù)通道包含一個(gè)N路選擇器,一個(gè)控制寄存器,N個(gè)流緩沖。每個(gè)流緩沖的輸出接口都與N路選擇器的一個(gè)輸入接口連接,N路選擇器的輸出接口與每個(gè)流緩沖的輸入接口連接,控制寄存器控制數(shù)據(jù)的傳輸方向。雙向通道中的一個(gè)流緩沖與每個(gè)核中的流寄存器文件相連。這樣形成了N組獨(dú)立的雙向數(shù)據(jù)通道,每個(gè)本地流寄存器文件通過流緩沖與這N個(gè)通道分別相連,形成最大結(jié)點(diǎn)度為N的拓?fù)浣Y(jié)構(gòu),能夠最多同時(shí)配置傳輸N組流。
第三步,在流控制器中增加一個(gè)通道信息寄存器文件PIRF(Pipe Information RegisterFile),用來保存源節(jié)點(diǎn)、目的節(jié)點(diǎn)等路由信息。PIRF由多個(gè)寄存器組成,每個(gè)寄存器緩存一路流傳輸?shù)男畔?,包含源流寄存器文件編碼和目的流寄存器文件編碼,源流寄存器文件編碼和目的流寄存器文件編碼是根據(jù)本地流寄存器文件的數(shù)目生成的二進(jìn)制編碼。當(dāng)流數(shù)據(jù)從流處理核A向流處理核B傳輸時(shí),核A的本地流寄存器文件是源流寄存器文件,核B的本地流寄存器文件是目的流寄存器文件。
PIRF與流控制器中的指令發(fā)射單元的輸出端口通過控制信號(hào)線連接,PIRF的輸出端口與可編程專用數(shù)據(jù)通道的控制寄存器連接。流控制器中具有記分牌指令隊(duì)列和指令發(fā)射單元,記分牌指令隊(duì)列將流傳輸指令送入指令發(fā)射單元,指令發(fā)射單元向PIRF發(fā)控制信號(hào),PIRF接到控制信號(hào)后向控制寄存器傳輸路由信息。
采用可編程專用數(shù)據(jù)通道進(jìn)行流數(shù)據(jù)傳輸時(shí),流編譯器根據(jù)流級(jí)程序靜態(tài)生成路由信息。根據(jù)路由信息,被傳輸?shù)牧髡加脧脑戳骷拇嫫鞯侥康牧骷拇嫫鞯臄?shù)據(jù)通道。在傳輸過程中被傳輸?shù)牧鳘?dú)占該通道,傳輸結(jié)束后釋放該通道給其它流。在這種傳輸模式下,每次流數(shù)據(jù)傳輸,不同的源和目的流寄存器文件形成了不同的路由信息,根據(jù)路由信息傳輸占用不同的通道,因此具有了通道的可編程特征。流數(shù)據(jù)傳輸?shù)木唧w步驟如下1流編譯器對(duì)流級(jí)程序編譯,靜態(tài)生成路由信息和流傳輸指令。
2路由信息緩存在PIRF中的一個(gè)C位寄存器中,流傳輸指令存入流控制器中的記分牌指令隊(duì)列。
3流控制器中的記分牌指令隊(duì)列將流傳輸指令送入指令發(fā)射單元,指令發(fā)射單元根據(jù)流傳輸指令生成對(duì)PIRF的控制信號(hào)。
4控制信號(hào)控制PIRF,將C位寄存器中的源SRF和目的SRF編碼送入數(shù)據(jù)通道的控制寄存器中。
5控制寄存器根據(jù)從PIRF獲得的路由信息選擇源SRF,流數(shù)據(jù)通過源SRF對(duì)應(yīng)的流緩沖流入流數(shù)據(jù)通道。
6多路選擇器選擇目的SRF所對(duì)應(yīng)的流緩沖,流數(shù)據(jù)流出,完成流數(shù)據(jù)的傳輸。
當(dāng)需要由一個(gè)流寄存器文件發(fā)送數(shù)據(jù),其它流寄存器文件接收數(shù)據(jù)的時(shí)候,采用廣播模式,這種情況只占用一條數(shù)據(jù)傳輸通道。具體步驟與上面數(shù)據(jù)傳輸步驟相似,只有第6步中,目的SRF對(duì)應(yīng)的流緩沖變成除了源流緩沖外的其他全部流緩沖。
采用本發(fā)明可以達(dá)到以下技術(shù)效果1、本發(fā)明提供了一種多核擴(kuò)展方法來對(duì)流處理器進(jìn)行擴(kuò)展。這種擴(kuò)展方法的功耗資源僅隨核的數(shù)量呈線性增長(zhǎng),由于采用可編程專用數(shù)據(jù)通道,不會(huì)增加對(duì)應(yīng)用數(shù)據(jù)并行性的要求,這種方法與簇間擴(kuò)展法和簇內(nèi)擴(kuò)展法形成有利互補(bǔ),增加可擴(kuò)展性。
2、本發(fā)明通過改進(jìn)流處理核的邏輯結(jié)構(gòu),使在單片流處理器中能夠設(shè)置多個(gè)流處理核。這多個(gè)流處理核一方面除可支持指令級(jí)、數(shù)據(jù)級(jí)并行模式外,還支持任務(wù)并行模式,即可以向多個(gè)處理核分配不同的任務(wù)以達(dá)到任務(wù)并行的目的。一方面緩解了對(duì)應(yīng)用計(jì)算密集的閾值要求,因?yàn)槊總€(gè)流處理核可以執(zhí)行不同的核心程序,原來需要一個(gè)核心程序承擔(dān)的計(jì)算量由多個(gè)核心程序分享,這樣可以緩解SIMD(單指令多數(shù)據(jù)流)執(zhí)行模式下對(duì)一個(gè)核心程序的計(jì)算密集要求,降低對(duì)應(yīng)用需求的門檻。
4、本發(fā)明通過改進(jìn)流處理核的邏輯結(jié)構(gòu),使在單片流處理器中能夠設(shè)置多個(gè)流處理核。因?yàn)槟軌驅(qū)⑼粋€(gè)任務(wù)分配在兩個(gè)或兩個(gè)以上的流處理核上執(zhí)行,可以達(dá)到多核容錯(cuò)的效果。
5、本發(fā)明通過設(shè)計(jì)多核間的可編程專用數(shù)據(jù)通道,使得多個(gè)核之間的流寄存器文件之間能方便地進(jìn)行數(shù)據(jù)傳輸,硬件開銷小于交叉開關(guān)結(jié)構(gòu),傳輸效率高于總線結(jié)構(gòu)。
圖1是目前通用的一種流處理器的邏輯結(jié)構(gòu)圖。
圖2是多核共享集中式流寄存器文件的流體系結(jié)構(gòu)圖。
圖3是采用本發(fā)明設(shè)計(jì)的分布式流寄存器文件多核流體系結(jié)構(gòu)框圖。
圖4是采用本發(fā)明設(shè)計(jì)的基于可編程專用數(shù)據(jù)通道互連的流體系結(jié)構(gòu)圖。
圖5是采用本發(fā)明設(shè)計(jì)的帶有PIRF的流控制器和可編程專用數(shù)據(jù)通道的結(jié)構(gòu)圖。
具體實(shí)施例方式
圖1是目前通用的一種流處理器的邏輯結(jié)構(gòu)圖。流處理器是新一代面向密集計(jì)算的高性能微處理器的典型代表,專門面向流應(yīng)用。流處理器的原型結(jié)構(gòu)由標(biāo)量核、DRAM控制器、存儲(chǔ)控制器、流控制器、微控制器、流寄存器文件(SRF)、多個(gè)運(yùn)算簇和多個(gè)流緩沖組成,各部件之間通過片上通用總線連接。其中微控制器、運(yùn)算簇和對(duì)應(yīng)的流緩沖構(gòu)成核心程序的執(zhí)行部件--流處理核(Core)。流處理器中所有的計(jì)算指令由運(yùn)算簇完成,每個(gè)運(yùn)算簇內(nèi)包含多個(gè)ALU及ALU間的簇內(nèi)互聯(lián)開關(guān)。同計(jì)算相關(guān)的輸入數(shù)據(jù)流、輸出數(shù)據(jù)流以及中間數(shù)據(jù)都被存放在流寄存器文件SRF中,保證數(shù)據(jù)能夠在處理器內(nèi)部循環(huán)利用而不產(chǎn)生對(duì)外部存儲(chǔ)器DRAM的訪問。運(yùn)算簇和流寄存器文件通過雙向的流緩沖連接,所有對(duì)流寄存器文件的訪問都通過流緩沖完成。
圖2是多核共享集中式流寄存器文件的流體系結(jié)構(gòu)圖。流處理器中的流處理核通過內(nèi)部的流緩沖與流寄存器文件SRF進(jìn)行數(shù)據(jù)通信。多個(gè)流處理核共同訪問集中式的流寄存器文件。
圖3是采用本發(fā)明設(shè)計(jì)的分布式流寄存器文件多核流體系結(jié)構(gòu)框圖。每個(gè)流處理核內(nèi)部設(shè)置一個(gè)微控制器、M個(gè)運(yùn)算簇(各個(gè)運(yùn)算簇的內(nèi)部結(jié)構(gòu)相同)及M個(gè)流緩沖,一個(gè)本地流寄存器文件。流緩沖與運(yùn)算簇一一對(duì)應(yīng),稱為專有的運(yùn)算簇流緩沖。每個(gè)流緩沖分別與一個(gè)運(yùn)算簇連接,這些流緩沖都與本地流寄存器文件連接。在這種連接方式下,流處理核內(nèi)的運(yùn)算簇只能從本地流寄存器文件中讀寫流數(shù)據(jù)。由于每個(gè)流處理核中都有一個(gè)本地流寄存器文件,在流處理器中就不再設(shè)置集中式流寄存器文件,這種結(jié)構(gòu)稱為分布式流寄存器文件的多核流體系結(jié)構(gòu)。
圖4是采用本發(fā)明設(shè)計(jì)的基于可編程專用數(shù)據(jù)通道互連的流體系結(jié)構(gòu)圖。在具有N個(gè)流處理核的流處理器中,專用數(shù)據(jù)通道中包含N個(gè)獨(dú)立的雙向數(shù)據(jù)通道,每個(gè)雙向數(shù)據(jù)通道包含一個(gè)N路選擇器,一個(gè)控制寄存器,N個(gè)流緩沖。每個(gè)流緩沖的輸出接口都與N路選擇器的一個(gè)輸入接口連接,N路選擇器的輸出接口與每個(gè)流緩沖的輸入接口連接,控制寄存器控制數(shù)據(jù)的傳輸方向。雙向通道中的一個(gè)流緩沖與每個(gè)核中的流寄存器文件相連。這樣形成了N組獨(dú)立的雙向數(shù)據(jù)通道,每個(gè)本地流寄存器文件通過流緩沖與這N個(gè)通道分別相連,形成最大結(jié)點(diǎn)度為N的拓?fù)浣Y(jié)構(gòu),能夠最多同時(shí)配置傳輸N組流。
圖5是采用本發(fā)明設(shè)計(jì)的帶有PIRF的流控制器和可編程專用數(shù)據(jù)通道的結(jié)構(gòu)圖。在流控制器中增加一個(gè)通道信息寄存器文件PIRF(Pipe Information Register File),用來存源節(jié)點(diǎn)、目的節(jié)點(diǎn)等路由信息。PIRF與流控制器中的指令發(fā)射單元的輸出端口通過控制信號(hào)線連接,PIRF的輸出端口與可編程專用數(shù)據(jù)通道的控制寄存器連接。流控制器中具有記分牌指令隊(duì)列和指令發(fā)射單元,記分牌指令隊(duì)列將流傳輸指令送入指令發(fā)射單元,指令發(fā)射單元向PIRF發(fā)控制信號(hào),PIRF接到控制信號(hào)后向控制寄存器傳輸路由信息。
流數(shù)據(jù)傳輸?shù)木唧w步驟如下1流編譯器對(duì)流級(jí)程序編譯,靜態(tài)生成路由信息和流傳輸指令。
2路由信息緩存在PIRF中的一個(gè)寄存器中,流傳輸指令存入流控制器中的記分牌指令隊(duì)列。
3流控制器中的記分牌指令隊(duì)列將流傳輸指令送入指令發(fā)射單元,指令發(fā)射單元根據(jù)流傳輸指令生成對(duì)PIRF的控制信號(hào)。
4控制信號(hào)控制PIRF,將寄存器中的源SRF和目的SRF編碼送入數(shù)據(jù)通道的控制寄存器中。
5控制寄存器根據(jù)從PIRF獲得的路由信息選擇源SRF,流數(shù)據(jù)通過源SRF對(duì)應(yīng)的流緩沖流入流數(shù)據(jù)通道。
6多路選擇器選擇目的SRF所對(duì)應(yīng)的流緩沖,流數(shù)據(jù)流出,完成流數(shù)據(jù)的傳輸。
權(quán)利要求
1.一種流處理器中多核擴(kuò)展的方法,其特征在于它包括以下步驟第一步,改進(jìn)流處理核的邏輯結(jié)構(gòu)每個(gè)流處理核內(nèi)部設(shè)置一個(gè)微控制器、M個(gè)內(nèi)部結(jié)構(gòu)相同的運(yùn)算簇及M個(gè)流緩沖,一個(gè)本地流寄存器文件;流緩沖與運(yùn)算簇一一對(duì)應(yīng);M的數(shù)目由硬件資源的大小決定,M的取值范圍在4至8之間;本地流寄存器文件的大小隨M的變化而增加;每個(gè)流緩沖分別與一個(gè)運(yùn)算簇連接,這些流緩沖都與本地流寄存器文件連接,流處理核內(nèi)的運(yùn)算簇只從本地流寄存器文件中讀寫流數(shù)據(jù),這種結(jié)構(gòu)稱為分布式流寄存器文件的多核流體系結(jié)構(gòu);第二步,在分布式流寄存器文件的多核流處理器中設(shè)置一個(gè)可編程專用數(shù)據(jù)通道作為核間的流數(shù)據(jù)傳輸通道在具有N個(gè)流處理核的流處理器中,專用數(shù)據(jù)通道中包含N個(gè)獨(dú)立的雙向數(shù)據(jù)通道,每個(gè)雙向數(shù)據(jù)通道包含一個(gè)N路選擇器,一個(gè)控制寄存器,N個(gè)流緩沖;每個(gè)流緩沖的輸出接口都與N路選擇器的一個(gè)輸入接口連接,N路選擇器的輸出接口與每個(gè)流緩沖的輸入接口連接,控制寄存器控制數(shù)據(jù)的傳輸方向;雙向通道中的一個(gè)流緩沖與每個(gè)核中的流寄存器文件相連;這樣形成了N組獨(dú)立的雙向數(shù)據(jù)通道,每個(gè)本地流寄存器文件通過流緩沖與這N個(gè)通道分別相連,形成最大結(jié)點(diǎn)度為N的拓?fù)浣Y(jié)構(gòu),能夠最多同時(shí)配置傳輸N組流;第三步,在流控制器中增加一個(gè)通道信息寄存器文件PIRF,PIRF由多個(gè)寄存器組成,每個(gè)寄存器緩存一路流傳輸?shù)男畔?,包含源流寄存器文件編碼和目的流寄存器文件編碼,源流寄存器文件編碼和目的流寄存器文件編碼是根據(jù)本地流寄存器文件的數(shù)目生成的二進(jìn)制編碼;PIRF與流控制器中的指令發(fā)射單元的輸出端口通過控制信號(hào)線連接,PIRF的輸出端口與可編程專用數(shù)據(jù)通道的控制寄存器連接,指令發(fā)射單元向PIRF發(fā)控制信號(hào),PIRF接到控制信號(hào)后向控制寄存器傳輸路由信息。
2.如權(quán)利要求1所述的一種流處理器中多核擴(kuò)展的方法,其特征在于當(dāng)M取4的時(shí)候,本地流寄存器文件大小取128K;當(dāng)M取8時(shí),本地流寄存器文件大小取256K。
3.如權(quán)利要求1所述的一種流處理器中多核擴(kuò)展的方法,其特征在于采用可編程專用數(shù)據(jù)通道進(jìn)行流數(shù)據(jù)傳輸時(shí),流編譯器根據(jù)流級(jí)程序靜態(tài)生成路由信息,根據(jù)路由信息,被傳輸?shù)牧髡加脧脑戳骷拇嫫鞯侥康牧骷拇嫫鞯臄?shù)據(jù)通道;在傳輸過程中被傳輸?shù)牧鳘?dú)占該通道,傳輸結(jié)束后釋放該通道給其它流;流數(shù)據(jù)傳輸?shù)木唧w步驟如下3.1流編譯器對(duì)流級(jí)程序編譯,靜態(tài)生成路由信息和流傳輸指令;3.2路由信息緩存在PIRF中的一個(gè)C位寄存器中,流傳輸指令存入流控制器中的記分牌指令隊(duì)列;3.3流控制器中的記分牌指令隊(duì)列將流傳輸指令送入指令發(fā)射單元,指令發(fā)射單元根據(jù)流傳輸指令生成對(duì)PIRF的控制信號(hào);3.4控制信號(hào)控制PIRF,將C位寄存器中的源SRF和目的SRF編碼送入數(shù)據(jù)通道的控制寄存器中;3.5控制寄存器根據(jù)從PIRF獲得的路由信息選擇源SRF,流數(shù)據(jù)通過源SRF對(duì)應(yīng)的流緩沖流入流數(shù)據(jù)通道;3.6在多路選擇器中選擇目的SRF對(duì)應(yīng)的流緩沖流出,完成流數(shù)據(jù)的傳輸。
4.如權(quán)利要求1或3所述的一種流處理器中多核擴(kuò)展的方法,其特征在于當(dāng)需要由一個(gè)流寄存器文件發(fā)送數(shù)據(jù),其它流寄存器文件接收數(shù)據(jù)的時(shí)候,采用廣播模式,這種情況只占用一條數(shù)據(jù)傳輸通道,具體步驟同權(quán)利要求3的3.1-3.6相似,只有第3.6步中,目的SRF對(duì)應(yīng)的流緩沖變成除了源流緩沖外的其他全部流緩沖。
全文摘要
本發(fā)明公開了一種流處理器中多核擴(kuò)展的方法,要解決的技術(shù)問題是提供一種適用于流處理器的多核擴(kuò)展方法,既減小擴(kuò)展開銷,又不增加VLIW編譯器調(diào)度的難度,提高執(zhí)行效率。技術(shù)方案是首先改進(jìn)流處理核的邏輯結(jié)構(gòu),然后在多核流處理器中設(shè)置一個(gè)可編程專用數(shù)據(jù)通道作為核間的流數(shù)據(jù)傳輸通道,并在流控制器中增加一個(gè)通道信息寄存器文件緩存流傳輸?shù)男畔?。本發(fā)明通過改進(jìn)流處理核的邏輯結(jié)構(gòu),使在單片流處理器中能夠設(shè)置多個(gè)流處理核,采用本發(fā)明后功耗資源僅隨核的數(shù)量呈線性增長(zhǎng),可編程專用數(shù)據(jù)通道增加了可擴(kuò)展性,且硬件開銷小,傳輸效率高。
文檔編號(hào)G06F15/76GK101021830SQ20071003464
公開日2007年8月22日 申請(qǐng)日期2007年3月29日 優(yōu)先權(quán)日2007年3月29日
發(fā)明者任巨, 文梅, 伍楠, 張春元, 何義, 楊乾明, 荀長(zhǎng)慶, 管茂林 申請(qǐng)人:中國人民解放軍國防科學(xué)技術(shù)大學(xué)