專利名稱:可重構(gòu)多處理器系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別是涉及一種可重構(gòu)多處理器系統(tǒng)。
背景技術(shù):
隨著大規(guī)模的FPGA (Field — Programmable Gate Array,現(xiàn)場可編程門陣列)的 出現(xiàn),可重構(gòu)計算成為高性能計算機(jī)系統(tǒng)領(lǐng)域中的研究熱點。其中,可重構(gòu)計算使得硬件系 統(tǒng)能夠針對具體應(yīng)用中固有的并行性,在單片系統(tǒng)上以低的硬件復(fù)雜度,深度挖掘各種類 型的應(yīng)用中包含的指令級并行性、數(shù)據(jù)級并行性和線程級并行性,完成各種各樣新的任務(wù), 大幅度提聞了芯片系統(tǒng)的總體性能,實現(xiàn)片上超級計算、提供了更聞的計算能力和密度。
現(xiàn)有技術(shù)中,高性能計算平臺通常采用多處理器,或者,多處理器與加速元件相結(jié) 合的方式,盡管這些平臺能夠帶來一定的加速收益,但是無論從編程復(fù)雜度、計算效率以及 加速比等指標(biāo)上都未達(dá)到較好的用戶需求。例如對于多處理器與加速元件相結(jié)合的方式 而言,由于受資金、能耗以及操作復(fù)雜度等多方面因素的影響,目前大部分的計算平臺規(guī)模 較小,通常的作法是將計算最為密集的部分送入加速元件進(jìn)行運(yùn)算,并將計算結(jié)果返回處 理器;其中,處理器與加速元件之間的通信效率以及加速元件的計算效率相對較低,無法滿 足大規(guī)模的計算任務(wù);同時,無法根據(jù)實際應(yīng)用需求或系統(tǒng)負(fù)載狀況,靈活選擇參與計算的 元件,最終導(dǎo)致無法有效合理利用系統(tǒng)資源。
因此,如何進(jìn)一步提高現(xiàn)有技術(shù)中高性能計算平臺的計算效率及靈活性是一個值 得關(guān)注的問題。發(fā)明內(nèi)容
本發(fā)明實施例提供了一種可重構(gòu)多處理器系統(tǒng),以解決現(xiàn)有高性能計算平臺計算 效率低及靈活性差的問題,技術(shù)方案如下
一種可重構(gòu)多處理器系統(tǒng),包括
至少兩個用于計算任務(wù)調(diào)度與執(zhí)行的可重構(gòu)的計算組件、用于提供所述至少兩個 計算組件所需外部緩存的共享內(nèi)存、用于連接I/O元件的I/O接口、互聯(lián)組件;
其中,所述計算組件包括用于系統(tǒng)配置和任務(wù)調(diào)度的處理器、用于完成計算任務(wù) 的且可由所述處理器配置的第一加速元件,用于提供所述計算組件內(nèi)部緩存且由所述第一 加速元件中的配置信息確定存儲結(jié)構(gòu)的緩存元件,所述處理器和第一加速元件之間、所述 第一加速元件和緩存元件之間均具有數(shù)據(jù)總線和地址總線;
其中,通過所述互聯(lián)組件,各計算組件之間能夠進(jìn)行點對點通信,且各計算組件能 夠與所述共享內(nèi)存進(jìn)行通信。
其中,所述互聯(lián)組件包括第二加速元件、組件間互聯(lián)總線、共享互聯(lián)總線;
其中,所述第二加速元件通過所述共享互聯(lián)總線分別與各計算組件內(nèi)的第一加速 元件、共享內(nèi)存相連,各計算組件內(nèi)第一加速元件之間通過所述組件間互聯(lián)總線相連。
其中,所述計算組件內(nèi)的處理器至少包括兩個;
相應(yīng)的,所述互聯(lián)組件還包括用于實現(xiàn)所述計算組件內(nèi)各處理器互連的組件內(nèi) 互聯(lián)總線。
其中,各計算組件共享所述共享內(nèi)存的存儲區(qū)域;
或者,各計算組件分別對應(yīng)所述共享內(nèi)存的一子區(qū)域,所述子區(qū)域為所述共享內(nèi) 存的存儲區(qū)域的一部分。
更進(jìn)一步的,所述可重構(gòu)多處理器系統(tǒng)還包括擴(kuò)展接口,用于接入提供各計算組 件所需外部緩存的、所述共享內(nèi)存對應(yīng)的下一級內(nèi)存。
其中,所述第一加速元件和第二加速元件為現(xiàn)場可編程門陣列(FPGA)、所述緩存 元件和共享內(nèi)存為靜態(tài)隨機(jī)存儲器(SRAM)。
其中,所述第一加速元件和第二加速元件為圖形處理器(GPU)、所述緩存元件和共 享內(nèi)存為靜態(tài)隨機(jī)存儲器(SRAM)。
其中,所述第一加速元件和第二加速元件為CELL處理器、所述緩存元件和共享內(nèi) 存為靜態(tài)隨機(jī)存儲器(SRAM)。
與現(xiàn)有技術(shù)相比,本發(fā)明實施例所提供的可重構(gòu)多處理器系統(tǒng)包括至少兩個計算 組件,而每一計算組件包括用于系統(tǒng)配置和任務(wù)調(diào)度的處理器、用于完成計算任務(wù)的且可 由所述處理器配置的第一加速元件,因此,可以根據(jù)當(dāng)前計算需求,選擇參與計算的計算組 件并將參與計算的計算組件配置為適合當(dāng)前計算的計算結(jié)構(gòu),以此解決現(xiàn)有高性能計算平 臺計算效率低及靈活性差的問題。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可 以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例所提供的一種可重構(gòu)多處理器系統(tǒng)的第一種結(jié)構(gòu)示意圖2為本發(fā)明實施例所提供的一種可重構(gòu)多處理器系統(tǒng)中的計算組件內(nèi)部結(jié)構(gòu) 示意圖3為本發(fā)明實施例所提供的一種可重構(gòu)多處理器系統(tǒng)的內(nèi)部互聯(lián)示意圖4為本發(fā)明實施例所提供的一種可重構(gòu)多處理器系統(tǒng)的第二種結(jié)構(gòu)示意圖。
具體實施方式
為了解決現(xiàn)有高性能計算平臺計算效率低及靈活性差的問題,本發(fā)明實施例提供 了一種可重構(gòu)多處理器系統(tǒng)。
一種可重構(gòu)多處理器系統(tǒng),可以包括
至少兩個用于計算任務(wù)調(diào)度與執(zhí)行的可重構(gòu)的計算組件、用于提供所述至少兩個 計算組件所需外部緩存的共享內(nèi)存、用于連接I/O元件的I/O接口、互聯(lián)組件;
其中,所述計算組件可以包括用于系統(tǒng)配置和任務(wù)調(diào)度的處理器、用于完成計算 任務(wù)的且可由所述處理器配置的第一加速元件,用于提供所述計算組件內(nèi)部緩存且由所述 第一加速元件中的配置信息確定存儲結(jié)構(gòu)的緩存元件,所述處理器和第一加速元件之間、所述第一加速元件和緩存元件之間均具有數(shù)據(jù)總線和地址總線;
其中,通過所述互聯(lián)組件,各計算組件之間能夠進(jìn)行點對點通信,且各計算組件能 夠與所述共享內(nèi)存進(jìn)行通信。
需要說明的是,該可重構(gòu)多處理器系統(tǒng)可以作為單獨的系統(tǒng)使用,或者,通過作為 外部接口的I/o接口接入其他的主機(jī),以作為協(xié)處理計算單元來協(xié)助其他主機(jī)完成相應(yīng)的 計算,其中,該I/o接口可以包括主機(jī)通信接口、數(shù)據(jù)上傳下載接口等。
與現(xiàn)有技術(shù)相比,本發(fā)明實施例所提供的可重構(gòu)多處理器系統(tǒng)包括至少兩個計算 組件,而每一計算組件包括用于系統(tǒng)配置和任務(wù)調(diào)度的處理器、用于完成計算任務(wù)的且可 由所述處理器配置的第一加速元件,因此,可以根據(jù)當(dāng)前計算需求,選擇參與計算的計算組 件并將參與計算的計算組件配置為適合當(dāng)前計算的計算結(jié)構(gòu),以此解決現(xiàn)有高性能計算平 臺計算效率低及靈活性差的問題的目的。
其中,由于在互聯(lián)組件的作用下,各計算組件之間能夠進(jìn)行點對點通信,并且各計 算組件能夠與所述共享內(nèi)存通信,可見,所述互聯(lián)組件具有路由功能。而在實際應(yīng)用中,該 互聯(lián)組件可以包括第二加速元件、組件間互聯(lián)總線、共享互聯(lián)總線;所述第二加速元件通 過所述共享互聯(lián)總線分別與各計算組件內(nèi)的第一加速元件、共享內(nèi)存相連,各計算組件內(nèi) 第一加速元件之間通過所述組件間互聯(lián)總線相連。其中,對于互聯(lián)組件的上述組成而言,該 第一加速元件為具有路由功能的元件,其能夠通過共享互聯(lián)總線實現(xiàn)各計算組件與共享內(nèi) 存之間的數(shù)據(jù)路由,當(dāng)然,該互聯(lián)組件的組成并不局限于此。
更進(jìn)一步的,為了提高該可重構(gòu)多處理器系統(tǒng)的處理性能,各計算組件內(nèi)的處理 器可以至少包括兩個,以高效地實現(xiàn)系統(tǒng)配置和任務(wù)調(diào)度。相應(yīng)的,該互聯(lián)組件還可以包 括用于實現(xiàn)所述計算組件內(nèi)各處理器互連的組件內(nèi)互聯(lián)總線,進(jìn)而通過所述組件內(nèi)互聯(lián) 總線,計算組件內(nèi)各處理器之間能夠進(jìn)行點對點通信。
需要說明的是,由于各計算組件能夠通過第二加速元件的路由作用與共享內(nèi)存進(jìn) 行通信,且所述共享內(nèi)存用于提供計算組件所需外部緩存,因此,為了實現(xiàn)一共享內(nèi)存為至 少兩個計算組件提供外部緩存,各計算組件可以共享所述共享內(nèi)存的存儲區(qū)域,或者,各計 算組件分別對應(yīng)所述共享內(nèi)存的一子區(qū)域,所述子區(qū)域為所述共享內(nèi)存的存儲區(qū)域的一部 分。對于第二種情況而言,第二加速元件通向共享內(nèi)存的接口需要提供與計算組件數(shù)量相 同的、能夠同時訪問的內(nèi)存通道。
更進(jìn)一步的,為了增強(qiáng)系統(tǒng)的可擴(kuò)展性及靈活性,以滿足不同的應(yīng)用需求,該可重 構(gòu)多處理器系統(tǒng)不但可以具有連接I/o元件的I/O接口,而且還可以包括擴(kuò)展接口,以用于 接入提供各計算組件所需外部緩存的、所述共享內(nèi)存對應(yīng)的下一級內(nèi)存。當(dāng)然,還可以增加 其他的擴(kuò)展接口,以滿足不同的應(yīng)用需求,這都是合理的。
本領(lǐng)域技術(shù)人員可以理解的是,在實際應(yīng)用中,所述第一加速元件和第二加速元 件均可以為現(xiàn)場可編程門陣列(FPGA)、所述緩存元件和共享內(nèi)存均可以為靜態(tài)隨機(jī)存儲器 (SRAM)0其中,該FPGA具備充分的靈活性、擴(kuò)展性以及高速互聯(lián)特性,且可以將不同的應(yīng)用 需求映射到硬件系統(tǒng)上,而SRAM可以為各種存儲結(jié)構(gòu)提供了高速的讀寫速度以及高密度 的存儲單元。當(dāng)然,基于不同的應(yīng)用場景,所述第一加速元件和第二加速元件可以均為圖形 處理器(GPU)、所述緩存元件和共享內(nèi)存可以均為靜態(tài)隨機(jī)存儲器(SRAM);或者,所述第一 加速元件和第二加速元件可以均為CELL處理器、所述緩存元件和共享內(nèi)存可以均為靜態(tài)隨機(jī)存儲器(SRAM)。
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實施例僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本 發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實 施例,都屬于本發(fā)明保護(hù)的范圍。
下面以具有四個計算組件為例,對本發(fā)明實施例所提供的一種可重構(gòu)多處理器系 統(tǒng)進(jìn)行詳細(xì)介紹。其中,該第一加速元件和第二加速元件均為現(xiàn)場可編程門陣列(FPGA)、所 述緩存元件和共享內(nèi)存均為靜態(tài)隨機(jī)存儲器(SRAM)。當(dāng)然,該可重構(gòu)多處理器系統(tǒng)所包含 的計算組件數(shù)量以及計算組件內(nèi)各元件,并不局限于此。
需要說明的是,為了描述方便,將FPGA作為第一加速元件,而將路由交換FPGA作 為第二加速元件;同時,將SRAM作為緩存元件。
如圖1和2所示,一種可重構(gòu)多處理器系統(tǒng),可以包括
四個用于計算任務(wù)調(diào)度與執(zhí)行的可重構(gòu)的計算組件100、用于提供該四個計算組 件所需外部緩存的共享內(nèi)存200、用于連接I/O元件的I/O接口 300、互聯(lián)組件400 ;
其中,計算組件100包括用于系統(tǒng)配置和任務(wù)調(diào)度的一 CPU、用于完成計算任務(wù) 的且可由該處理器配置的FPGA,用于提供該計算組件內(nèi)部緩存且由該FPGA中的配置信息 確定存儲結(jié)構(gòu)的SRAM,該CPU和FPGA之間、所述FPGA和SRAM之間均具有數(shù)據(jù)總線和地址 總線;
其中,通過互聯(lián)組件400,各計算組件100之間能夠進(jìn)行點對點通信,且各計算組 件100能夠與該共享內(nèi)存200進(jìn)行通信。
可以理解的是,該可重構(gòu)多處理器系統(tǒng)可以作為單獨的系統(tǒng)使用,或者,通過作為 外部接口的I/o接口接入其他的主機(jī),以作為協(xié)處理計算單元來協(xié)助其他主機(jī)完成相應(yīng)的 計算,其中,該I/o接口可以包括主機(jī)通信接口、數(shù)據(jù)上傳下載接口等。
如圖2所示的計算組件內(nèi)部結(jié)構(gòu)示意圖,每一計算組件100包括有CPU、FPGA及 SRAM;其中,CPU可以作為控件單元來完成系統(tǒng)配置和任務(wù)調(diào)度,當(dāng)然,其還可以完成基本 計算,例如定點與浮點運(yùn)算;FPGA可由CPU配置,且完成計算任務(wù),例如在實際應(yīng)用中, 由于浮點運(yùn)算復(fù)雜度較高,消耗資源也較多,所以可以在FPGA內(nèi)部配置IEEE754浮點運(yùn)算 核;SRAM可以提供內(nèi)部緩存,且其存儲結(jié)構(gòu)由相應(yīng)的FPGA中的配置信息確定。其中,CPU 與FPGA之間具有地址總線和數(shù)據(jù)總線,CPU對FPGA提供地址信息、所需的數(shù)據(jù)及數(shù)據(jù)校驗 信息等,而由CPU產(chǎn)生的地址信息需要經(jīng)過SRAM來處理,如果該SRAM中沒有相應(yīng)的地址信 息,則該地址信息需要傳輸?shù)焦蚕韮?nèi)存處理,而這些傳輸?shù)目刂贫加蒄PGA來控制。
而由于在互聯(lián)組件400的作用下,各計算組件100之間能夠進(jìn)行點對點通信,并且 各計算組件能夠與共享內(nèi)存200通信,可見,所述互聯(lián)組件具有路由功能,如圖3所示。而 在實際應(yīng)用中,該互聯(lián)組件400可以包括路由交換FPGA、組件間互聯(lián)總線、共享互聯(lián)總線; 該路由交換FPGA通過該共享互聯(lián)總線分別與各計算組件100內(nèi)的FPGA、共享內(nèi)存200相 連,各計算組件100內(nèi)FPGA之間通過組件間互聯(lián)總線相連。其中,對于互聯(lián)組件的上述組 成而言,該路由交換FPGA為具有路由功能的元件,其能夠通過共享互聯(lián)總線實現(xiàn)各計算組 件100與共享內(nèi)存200之間的數(shù)據(jù)路由,當(dāng)然,該互聯(lián)組件的組成并不局限于此。
其中,為了保證各計算組件對應(yīng)外部緩存之間的獨立性,各計算組件100分別對應(yīng)該共享內(nèi)存200的一子區(qū)域,所述子區(qū)域為所述共享內(nèi)存200的存儲區(qū)域的一部分,并 且,路由交換FPGA通向共享內(nèi)存的接口需要提供四個同時訪問的內(nèi)存通道。
參照圖4所示的該可重構(gòu)多處理器系統(tǒng)的另一結(jié)構(gòu)示意圖,每個計算組件100由 CPU、可配置的FPGA和SRAM組成,每個CPU可以發(fā)出時鐘、復(fù)位、全局控制等信號,以完成相 應(yīng)的控制,而每個計算組件100均通過內(nèi)部的FPGA與路由交換FPGA相連,在每個計算組件 100與路由交換FPGA之間具有一條共享互聯(lián)總線;而所有的FPGA之間,都可以完成點對點 通信或者與共享內(nèi)存的通信,進(jìn)而完成各種數(shù)據(jù)的流通以及控制信號的配置。
更進(jìn)一步的,如圖4所示,為了增強(qiáng)系統(tǒng)的可擴(kuò)展性及靈活性,以滿足不同的應(yīng)用 需求,該可重構(gòu)多處理器系統(tǒng)不但可以具有通過接口芯片連接I/o元件的I/O接口,而且還 可以包括擴(kuò)展接口,以用于接入提供各計算組件所需外部緩存的、所述共享內(nèi)存對應(yīng)的下 一級內(nèi)存。當(dāng)然,還可以增加其他的擴(kuò)展接口,以滿足不同的應(yīng)用需求,這都是合理的。
可見,與現(xiàn)有技術(shù)相比,本發(fā)明實施例所提供的可重構(gòu)多處理器系統(tǒng)中,四個計 算組件包括用于系統(tǒng)配置和任務(wù)調(diào)度的CPU、用于完成計算任務(wù)的且可由該處理器配置的 FPGA,因此,可以根據(jù)當(dāng)前計算需求,選擇參與計算的計算組件并將參與計算的計算組件配 置為適合當(dāng)前計算的計算結(jié)構(gòu),以此解決了現(xiàn)有高性能計算平臺計算效率低及靈活性差的 問題。
以上所述僅是本發(fā)明的具體實施方式
,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人 員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng) 視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種可重構(gòu)多處理器系統(tǒng),其特征在于,包括至少兩個用于計算任務(wù)調(diào)度與執(zhí)行的可重構(gòu)的計算組件、用于提供所述至少兩個計算組件所需外部緩存的共享內(nèi)存、用于連接I/o元件的I/O接口、互聯(lián)組件;其中,所述計算組件包括用于系統(tǒng)配置和任務(wù)調(diào)度的處理器、用于完成計算任務(wù)的且可由所述處理器配置的第一加速元件,用于提供所述計算組件內(nèi)部緩存且由所述第一加速元件中的配置信息確定存儲結(jié)構(gòu)的緩存元件,所述處理器和第一加速元件之間、所述第一加速元件和緩存元件之間均具有數(shù)據(jù)總線和地址總線;其中,通過所述互聯(lián)組件,各計算組件之間能夠進(jìn)行點對點通信,且各計算組件能夠與所述共享內(nèi)存進(jìn)行通信。
2.根據(jù)權(quán)利要求1所述的可重構(gòu)多處理器系統(tǒng),其特征在于,所述互聯(lián)組件包括第二加速元件、組件間互聯(lián)總線、共享互聯(lián)總線;其中,所述第二加速元件通過所述共享互聯(lián)總線分別與各計算組件內(nèi)的第一加速元件、共享內(nèi)存相連,各計算組件內(nèi)第一加速元件之間通過所述組件間互聯(lián)總線相連。
3.根據(jù)權(quán)利要求1所述的可重構(gòu)多處理器系統(tǒng),其特征在于,所述計算組件內(nèi)的處理器至少包括兩個;相應(yīng)的,所述互聯(lián)組件還包括用于實現(xiàn)所述計算組件內(nèi)各處理器互連的組件內(nèi)互聯(lián)總線。
4.根據(jù)權(quán)利要求1所述的可重構(gòu)多處理器系統(tǒng),其特征在于,各計算組件共享所述共享內(nèi)存的存儲區(qū)域;或者,各計算組件分別對應(yīng)所述共享內(nèi)存的一子區(qū)域,所述子區(qū)域為所述共享內(nèi)存的存儲區(qū)域的一部分。
5.根據(jù)權(quán)利要求1所述的可重構(gòu)多處理器系統(tǒng),其特征在于,所述可重構(gòu)多處理器系統(tǒng)還包括擴(kuò)展接口,用于接入提供各計算組件所需外部緩存的、所述共享內(nèi)存對應(yīng)的下一級內(nèi)存。
6.根據(jù)權(quán)利要求2所述的可重構(gòu)多處理器系統(tǒng),其特征在于,所述第一加速元件和第二加速元件為現(xiàn)場可編程門陣列(FPGA)、所述緩存元件和共享內(nèi)存為靜態(tài)隨機(jī)存儲器 (SRAM)0
7.根據(jù)權(quán)利要求2所述的可重構(gòu)多處理器系統(tǒng),其特征在于,所述第一加速元件和第二加速元件為圖形處理器(GPU)、所述緩存元件和共享內(nèi)存為靜態(tài)隨機(jī)存儲器(SRAM)。
8.根據(jù)權(quán)利要求2所述的可重構(gòu)多處理器系統(tǒng),其特征在于,所述第一加速元件和第二加速元件為CELL處理器、所述緩存元件和共享內(nèi)存為靜態(tài)隨機(jī)存儲器(SRAM)。
全文摘要
本發(fā)明公開了一種可重構(gòu)多處理器系統(tǒng)。該系統(tǒng)包括至少兩個用于計算任務(wù)調(diào)度與執(zhí)行的可重構(gòu)的計算組件、用于提供至少兩個計算組件所需外部緩存的共享內(nèi)存、用于連接I/O元件的I/O接口、互聯(lián)組件;計算組件包括用于系統(tǒng)配置和任務(wù)調(diào)度的處理器、用于完成計算任務(wù)的且可由處理器配置的第一加速元件,用于提供計算組件內(nèi)部緩存且由第一加速元件中的配置信息確定存儲結(jié)構(gòu)的緩存元件,處理器和第一加速元件之間、第一加速元件和緩存元件之間均具有數(shù)據(jù)總線和地址總線;通過互聯(lián)組件,各計算組件之間能夠進(jìn)行點對點通信,且各計算組件能夠與共享內(nèi)存進(jìn)行通信。通過利用本方案,可以解決現(xiàn)有高性能計算平臺計算效率低及靈活性差的問題。
文檔編號G06F15/167GK103020002SQ20121049146
公開日2013年4月3日 申請日期2012年11月27日 優(yōu)先權(quán)日2012年11月27日
發(fā)明者劉勤讓, 劉靜, 張帆, 張興明, 宋克, 賀濤, 張效軍, 傅敏, 朱珂, 張麗 申請人:中國人民解放軍信息工程大學(xué)