基于arm和fpga的高性能計算節(jié)點及計算方法
【技術領域】
[0001]本發(fā)明涉及一種高性能計算節(jié)點,具體地說涉及一種利用FPGA與ARM片上協(xié)作來實現(xiàn)高性能、低功耗、多用途及高密度的基于ARM和FPGA的高性能計算節(jié)點。
【背景技術】
[0002]FPGA (Field— Programmable Gate Array),即現(xiàn)場可編程門陣列,它是在 PAL、GAL、CPLD等可編程器件的基礎上進一步發(fā)展的產物,是作為專用集成電路(ASIC)領域中的一種半定制電路而出現(xiàn)的,兼有了 ASIC的高密度和軟件的高效,又克服了 ASIC設計周期長、投資大、靈活性差的缺點。
[0003]ARM,過去稱作高級精簡指令集機器(Advanced RISC Machine,更早稱作:AcornRISC Machine),是一個32位精簡指令集(RISC)處理器架構,其廣泛地使用在許多嵌入式系統(tǒng)設計。由于節(jié)能的特點,ARM處理器非常適用于移動通信領域,符合其主要設計目標為低成本、高性能、低耗電的特性。
[0004]TF卡(Trans-flash Card),2004年正式更名為 Micro SD Card,由 SanDisk(閃迪)公司發(fā)明,是一種體積微小、儲存容量高的可移動式儲存1C。
[0005]Zynq-7000芯片實質上是一個可擴展處理平臺,是首款將高性能ARM Cortex A9硬核與可編程邏輯緊密集成到一起的器件。通過這樣的結合,既發(fā)揮了處理器在處理復雜控制算法、運行操作系統(tǒng)等方面的優(yōu)勢,又利用FPGA在并行算法加速、可動態(tài)重配置的特點,實現(xiàn)了系統(tǒng)加速,增加了靈活性;同時,減少了電路板的面積,降低了功耗。
[0006]AXKAdvanced extensible Interface)是一種總線協(xié)議,是 ARM公司提出的 AMBA(Advanced Microcontroller Bus Architecture) 3.0協(xié)議的升級版,是一種高性能、高帶寬、低延遲的片內總線,可以稱它為ΑΧΙ4.00 ΑΧΙ4.0主要描述了主設備和從設備之間的數(shù)據(jù)傳輸方式,主設備和從設備之間通過握手信號建立連接。
[0007]SO-DIMM (Small Outline Dual In-line Memory Module,小夕卜形雙列內存模組),它是一種類型的計算機內存模組。相對于DIMM來說,SO-DIMM具有更小的外形尺寸(大致是正常DIMM尺寸的一半)。因此,SO-DIMM主要用于一些對尺寸有較高要求的使用場合。
[0008]現(xiàn)有的高性能計算節(jié)點主要是基于CPU、GPU或是CPU與GPU協(xié)同。
[0009]CPU是利用軟件的并行性,將任務同時分配給多個不同的節(jié)點處理,從而縮短整個任務的處理時間。其在軟件編程過程中需要考慮程序的并行執(zhí)行問題,然后通過編譯器的優(yōu)化,才可以得到線程級并行的可執(zhí)行程序。這種方式的瓶頸主要來自訪存,即cache失效?;赬86架構的多核處理正面臨諸多挑戰(zhàn),從2核擴展至4核乃至16核所帶來的性能提升往往有限,尤其在4核以上的架構,內存帶寬正成為運行性能增加的瓶頸。故單CPU的處理能力有限,其性能的提升主要依靠CPU個數(shù)的增加,需要很高的成本。
[0010]與CPU類似,GPU性能的發(fā)揮也需要軟件編程和編譯器的大力支持。在GPU編程優(yōu)化中,一方面要讓盡量多的線程同時運行,另一方面又要滿足每條線程運行時所需的快速緩存要求。一旦內存要求超出了快速緩存容量,讀寫將會發(fā)生在慢的內存上,這樣往往一個讀寫指令就相當于幾百個GPU指令周期。GPU性能的提升主要通過提高主頻或者增加SP(stream processing,流處理單元),而這會受到工藝、功耗的限制,成本也較高。
[0011]在CPU與GPU協(xié)同的架構下,GPU目前還是作為CPU的協(xié)作處理器存在,通過PCIE傳輸數(shù)據(jù),這是很嚴重的瓶頸。
[0012]傳統(tǒng)的通用計算或狹窄領域內的專用計算等計算形態(tài)已經難以滿足目前日益多樣化的應用需求,尤其是在低功耗、高性能、低成本及高密度等要求方面。國內外企業(yè)和研宄機構都在不斷探索全新的計算平臺架構,尋求新型計算模式和方法,以提升計算設備效會K。
【發(fā)明內容】
[0013]為了克服現(xiàn)有技術中存在的不足,本發(fā)明的目的是:提供一種基于ARM和FPGA的高性能計算節(jié)點,結構新穎、緊湊、密度高,通過對FP GA進行特定程序算法優(yōu)化,可以大大提高對特定應用程序的執(zhí)行效率,同時還可以大大降低系統(tǒng)的功耗,并降低系統(tǒng)TCO (總體擁有成本);能根據(jù)不同的用途對應用計算模塊配置不同的應用位流,適應范圍廣,安全可
A+-.與巨O
[0014]本發(fā)明的技術方案是:
一種基于ARM和FPGA的高性能計算節(jié)點,計算節(jié)點條上包括兩個計算單元,所述計算單元集成有ARM片上處理系統(tǒng)和FPGA,所述FPGA通過AXI總線接口與ARM連接,所述計算單元連接SO-DIMM。
[0015]優(yōu)選的,所述FPGA內部設有APB總線接口及應用計算模塊,所述應用計算模塊通過APB總線接口與AXI總線接口連接。
[0016]優(yōu)選的,所述計算單元外圍集成有DDR3內存、Flash、micro SD存儲接口、千兆以太網PHY芯片、高速環(huán)網接口以及時鐘、電源、維護診斷功能模塊;所述千兆以太網PHY芯片通過千兆以太網接口與SO-DIMM接口連接,所述高速環(huán)網接口與SO-DIMM接口連接。
[0017]優(yōu)選的,所述計算節(jié)點條插在匹配的業(yè)務刀片上,所述SO-DIMM接口為數(shù)據(jù)發(fā)送接收的端口,服務器通過業(yè)務刀片將發(fā)送指令及數(shù)據(jù)傳遞給SO-DIMM接口,若計算單元準備就緒,則服務器與計算單元成功連接。
[0018]本發(fā)明還公開了一種基于ARM和FPGA的高性能計算節(jié)點的計算單元的啟動方法,包括以下步驟:
系統(tǒng)上電復位后,ARM片上處理系統(tǒng)開始進行配置,對外設控制器進行初始化,從Flash和micro SD存儲卡中加載啟動鏡像;
啟動第一階段的啟動加載器,首先完成M1、Clock、DDR器件初始化,然后獲取分區(qū)并驗證header,驗證通過后從選中的啟動flash或TF中加載分區(qū);
如果有bitstream(FPGA配置文件)則配置FPGA,如果有應用程序則拷貝到DDR中,加載U-boot,完成Linux內核根文件系統(tǒng)加載,系統(tǒng)正常啟動。
[0019]本發(fā)明又公開了一種基于ARM和FPGA的高性能計算節(jié)點的計算方法,包括以下步驟:
在系統(tǒng)正常啟動準備就緒后,服務器將數(shù)據(jù)通過以太網傳輸給ARM,ARM根據(jù)具體應用對數(shù)據(jù)進行相應的處理以得到需要FPGA計算的數(shù)據(jù),然后將這些數(shù)據(jù)傳輸至FPGA端的應用計算模塊上進行計算;
應用計算模塊完成計算后,將計算結果返回到ARM端,ARM對計算結果進行驗證,如果驗證通過,則將結果返回到服務器端,任務結束。
[0020]本發(fā)明的優(yōu)點是:
1.計算節(jié)點采用SO-DIMM計算機內存類型的外形尺寸(133.35mm*40mm),在節(jié)點上設置了兩個計算單元,計算單元集成了雙核的Cortex-ARM9片上處理系統(tǒng)及28nm的低功耗FPGA的Zynq-7000芯片,以及DDR3內存、Flash、micro SD存儲接口(配置TF存儲卡)、千兆以太網PHY芯片、高速環(huán)網接口等,結構新穎、緊湊、密度高。
[0021]2.通過對FPGA進行特定程序算法優(yōu)化,可以大大提高對特定應用程序的執(zhí)行效率,同時還可以大大降低系統(tǒng)的功耗,并降低系統(tǒng)總體擁有成本;能根據(jù)不同的用途對應用計算模塊配置不同的應用位流,適應范圍廣,安全可靠。
【附圖說明】
[0022]下面結合附圖及實施例對本發(fā)明作進一步描述:
圖1為基于ARM和FPGA的高性能計算節(jié)點的板卡結構框圖;
圖2為基于ARM和FPGA的高性能計算節(jié)點的板卡另一面結構框圖;
圖3為基于ARM和FPGA的高性能計算節(jié)點的計算單元結構框圖;
圖4為基于ARM和FPGA的高性能計算節(jié)點的計算單元啟動流程圖;
圖5為基于ARM和FPGA的高性能計算節(jié)點的工作流程圖。
[0023]其中:1、SO-DIMM接口,2、千兆以太網 PHY 芯片,3、Flash,4、micro SD 存儲接口,
5、Zynq-7000芯片,6、DDR3內存,7、高速環(huán)形網接口,8、Cortex_ARM9片上處理系統(tǒng),9、AXI總線,10、千兆以太網接口,11、應用計算模塊,12、APB總線,13、FPGA。
【具體實施方式】
[0024]為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明了,