專利名稱:基于NoC架構(gòu)的多核處理器平臺及其設(shè)計方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機領(lǐng)域,具體的說,涉及一種基于NoC架構(gòu)的多核處理器平臺及其設(shè)計方法。
背景技術(shù):
隨著集成電路技術(shù)的發(fā)展,單個芯片上的集成度在逐漸增加,單核處理器的性能得到了很大的提高。但是由于OSI七層協(xié)議中的應(yīng)用層對實時性和運算量的需求繼續(xù)增力口,已經(jīng)很難通過提高單核處理器工作頻率和擴大芯片面積來滿足實時性和運算量的要求,因此多核處理器并行執(zhí)行任務(wù)的解決方式便被提出來。然而在多核處理器的條件下,傳統(tǒng)的總線結(jié)構(gòu)并沒有被改變,現(xiàn)有技術(shù)中DSP是
目前流行的一種處理器平臺,可以將多個64+ 集成在一個芯片上,為密集處理型產(chǎn)品提供高達4. 2GHz的性能,能夠應(yīng)用到通信基礎(chǔ)設(shè)施、高端產(chǎn)業(yè)、任務(wù)關(guān)鍵型應(yīng)用、高端圖像和視頻等領(lǐng)域,通過數(shù)據(jù)總線和配置總線,實現(xiàn)處理器間以及處理器和外圍設(shè)備間的通信。然而DSP采用的是總線架構(gòu),同一時刻只能有一個處理器占用總線,對多核處理器平臺的性能造成一定影響,使其并行算法和并行任務(wù)處理能力低,而且開發(fā)周期長同時運行非常不可靠。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)中采用的處理器平臺并行算法和并行任務(wù)處理能力低且開發(fā)周期長、運行非常不可靠的缺陷,提供一種點對點并行傳輸,可以在多核平臺設(shè)計前期對平臺進行評估,因此提高平臺可靠性的一種基于NoC結(jié)構(gòu)的多核處理器平臺及其設(shè)計方法。本發(fā)明采用的技術(shù)方案如下
基于NoC架構(gòu)的多核處理器平臺,包括通過NoC方式接入的至少兩個處理器,所述NoC采用MXN的MESH拓?fù)浣Y(jié)構(gòu)構(gòu)建而成,其中M和N均為正整數(shù)。為了實現(xiàn)本發(fā)明,所述處理器上創(chuàng)建有實現(xiàn)處理器數(shù)據(jù)輸入和輸出的網(wǎng)絡(luò)接口,其中NoC包括與網(wǎng)絡(luò)接口一一對應(yīng)的路由節(jié)點,且相鄰的路由節(jié)點之間連接有兩條以實現(xiàn)數(shù)據(jù)相反流向的數(shù)據(jù)線。為了更好的存儲、讀寫數(shù)據(jù),所述處理器內(nèi)設(shè)置有用于配合網(wǎng)絡(luò)接口完成數(shù)據(jù)傳輸?shù)腞AM讀緩存區(qū)和RAM寫緩存區(qū)。為了實現(xiàn)功率評估功能,所述NoC上還分別搭載了 0rion2. O和Mcpat工具?;贜oC架構(gòu)的多核處理器平臺,本發(fā)明還提供了其設(shè)計方法
(1)設(shè)置路由節(jié)點的結(jié)構(gòu),使該路由節(jié)點通過XY路由算法尋找目的節(jié)點,采用蟲洞技術(shù)進行數(shù)據(jù)轉(zhuǎn)發(fā),且通過時間片輪算法對輸出競爭進行仲裁;
(2)根據(jù)單個路由節(jié)點的結(jié)構(gòu)配置0rion2.O功率消耗參數(shù);
(3)輸入?yún)?shù)M和N,配置NoC的規(guī)模,將路由節(jié)點進行互聯(lián),即可獲得MXN的MESH拓?fù)浣Y(jié)構(gòu)的NoC ;(4)在處理器上創(chuàng)建網(wǎng)絡(luò)接口,并在處理器中創(chuàng)建RAM讀緩沖區(qū)和RAM寫緩沖區(qū),將網(wǎng)絡(luò)接口與路由節(jié)點一一連接,得到路由節(jié)點排列為MXN的矩陣型結(jié)構(gòu),并且相鄰的路由節(jié)點通過兩條以實現(xiàn)數(shù)據(jù)相反流向的數(shù)據(jù)線連接;
(5)為處理器創(chuàng)建Wrapper程序,并將其和網(wǎng)絡(luò)接口進行連接,使處理器和網(wǎng)絡(luò)接口之間進行通信;
(6)根據(jù)處理器結(jié)構(gòu)配置Mcpat參數(shù)。為了方便擴建網(wǎng)絡(luò),所述步驟(I)中單個路由節(jié)點包括東、西、南、北和本地五個方向,東、西、南、北中的每一個方向均設(shè)置有用于和其他路由接口相連的輸出端口和輸入端口,其中本地方向還設(shè)置有與網(wǎng)絡(luò)接口相連的輸出端口和輸入端口。進一步的,所述步驟(4)中在處理器中創(chuàng)建RAM讀緩沖區(qū)和RAM寫緩沖區(qū)的具體 步驟如下
(4 a )創(chuàng)建RAM讀緩沖區(qū),并把路由節(jié)點本地輸出端輸出的數(shù)據(jù)解包后緩存到網(wǎng)絡(luò)接
Π ;
(4b)當(dāng)處理器讀信號有效時,將數(shù)據(jù)搬移到RAM讀緩沖區(qū)中,再根據(jù)配置創(chuàng)建RAM寫緩沖區(qū),當(dāng)處理器寫信號有效時,將數(shù)據(jù)搬移到RAM寫緩沖區(qū)。再進一步的,所述步驟(6)結(jié)束后,還能夠進行該平臺進行仿真,其中仿真步驟如下
(I)將各個處理器上需要并行處理的任務(wù)和并行算法用C代碼實現(xiàn);
(II)使用OpenRISC工具鏈生成在OpenRISC上執(zhí)行的程序;
(III)運行仿真平臺,并為各個OpenRISC加載需要執(zhí)行的程序。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果
(1)本發(fā)明采用了NoC即片上網(wǎng)絡(luò)進行數(shù)據(jù)傳輸,片上網(wǎng)絡(luò)很好的克服了總線結(jié)構(gòu)的各種局限,實現(xiàn)整個網(wǎng)絡(luò)多條點到點的連接,相互間不會產(chǎn)生干擾,解決了處理器出現(xiàn)通信沖突問題的同時容易實現(xiàn)全局同步;進一步的,整個平臺由于采用的是非總線結(jié)構(gòu),因此即使隨著NoC半徑的增大,也不會有任何延遲的情況產(chǎn)生;
(2)本發(fā)明的多核處理平臺還利用其搭載的0rion2.O和Mcpat工具對各個處理器的功率消耗進行估計,0rion2. O和Mcpat分別根據(jù)路由節(jié)點結(jié)構(gòu)和處理器的結(jié)構(gòu)進行參數(shù)配置,使之與該平臺的架構(gòu)以及處理器和路由節(jié)點內(nèi)部結(jié)構(gòu)更匹配從而提高估計值的精確度;
(3)本發(fā)明的路由節(jié)點在東、西、南、北的任意一個方向均設(shè)置有一個輸出端和一個輸入端,因此在已經(jīng)架構(gòu)好NoC后,依然可以在NoC邊緣處的路由節(jié)點上再繼續(xù)連接路由節(jié)點,即對該平臺擴充,實現(xiàn)對NoC架構(gòu)的彈性需求;
(4)本發(fā)明路由節(jié)點的輸入緩存大小可以根據(jù)需要配置,因此路由節(jié)點可以很好的滿足不同處理器或者平臺適用于不同情況時或者其他任何狀況,同時該路由節(jié)點還采用了 XY路由算法和蟲洞技術(shù)進行數(shù)據(jù)轉(zhuǎn)發(fā),更加有效的提高了平臺的數(shù)據(jù)計算和傳輸速度,節(jié)約了時間;同時該路由節(jié)點還采用時間片輪轉(zhuǎn)算法對輸出競爭進行仲裁,防止了擁堵、死鎖情況的發(fā)生;
(5)整個平臺在設(shè)計完畢后,還可以使用OpenRISC工具鏈編譯并行算法源代碼,生成在OpenRISC上執(zhí)行的程序,便可以實現(xiàn)對該平臺的仿真,在仿真結(jié)束后可以得到并行算法的運算結(jié)果、執(zhí)行時間,還能夠得到NoC和0R1200上消耗的功率,因此可以利用該仿真結(jié)果對并行算法和并行任務(wù)的處理能力和處理精度進行評估,包括并行算法的延時、功耗、處理精度等都能夠進行評估,有利于縮短多核平臺的開發(fā)周期,提高平臺的可靠性,其中OpenRISC基于GPL協(xié)議的開放源代碼的RISC處理器,具有完整的工具鏈,包括開源的軟件開發(fā)工具,C語言實現(xiàn)的CPU仿真模型,操作系統(tǒng),以及軟件應(yīng)用所需的函數(shù)庫,使這種處理器非常適用于本發(fā)明。
圖I為本發(fā)明一實施例中4X4的MESH拓?fù)浣Y(jié)構(gòu)的NoC。圖2為本發(fā)明中開源處理器0R1200原理框圖。圖3為本發(fā)明中路由節(jié)點的原理框圖。圖4為本發(fā)明中網(wǎng)絡(luò)接口的原理框圖。 圖5為本發(fā)明中網(wǎng)絡(luò)接口的工作流程圖。圖6為本發(fā)明的設(shè)計流程圖。
具體實施例方式下面結(jié)合附圖與實施例對本發(fā)明作進一步說明,本發(fā)明的實施方式包括但不限于下列實施例。
實施例如圖I所示的基于MESH拓?fù)浣Y(jié)構(gòu)的片上網(wǎng)絡(luò),片上網(wǎng)絡(luò)簡稱NoC,所述MESH為無線網(wǎng)格網(wǎng)絡(luò)。該NoC拓?fù)渑渲脼镸XN=4X4,共有16個0R1200開源處理器,且R為路由節(jié)點,其中16個處理器0R1200通過片上網(wǎng)絡(luò)的方式互聯(lián),實現(xiàn)了整個網(wǎng)絡(luò)點到點的線路連接,相互間不會產(chǎn)生干擾,所有0R1200之間不會產(chǎn)生通信沖突的問題。其中圖2為本發(fā)明中開源處理器ORl200原理框圖。0R1200作為本實施例中的多核仿真平臺的處理單元,是一款標(biāo)量RISC處理器,采用哈佛結(jié)構(gòu),擁有5級整數(shù)流水線,支持MMU和基本的DSP能力。圖3為R即路由節(jié)點的原理框圖,該路由節(jié)點采用XY路由算法和蟲洞進行數(shù)據(jù)轉(zhuǎn)發(fā),采用時間片輪轉(zhuǎn)算法對輸出競爭進行仲裁,同時配置路由節(jié)點的輸入緩存大小。其中時間片輪算法即每個進程被分配字一個時間段,稱作它的時間片,即該進程允許運行的時間。如果在時間片結(jié)束時進程還在運行,則處理器將被剝奪并分配給另一個進程,如果進程在時間片結(jié)束前阻塞或結(jié)束,處理器當(dāng)即進行切換,調(diào)度程序所要做的就是維護一張就緒進程列表,當(dāng)進程用完它的時間片后,它被移到隊列的末尾。圖4為本發(fā)明中網(wǎng)絡(luò)接口,即NI的原理框圖。0R1200和NoC之間是通過網(wǎng)絡(luò)接口進行連接的,即NI連接到NoC路由節(jié)點的本地輸出端口。其中如圖5所示,NI工作流程如下
(1)在0R1200中創(chuàng)建RAM讀緩沖區(qū),當(dāng)有數(shù)據(jù)包從NoC本地端口輸出時,NI對數(shù)據(jù)包進行解包,即除去包頭包尾,提取數(shù)據(jù)部分并進行緩存;
(2)在NI與0R1200連接端,NI將路由節(jié)點本地輸出端輸出的數(shù)據(jù)解包后緩存,NI提示0R1200有數(shù)據(jù)到達,并根據(jù)0R1200的讀信號,將數(shù)據(jù)搬移到0R1200的RAM即隨機存儲器的讀緩沖區(qū)去,RAM讀緩沖區(qū)是RAM預(yù)先留出的一段區(qū)域,用于專門存放從NI中讀出的數(shù)據(jù);
(3)當(dāng)NI完成數(shù)據(jù)搬移之后則向0R1200發(fā)出信號,讓0R1200從RAM讀緩沖區(qū)中讀取數(shù)據(jù)進行操作。同時,根據(jù)配置創(chuàng)建RAM寫緩沖區(qū),NI還會檢測0R1200發(fā)出的寫信號,并根據(jù)寫信號的職能將數(shù)據(jù)從0R1200的RAM讀緩沖區(qū)搬移到RAM寫緩沖區(qū);
(4)RAM寫緩沖區(qū)也是RAM中預(yù)先留出的一段區(qū)域,用于專門存放需要寫到NI的數(shù)據(jù),因此NI為數(shù)據(jù)添加包頭包尾,并通過路由節(jié)點的本地輸入端口,發(fā)送到NoC網(wǎng)絡(luò)中進行傳輸;
(5)當(dāng)NI完成數(shù)據(jù)發(fā)送任務(wù)之后同樣會向0R1200發(fā)送信號,通知0R1200可以進行下
一次的寫操作。
·
通過如圖6所示設(shè)計流程圖,能夠?qū)崿F(xiàn)該設(shè)計平臺的仿真,其仿真結(jié)果可以在多核平臺設(shè)計前期對平臺進行評估,有利于縮短多核平臺的開發(fā)周期,提高平臺的可靠性,其中具體實現(xiàn)步驟如下
第一步實現(xiàn)NoC路由節(jié)點結(jié)構(gòu)的配置。路由節(jié)點由5條輸入端口和輸出端口組成,分別代表東、西、南、北和本地5個連接方向,因此路由節(jié)點采用XY路由算法尋找目的節(jié)點,采用蟲洞技術(shù)進行數(shù)據(jù)轉(zhuǎn)發(fā),并采用時間片倫算法對輸出競爭進行仲裁,其中還可以根據(jù)需要對路由節(jié)點的緩存深度以及數(shù)據(jù)位寬進行配置。第二步根據(jù)如圖I所示的路由節(jié)點結(jié)構(gòu),配置0rion2. O功率消耗參數(shù)。其中0rion2. O為平臺上的搭載工具,能夠在處理過程中對NoC以及各個處理器的功率消耗進行估計,從而評估該平臺并行算法和并行任務(wù)的處理能力和處理精度進行評估;并且根據(jù)路由節(jié)點結(jié)構(gòu)配置0rion2. O能夠使該平臺搭載工具根據(jù)不同的結(jié)構(gòu)進行相應(yīng)的處理,使其適用于不同網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。第三步配置NoC的規(guī)模,根據(jù)輸入的參數(shù)M=4和N=4,將路由節(jié)點按照對應(yīng)端口進行互聯(lián),即可獲得4X4的MESH拓?fù)浣Y(jié)構(gòu)NoC。該拓?fù)浣Y(jié)構(gòu)共有16個路由節(jié)點R,16個開源處理器0R1200。第四步配置NoC和0R1200間的通信接口 NI使NoC、0R1200通過NI實現(xiàn)相應(yīng)功倉泛。根據(jù)圖5所示的NI工作流程,首先需根據(jù)配置創(chuàng)建RAM讀緩沖區(qū),當(dāng)0R1200讀信號有效時,將數(shù)據(jù)搬移到0R1200的RAM中;
接著根據(jù)配置創(chuàng)建RAM寫緩沖區(qū),當(dāng)0R1200寫信號有效時,將數(shù)據(jù)從RAM讀緩沖區(qū)搬移到RAM寫緩沖區(qū),將數(shù)據(jù)封裝后通過本地輸入端口發(fā)送到NoC中進行傳輸。第五步:為0R1200創(chuàng)建Wrapper,使之能夠被平臺調(diào)用,并將Wrapper和NI進行連接,使ORl200和NI之間能夠進行通信。Wrapper為0R1200和NI之間的媒介,用于實現(xiàn)0R1200和NI之間的通信。第六步根據(jù)0R1200的結(jié)構(gòu),配置Mcpat的參數(shù);
其中Mcpat也為該平臺上搭載的工具,用于對并行算法和并行任務(wù)的處理能力、處理精度以及功率消耗進行估計。并且根據(jù)0R1200結(jié)構(gòu)配置Mcpat能夠使該平臺搭載工具根據(jù)不同的結(jié)構(gòu)進行相應(yīng)的處理,使其適用于不同網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。第七步將各個處理器上需要并行處理的任務(wù)和并行算法用C代碼實現(xiàn)。第八步使用OpenRISC工具鏈生成在OpenRISC處理器上執(zhí)行的程序。其中OpenRISC為開放源代碼的精簡指令集計算機處理器,為現(xiàn)有技術(shù),其采用免費開放的32/64bit RISC/DSP架構(gòu),并且用Verilog HDL實現(xiàn)了基于該RISC/DSP架構(gòu)的RTL描述,這里的RTL為寄存器傳輸級,并且OpenRISC還具有完整的工具鏈,該工具鏈包括開源的軟件開發(fā)工具,C語言實現(xiàn)的CPU仿真模型,操作系統(tǒng),以及軟件應(yīng)用所需的函數(shù)庫,使這種處理器非常適用于本發(fā)明。第九步運行該多核處理器平臺,并為各個OpenRISC處理器加載需要執(zhí)行的程
序。 按照上述實施例,便可很好的實現(xiàn)本發(fā)明。
權(quán)利要求
1.基于NoC架構(gòu)的多核處理器平臺,其特征在于,包括通過NoC方式接入的至少兩個處理器,所述NoC采用MXN的MESH拓?fù)浣Y(jié)構(gòu)構(gòu)建而成,其中M和N均為正整數(shù)。
2.根據(jù)權(quán)利要求I所述的基于NoC架構(gòu)的多核處理器平臺,其特征在于,所述處理器上創(chuàng)建有實現(xiàn)處理器數(shù)據(jù)輸入和輸出的網(wǎng)絡(luò)接口,其中NoC包括與網(wǎng)絡(luò)接口一一對應(yīng)的路由節(jié)點,且相鄰的路由節(jié)點之間連接有兩條以實現(xiàn)數(shù)據(jù)相反流向的數(shù)據(jù)線。
3.根據(jù)權(quán)利要求2所述的基于NoC架構(gòu)的多核處理器平臺,其特征在于,所述處理器內(nèi)設(shè)置有用于配合網(wǎng)絡(luò)接口完成數(shù)據(jù)傳輸?shù)腞AM讀緩存區(qū)和RAM寫緩存區(qū)。
4.根據(jù)權(quán)利要求I 3任意一項所述的基于NoC架構(gòu)的多核處理器平臺,其特征在于,所述NoC上還分別搭載了 0rion2. O和Mcpat工具。
5.基于NoC架構(gòu)的多核處理器平臺設(shè)計方法,其特征在于,通過以下步驟實現(xiàn) (1)設(shè)置路由節(jié)點的結(jié)構(gòu),使該路由節(jié)點通過XY路由算法尋找目的節(jié)點,采用蟲洞技術(shù)進行數(shù)據(jù)轉(zhuǎn)發(fā),且通過時間片輪算法對輸出競爭進行仲裁; (2)根據(jù)單個路由節(jié)點的結(jié)構(gòu)配置0rion2.O功率消耗參數(shù); (3)輸入?yún)?shù)M和N,配置NoC的規(guī)模,將路由節(jié)點進行互聯(lián),即可獲得MXN的MESH拓?fù)浣Y(jié)構(gòu)的NoC ; (4)在處理器上創(chuàng)建網(wǎng)絡(luò)接口,并在處理器中創(chuàng)建RAM讀緩沖區(qū)和RAM寫緩沖區(qū),將網(wǎng)絡(luò)接口與路由節(jié)點一一連接,得到路由節(jié)點排列為MXN的矩陣型結(jié)構(gòu),并且相鄰的路由節(jié)點通過兩條以實現(xiàn)數(shù)據(jù)相反流向的數(shù)據(jù)線連接; (5)為處理器創(chuàng)建Wrapper程序,并將其和網(wǎng)絡(luò)接口進行連接,使處理器和網(wǎng)絡(luò)接口之間進行通信; (6)根據(jù)處理器結(jié)構(gòu)配置Mcpat參數(shù)。
6.根據(jù)權(quán)利要求5所述的基于NoC架構(gòu)的多核處理器平臺設(shè)計方法,其特征在于,所述步驟(I)中單個路由節(jié)點包括東、西、南、北和本地五個方向,東、西、南、北中的每一個方向均設(shè)置有用于和其他路由接口相連的輸出端口和輸入端口,其中本地方向還設(shè)置有與網(wǎng)絡(luò)接口相連的輸出端口和輸入端口。
7.根據(jù)權(quán)利要求6所述的基于NoC架構(gòu)的多核處理器平臺設(shè)計方法,其特征在于,所述步驟(4)中在處理器中創(chuàng)建RAM讀緩沖區(qū)和RAM寫緩沖區(qū)的具體步驟如下 (4a)創(chuàng)建RAM讀緩沖區(qū),并把路由節(jié)點本地輸出端輸出的數(shù)據(jù)解包后緩存到網(wǎng)絡(luò)接Π ; (4b)當(dāng)處理器讀信號有效時,將數(shù)據(jù)搬移到RAM讀緩沖區(qū)中,再根據(jù)配置創(chuàng)建RAM寫緩沖區(qū),當(dāng)處理器寫信號有效時,將數(shù)據(jù)搬移到RAM寫緩沖區(qū)。
8.根據(jù)權(quán)利要求5 7任意一項所述的基于NoC架構(gòu)的多核處理器平臺設(shè)計方法,其特征在于,所述步驟(6)結(jié)束后,還能夠?qū)υ撈脚_進行仿真,其中仿真步驟如下 (I)將各個處理器上需要并行處理的任務(wù)和并行算法用C代碼實現(xiàn); (II)使用OpenRISC工具鏈生成在OpenRISC上執(zhí)行的程序; (III)運行仿真平臺,并為各個OpenRISC加載需要執(zhí)行的程序。
全文摘要
本發(fā)明提供了一種基于NoC架構(gòu)的多核處理平臺及其設(shè)計方法,屬于通信領(lǐng)域,本發(fā)明克服了現(xiàn)有技術(shù)中采用的處理器平臺并行算法和并行任務(wù)處理能力低且開發(fā)周期長、運行非常不可靠的缺陷。本發(fā)明通過NoC方式接入至少兩個處理器,所述NoC采用M×N的MESH拓?fù)浣Y(jié)構(gòu)構(gòu)建而成,從而實現(xiàn)了提高平臺可靠性的功能;同時本發(fā)明還能夠通過仿真對并行算法的延時、功耗、處理精度等進行評估,提高了平臺并行算法和并行任務(wù)處理的精度,且有利于縮短多核平臺的開發(fā)周期。
文檔編號G06F17/50GK102880762SQ201210396310
公開日2013年1月16日 申請日期2012年10月18日 優(yōu)先權(quán)日2012年10月18日
發(fā)明者王堅, 李玉柏, 鐘陽, 李桓 申請人:電子科技大學(xué)