基於存儲接口的可重構加速器映射方法
2023-06-25 23:55:01
專利名稱:基於存儲接口的可重構加速器映射方法
技術領域:
本發明涉及計算機技術領域,更具體地說,本發明涉及一種基於存儲接口的可重構加速器映射方法。
背景技術:
可重構計算系統的實現通常是在傳統的通用處理器架構下集成或連接用於作為可重構加速器的FPGA (Field — Programmable Gate Array,即現場可編程門陣列)晶片或板卡。由通用處理器控制可重構加速器中硬體加速邏輯的配置和算法映射過程。因此,可重構加速器與通用處理器架構的連接和映射方式對其在可重構計算系統中的應用方式和開發難度將會有極大的影響。在目前常見的可重構計算系統中,可重構加速器通常是通過外設接口或互連網 絡與通用處理器相連接的。例如,歐洲的EPCC製造的Maxwell可重構計算系統,就是以Maxwell以IBM的BladeCenter集群為基礎,在其中的每個伺服器上通過PCI-X接口安裝了Nallatech 的 HlOl FPGA 板卡和 Alpha Data 的 ADM-XRC-4FM FPGA板卡。又例如,在 Cray 公司生產的XDl超級計算機中,FPGA可重構加速器直接在XDl主板上通過「RapidArray Link」互連接口與CPU相連。上述通過外設接口和互連網絡連接可重構加速器的方式對於可重構計算應用的設計和開發帶來了一些無法避免的困難。一方面,由於使用了外設接口或互連網絡連接,可重構加速器的接口必須符合相應的設備接口協議或網絡接口協議,因此當需要將可重構算法核心應用在系統中時,就需要按照外部接口的協議對其原有的接口進行封裝,使其能夠通過相應的外部接口與處理器通信,這一過程通常比較複雜,開發難度較大。另一方面,對於運行於通用處理器的應用軟體來說,由於可重構加速器以外設或互連網絡的形式連接,因此它與可重構加速器的數據通信就必須通過設備或網絡驅動程序來實現,不僅需要開發相應的設備驅動程序,其後在算法應用還必須基於驅動程序接口來開發,增加了應用開發的複雜性,可重構加速器中的算法核心也很難直接地在映射在軟體中。
發明內容
本發明所要解決的技術問題是針對現有技術中存在上述缺陷,提供一種基於存儲接口的可重構加速器映射方法,其使得軟體可以直接通過內存地址訪問的方式實現與可重構加速器之間的數據傳輸。根據本發明,提供了一種基於存儲接口的可重構加速器映射方法,其包括初始步驟用於將可重構加速器、通用處理器和存儲體分別連接在存儲總線上;第一步驟,用於通過可重構算法接口映射模塊對可重構算法核心的硬體接口進行封裝,其中所述可重構算法接口映射模塊按照信號類型將可重構算法核心的硬體接口映射成為存儲接口,由此按照對存儲體的存儲訪問的讀訪問和寫訪問的方式對硬體接口進行讀寫,即,利用可重構算法接口映射模塊將算法核心的接口映射成為存儲接口,通過類似於訪問存儲體的存儲訪問的讀訪問和寫訪問的方式進行讀寫;第二步驟,用於對通用處理器和存儲控制器進行配置,以便通用處理器能夠通過存儲控制器訪問可重構加速器;第三步驟,用於通過對通用處理器編程實現對可重構加速器中算法核心的軟體映射。優選地,所述可重構算法接口映射模塊包括算法接口協議處理模塊,用於在可重構算法接口模塊內部邏輯的控制下生成符合可重構算法核心接口協議的信號激勵;數據寫訪問映射模塊,用於實現可重構算法核心的輸入信號與存儲地址之間的映射;數據讀訪問映射模塊,用於實現可重構算法核心的輸出信號與存儲地址之間的映射;存儲接口協議處理模塊,用於處理來自存儲總線的存儲協議信號,根據相應的讀寫請求調用數據寫訪問映射模塊或數據讀訪問映射模塊,以完成相應的數據輸入輸出操作。優選地,在所述第一步驟中,將所述可重構算法核心的輸入映射成為對存儲地址的寫訪問。
優選地,在所述第一步驟中,將所述可重構算法核心的輸出映射成為對存儲地址的讀訪問。優選地,在所述第一步驟中,對於所述可重構算法核心的接口信號為雙向信號的情況,將雙向信號進行輸入映射和輸出映射,從而將雙向信號映射成為對存儲地址的寫訪問和讀訪問。 優選地,所述可重構加速器通過所述可重構算法接口映射模塊從所述存儲總線接收控制信號,並與所述存儲總線交換地址及數據信號。優選地,所述通用處理器通過所述存儲控制器向所述存儲總線發送控制信號,並與存儲總線交換地址及數據信號。優選地,所述存儲體從存儲總線接收控制信號,並與存儲總線交換地址及數據信號。在本發明中,通過將可重構加速器連接在通用處理器的存儲接口上,並且通過可重構算法接口映射模塊將可重構算法核心的硬體接口作為一塊特殊的存儲區域直接映射到通用處理器的物理內存空間之中,軟體可以直接通過內存地址訪問的方式實現與可重構加速器之間的數據傳輸。由此,通用處理器不需要驅動程序就可以完成與可重構加速器的數據通信,簡化了可重構計算應用設計的複雜度,提高了軟體算法和硬體可重構算法核心的耦合程度,能夠有效提高可重構計算應用的設計效率。
結合附圖,並通過參考下面的詳細描述,將會更容易地對本發明有更完整的理解並且更容易地理解其伴隨的優點和特徵,其中圖I示意性地示出了根據本發明實施例的基於存儲接口的可重構加速器封裝映射方法的流程圖。圖2示意性地示出了根據本發明實施例的基於存儲接口的可重構加速器封裝映射方法的示意圖。圖3示意性地示出了根據本發明實施例的基於存儲接口的可重構加速器封裝映射方法所採用的可重構算法接口映射模塊的結構示意圖。需要說明的是,附圖用於說明本發明,而非限制本發明。注意,表示結構的附圖可能並非按比例繪製。並且,附圖中,相同或者類似的元件標有相同或者類似的標號。
具體實施例方式為了使本發明的內容更加清楚和易懂,下面結合具體實施例和附圖對本發明的內容進行詳細描述。圖I示意性地示出了根據本發明實施例的基於存儲接口的可重構加速器封裝映射方法的流程圖;圖2示意性地示出了根據本發明實施例的基於存儲接口的可重構加速器封裝映射方法的示意圖。一般,通用處理器的存儲系統原本用來連接存儲晶片或內存條等存儲體,例如圖2中,多個存儲體4通過存儲總線3連接在處理器的存儲控制器21上,存儲控制器21處理來自處理器的存儲訪問請求,按照相應的物理地址通過存儲總線3讀取存儲體4中的數據或將數據寫入相應存儲體4的存儲單元中。
而本發明提出的方法將可重構加速器Ml、通用處理器M2和存儲體4分別連接在存儲總線3上,通過可重構算法接口映射模塊11對可重構算法核心12進行封裝,將可重構算法核心12的接口信號映射到基於物理地址的存儲空間中,以便通用處理器M2能夠通過存儲器訪問的方式與可重構算法核心12進行數據傳輸。其中,「可重構加速器」指的是可重構計算系統中具有硬體可編程能力,用於重構為面向算法或應用的硬體加速的晶片或板卡,目前主要採用FPGA晶片實現。而可重構計算系統主要指系統具有某種形式的硬體可編程性,通過定製硬體邏輯可以在同一塊硬體上實現不同的計算應用,實際上目前主要指具有FPGA等可編程器件,通過將FPGA重構為針對算法或應用的硬體加速模塊實現對算法的硬體加速。如圖2所示,可重構加速器Ml通過可重構算法接口映射模塊11從存儲總線3接收控制信號D22,並與存儲總線3交換地址及數據信號D21。通用處理器M2通過存儲控制器21向存儲總線3發送控制信號D12,並與存儲總線3交換地址及數據信號DlI。存儲體4從存儲總線3接收控制信號D32,並與存儲總線3交換地址及數據信號D31。由此,在上述結構的基礎上,要實現可重構加速器Ml的封裝映射過程需要在可重構加速器Ml端和通用處理器M2端完成一些硬體封裝和軟體配置工作,最終實現通用處理器端的應用程式直接通過地址訪問的方式與可重構加速器Ml進行數據交互。下面將對此過程進行詳細描述。在將可重構加速器Ml、通用處理器M2和存儲體4分別連接在存儲總線3上(初始步驟)之後,執行下述處理(I)首先,如圖I所示,在第一步驟SI中,通過可重構算法接口映射模塊11對可重構算法核心12的硬體接口進行封裝。這一階段主要涉及對可重構加速器Ml端的硬體邏輯開發。可重構算法核心12用於實現對特定的算法的硬體加速,其設計僅與相應的算法相關,與具體的可重構計算系統結構完全無關。如果要在可重構計算系統使用它,對其進行封裝以使其能夠與外部進行數據通信。對於本發明實施例所提出的結構,需要將可重構算法核心12接口轉換為存儲接口,其功能由可重構算法接口映射模塊11實現。可重構算法核心12的硬體接口信號從功能來看可以抽象為三類輸入信號、輸出信號、雙向信號。可重構算法接口映射模塊11按照信號類型將可重構算法核心12的硬體接口映射成為對存儲體4中的存儲器的讀訪問和寫訪問輸入信號可重構算法核心12的輸入被映射成為對某個存儲地址的寫訪問。輸出信號可重構算法核心12的輸出被映射成為對某個存儲地址的讀訪問。雙向信號如果可重構算法核心12的接口信號為雙向信號,則分別將其輸入映射和輸出映射成為對某個存儲地址的寫訪問和讀訪問。圖3示意性地示出了根據本發明實施例的基於存儲接口的可重構加速器封裝映射方法所採用的可重構算法接口映射模塊11的結構示意圖。具體地說,可重構算法接口映射模塊11的各部分功能的具體描述如下。
(a)算法接口協議處理模塊13,其主要功能是在可重構算法接口模塊內部邏輯的控制下生成符合可重構算法核心12接口協議的信號激勵。(b)數據寫訪問映射模塊14,其主要功能是實現可重構算法核心12的輸入信號與存儲地址之間的映射;具體地說,當可重構算法接口映射模塊11的存儲接口收到的寫請求時,數據寫訪問映射模塊14根據寫請求的地址調用算法接口協議處理模塊13生成相應的算法核心輸入信號。例如,如圖3所示,數據寫訪問映射模塊14根據地址A生成相應的算法輸入1,根據地址B生成相應的算法輸入2,根據地址E生成相應的雙向信號輸入。(c)數據讀訪問映射模塊15,其主要功能是實現可重構算法核心12的輸出信號與存儲地址之間的映射;具體地說,當可重構算法接口映射模塊11的存儲接口收到讀請求時,數據讀訪問映射模塊15根據讀請求的地址調用算法接口協議處理模塊以讀取相應的可重構算法核心輸出信號,通過存儲接口返回給處理器。例如,如圖3所示,數據讀訪問映射模塊15根據地址C生成相應的算法輸出1,根據地址D生成相應的算法輸出2,根據地址E生成相應的雙向信號輸出。(d)存儲接口協議處理模塊16,其主要功能是處理來自存儲總線3的存儲協議信號,根據相應的讀寫請求調用數據寫訪問映射模塊14或數據讀訪問映射模塊15,完成相應的數據輸入輸出操作。(2)其次,如圖I所示,在第二步驟S2中,對通用處理器M2和存儲控制器21進行相應的配置,以便其能夠通過存儲控制器21訪問可重構加速器Ml,配置方法與普通存儲器的配置方法完全相同,主要包括以下幾方面設置可重構加速器Ml的存儲協議參數,例如,存儲協議參數包括地址信號有效時間、讀訪問延遲、寫訪問延遲、數據寬度、是否支持突發(burst)模式等。設置可重構加速器Ml在物理地址空間中的基地址及其佔用的地址空間大小。關閉可重構加速器Ml所對應地址空間的cache (高速緩存)功能以保證數據的一致性。(3 )最後,如圖I所示,在第三步驟S3中,通過對通用處理器M2編程實現對可重構加速器Ml中可重構算法核心12的軟體映射。通過前兩步已經在硬體上將可重構加速器Ml映射到了通用處理器M2的物理地址空間中,因此通用處理器M2能夠直接通過對相應物理地址的讀寫實現對可重構算法核心12的控制和數據傳輸,軟體映射從而也就非常簡單,以C語言為例,可以直接通過訪問指向相應地址的指針,對其進行賦值即可實現數據輸入,讀取指針對應的值即可實現數據輸出。由此,本發明實施例提出了一種在可重構計算系統中通過存儲接口連接可重構加速器的結構和方法,將可重構加速器映射到處理器的物理地址空間中,通用處理器不需要驅動程序就可以完成與可重構加速器的數據通信,簡化了可重構計算應用設計的複雜度,提高了軟體算法和硬體可重構算法核心的耦合程度,能夠有效提高可重構計算應用的設計效率。可以理解的是,雖然本發明已以較佳實施例披露如上,然而上述實施例並非用以限定本發明。對於任何熟悉本領域的技術人員而言,在不脫離本發明技術方案範圍情況下,都可利用上述揭示的技術內容對本發明技術方案作出許多可能的變動和修飾,或修改為等同變化的等效實施例。因此,凡是未脫離本發明技術方案的內容,依據本發明的技術實質 對以上實施例所做的任何簡單修改、等同變化及修飾,均仍屬於本發明技術方案保護的範圍內。
權利要求
1.一種基於存儲接口的可重構加速器映射方法,其特徵在於包括 初始步驟用於將可重構加速器、通用處理器和存儲體分別連接在存儲總線上; 第一步驟,用於通過可重構算法接口映射模塊對可重構算法核心的硬體接口進行封裝,其中所述可重構算法接口映射模塊按照信號類型將可重構算法核心的硬體接口映射成為存儲接口,由此按照對存儲體的存儲訪問的讀訪問和寫訪問的方式對硬體接口進行讀與; 第二步驟,用於對通用處理器和存儲控制器進行配置,以便通用處理器能夠通過存儲控制器訪問可重構加速器; 第三步驟,用於通過對通用處理器編程實現對可重構加速器中算法核心的軟體映射。
2.根據權利要求I所述的基於存儲接口的可重構加速器映射方法,其特徵在於,所述可重構算法接口映射模塊包括 算法接口協議處理模塊,用於在可重構算法接口模塊內部邏輯的控制下生成符合可重構算法核心接口協議的信號激勵; 數據寫訪問映射模塊,用於實現可重構算法核心的輸入信號與存儲地址之間的映射; 數據讀訪問映射模塊,用於實現可重構算法核心的輸出信號與存儲地址之間的映射; 存儲接口協議處理模塊,用於處理來自存儲總線的存儲協議信號,根據相應的讀寫請求調用數據寫訪問映射模塊或數據讀訪問映射模塊,以完成相應的數據輸入輸出操作。
3.根據權利要求I或2所述的基於存儲接口的可重構加速器映射方法,其特徵在於,在所述第一步驟中,將所述可重構算法核心的輸入映射成為對存儲地址的寫訪問。
4.根據權利要求I或2所述的基於存儲接口的可重構加速器映射方法,其特徵在於,在所述第一步驟中,將所述可重構算法核心的輸出映射成為對存儲地址的讀訪問。
5.根據權利要求I或2所述的基於存儲接口的可重構加速器映射方法,其特徵在於,在所述第一步驟中,對於所述可重構算法核心的接口信號為雙向信號的情況,將雙向信號進行輸入映射和輸出映射,從而將雙向信號映射成為對存儲地址的寫訪問和讀訪問。
6.根據權利要求I或2所述的基於存儲接口的可重構加速器映射方法,其特徵在於,所述可重構加速器通過所述可重構算法接口映射模塊從所述存儲總線接收控制信號,並與所述存儲總線交換地址及數據信號。
7.根據權利要求I或2所述的基於存儲接口的可重構加速器映射方法,其特徵在於,所述通用處理器通過所述存儲控制器向所述存儲總線發送控制信號,並與存儲總線交換地址及數據信號。
8.根據權利要求I或2所述的基於存儲接口的可重構加速器映射方法,其特徵在於,所述存儲體從存儲總線接收控制信號,並與存儲總線交換地址及數據信號。
全文摘要
本發明提供的一種基於存儲接口的可重構加速器映射方法包括初始步驟用於將可重構加速器、通用處理器和存儲體分別連接在存儲總線上;第一步驟,用於通過可重構算法接口映射模塊對可重構算法核心的硬體接口進行封裝,其中所述可重構算法接口映射模塊按照信號類型將可重構算法核心的硬體接口映射成為存儲接口,由此按照對存儲體的存儲訪問的讀訪問和寫訪問的方式對硬體接口進行讀寫;第二步驟,用於對通用處理器和存儲控制器進行配置,以便通用處理器能夠通過存儲控制器訪問可重構加速器;第三步驟,用於通過對通用處理器編程實現對可重構加速器中算法核心的軟體映射。
文檔編號G06F13/16GK102929812SQ20121037190
公開日2013年2月13日 申請日期2012年9月28日 優先權日2012年9月28日
發明者原昊, 謝向輝, 郝子宇, 吳東, 錢磊, 張魯飛, 馬文濤, 鄔貴明 申請人:無錫江南計算技術研究所