摘要:為了能夠靈活地驗證和實現自主設計的基于NoC的多核處理器,縮短NoC多核處理器的設計周期,提出了設計集成4片Virtex-6—550T FPGA的NoC多核處理器原型芯片設計/驗證平臺。分析和評估了NoC多核處理器的規模以及對FPGA硬件資源的需求,在此基礎上給出了集成4片FPGA的開發板詳細設計方案,并對各主要模塊如互聯架構、電源、板級時鐘分布、接口技術、存儲資源等關鍵設計要點進行闡述。描述了開發板各個主要模塊的測試過程和結果,表明了該設計的可行性。
0 引 言
由于基于傳統SoC (system-on-chip)的單芯片處理器在內核頻率、片上通信、功耗以及面積等方面面臨著很大問題,基于NoC (network-on-chip)的多核處理器應運而生,從體系架構上解決了前者所面臨的諸多問題。NoC互連結構具有IP間的并行通信、擴展性好以及吞吐量大等優勢,并且解決了多核處理器的體系結構問題以及困擾總線結構的全局時鐘問題。因此,NoC互連結構是多核處理器系統最有前途的解決方案。
目前,FPGA芯片作為承載和驗證基于NoC的多核處理器硬件設計的途徑,已經成為了研究熱點,但是隨著硬件設計的規模不斷增加,單片FGPA的硬件資源并不能滿足基于NoC的多核處理器需求。因此,本文設計的驗證平臺采用了4片Xilinx公司的40nm Virtex-6系列中的XC6VLX550T (FF1759);該芯片具有將近50萬的邏輯單元、840個最大可用I/0、內部信號可達600MHz、36組2.5Gbps高速吉比特收發器端口以及豐富的分布式RAM、Block ft 。由此觀之,集成4片該型號FPGA芯片的開發板能夠為FPGA硬件設計人員提供足夠多硬件資源,以便驗證和實現基于NoC的多核處理器的原型芯片設計,也為以后在片上網絡(NoO 上研究多核并行計算提供了條件。
1 多FPGA開發板設計的總體方案
1.1 多FPGA的互聯結構
該開發板總體架構如圖1所示,平臺上有4片Xilinx XC6VLX550T FPGA芯片,因此可以將需要處理的任務劃分多個子任務分配到不同FPGA芯片上的處理單元分別處理,從而實現任務處理的并行化;其任務間數據通信速度和同步時間等不僅取決于處理單元本身的通信速度,還取決于鏈接處理單元的通信互聯網絡。所以本平臺的4片芯片利用FPGA提供的全雙工差分高速GTX接口(low-voltage diferential signaling,LVDS)_6]和單端模式的高速普通GPIOE ,實現片間的全互聯網絡結構;其中差分高速GTX接口的數據通信遵循Aurora協議,實現FPGA間的大量數據的高速傳輸,而單端模式的高速GPIO為FPGA開發人員提供自定義接口空間。
1.2 開發板的具體實現及其特點
該開發板的具體實現如下:3大組GTX 10 (每組GTX IO由4路獨立的GTX IO通道構成)分別與另外3塊FPGA芯片的對應GTX IO相連,提供64位寬,125MHz的數據傳輸通道,實現4塊FPGA芯片的全互聯,片間吞吐率達lOGbps;以及1O對單端模式的高速GPIO。每片FPGA子系統包如圖2所示,含如下模塊:電源管理模塊、獨立的存儲系統、板級時鐘管理模塊、FPGA的配置方式以及對外對內的接口模塊。該開發板具有以下特點:
(1)豐富的邏輯資源,4片FPGA 總邏輯資源:549888*4= 2199552。
(2)豐富的存儲資源,24片DDR3共計48Gb,片外SRAM達到256Mb,片內RAM共計115.8Mb。
(3)存儲端口吞吐率大:DDRIII 400MHz*16*12=76.8Gbps,片外SRAM 167 MHz*64*4= 42.752Gbps。
(4)FPGA設計靈活性、通用性強:可以采用不同的處理器,也可以采用相同的處理器,如ARM等。
(5)仿真綜合軟件支持好:第三方的Modelsim能很好地完成功能仿真,而Xilinx公司的ISE則能很好地完成綜合。
2 開發板各模塊具體設計方案
2.1 系統電源設計
為了能夠承載更多的硬件設計,開發板在設計中使用了4片FPGA為處理核心。因此,系統的功耗要遠遠超出普通系統的設計要求。所以,能否設計出滿足系統功耗需求的穩壓電源成為系統能否正常運行的關鍵。通常,電源設計有兩種實現方式:低壓差線性穩壓電源LIX)與開關電源(DC_DC)開關電源(DC-DC)。u)O的特點是電源精度高、噪聲小,比較適合于精密電路供電,其缺點是輸出功率往往不夠大,并且功率的轉換效率偏低[8]。I)C-DC的特點是功率轉換效率高,能夠提供較大的電源功率,但相比較LIND而言其電源噪聲會有所提高,因此I)C-DC一般作為系統整體穩壓電源使用或直接為大功率器件供電。
2.1.1 系統功耗估計
根據圖1和圖2可以得出系統的核心部分主要4片XC6VLX550T FPGA、24片DDR3 s亡IRAM、8片SRAM及8片NOR Flash,它們占據了系統功耗的主要部分。因此,主要對這部分的功耗進行大致上的估算,同時考慮到板上的其它器件,對估算的結果適當放寬,最終給出電源部分的具體設計參數。
本文對系統核心部份其中一個子系統所需的電壓品種的對應的功耗進行了一個估算,參見表1。
表1的數據計算均參考每片芯片最大工作電流,為了提高電源的穩定性,本設計中電源的設計輸出電流能力大于估算系統總功耗值的5O 系統總功耗即可,并對FPGA進行功耗估算時使用Xilinx公司的功耗計算工具XPE(XPower
estimator) 對FPGA的功耗進行估算,當FPGA內部時鐘工作在100MHz時,使用了90 以上的內部資源,實際使用時一般不能用到所有的內部資源。
2.1.2 系統電源設計方案
為了使該系統更具穩定性和擴展性,本文設計的電源管理系統的帶載能力至少是現有估計功耗的兩倍。由于系統需要0.75V、1.0V、1.2V、1.5V、1.8V、2.5V 和3.3V穩壓電源,考慮到整個系統的功耗,整個系統主要采用DC-DC這種效率高、輸出功率大的開關電源,而局部功耗較小、精度要求高的部分電路則采用LDO線性穩壓電源,充分結合開關電源與線性穩壓電源各自的優勢進行系統電源的設計。DC-DC開關電源的芯片采用了凌力爾特公司的LTM4601;整個系統的外部供電12V。本文設計的電源方案如圖3所示。
因為1.OV、1.5V、1.8V及2.5V的電源所需電流較大,所以我們采用一個相位震蕩器來并聯兩片LTM4601得到24A的電流輸出,而其中的0.75V是DDR3所需的一個參考電壓則通過1.5V分壓得到;1.2V 和3.3V 通過LTM4601降到5V后通過一個LD0得到。
雖然采用的LTM4601的效率高,但是考慮到PCB板的空間以及有超過IOA的輸出電流,整個系統的散熱成為了考慮的關鍵。在進行PCB的版圖設計時,盡可能的加大鋪銅的面積,并每片FPGA上貼有散熱片和風扇,以便系統散熱。
2.2 板級時鐘分布
基于SoC結構的處理器要求單一系統時鐘全局同步工作,給設計帶來了極大的困難。然而,基于NoC結構的多核處理器采用全局異步一局部同步的通訊機制,很好地解決了單一時鐘同步問題,也為驗證平臺的時鐘分布設計提供了便利。本文為每個FPGA子系統設計相應的時鐘驅動,實現全局異步一局部同步的板級時鐘分布。
本文設計的多核處理器原型芯片設計的驗證平臺實現了兩種RTC方案。一種是外接有源晶振,選用EPSON公司的EG-2101CA125M為整個系統的差分高速GTX接口提供125MHz的差分時鐘驅動;另外一種是利用25MHz的無源晶振和ICS公司的低噪聲頻率合成器ICS8430011-22,通過配置和調節芯片可以精準的產生200MHz差分時鐘,并通過時鐘芯片ICS8543BGT分出4路提供給每片FPGA所掛載的DDR3的參考差分時鐘,具體電路參見圖4。第二種方式因為其時鐘輸出頻率的可調節,使得其更具靈活性,也就為整個平臺的通用性和可擴展性做好了鋪墊。
雖然只提供兩個外部時鐘,可以利用FPGA芯片內部的PLL產生400MHz的DDR3工作時鐘;100MHz系統時鐘和SRAM 工作時鐘。
2.3 系統接口設計
2.3.1 SDRAM DDR3接口設計
NoC多核處理器的各處理單元在進行并行處理任務時,需要快速存儲和讀取數據,避免各個處理單元處理數據時產生沖突,就需要提供數量足夠多、數據傳輸帶寬和存儲空間足夠大的存儲器。因此,本文設計的平臺采用數據存取頻率能達到1333MHz DDR3芯片。
開發板的每片FGPA芯片外接有3組美光公司的容量為2Gb,單片位寬為8bit的MT41J256M8HX-15E (DDR3 1033)的存儲器,由兩片組成16bit寬度的數據總線。XC6VLX550T FPGA能夠支持SSTL15電平標準,能夠和DDR3 SDRAM進行無縫連接,FGPA與DDR3 SDRAM 的接口如圖5所示。
圖5中只是給出了其中一組DDR3與FPGA的連接,其所連接的FPGA BANK是通過Xilinx公司的官方軟件ISE開發環境鎖定得到。FPGA的不同BANK的電平標準,用戶可以自己定義,本文在設計時是參考ISE生成的UCF文件來給各個BANK輸入電源,比如BANK28和BANK38的VCCO使用1.5V的電源進行供電。兩片DDR3芯片的數據、時鐘、讀寫閃爍信號和數據掩碼信號使用FPGA分別控制,地址和控制命令信號共享。
2.3.2 N0R Flash接口設計與FPGA的配置方式
FPGA是基于SRAM 架構來實現邏輯設計,所以在掉電后,編程信息立即丟失。芯片在每次加電時,都必須重新下載由設計文件生成的配置數據燒寫文件。本系統每片FPGA芯片外接有兩片相同的BPI NOR Flash,容量為256Mbit,位寬為16bit。其中的一片Flash接口在系統初始化過程中使用,當系統上電后或FPGA原型芯片復位鍵有效時,系統從片外的Flash加載硬件設計程序的bit文件到各個FPGA的本地程序存儲器,實現對FPGA BPI方式的配置和編程;另外,在這一片Flash還用來加載軟件程序設計的bit文件。
使用同一片BPI FLASH保存軟件bit文件。BPI方式通過NOR型FLASH加載FPGA配置,無需Bootloader搬移FLASH中的應用軟件bit文件,就可以直接運行。
同樣,XC6VLX550T FPGA能夠支持LVCOMS2.5V電平標準,能夠和NOR Flash進行無縫連接,FPGA 與NOR Flash的接口如圖6所示。
圖6中BPI Flash與FPGA相連兩個是特定的BANK,分別是BANK24和BANK34;Flash的數據線和控制信號與FPGA BANK24相連,地址信號與BANK34相連,其中的復位信號與BANK0的PROG—B相連,硬件設計人員可以自行設定對應BANK的電平標準。
BPI方式中,M0,M1和M2配置管腳的設置,010和110都是BPI方式,當M0為0時,FPGA加載時由BPI Flash的OxO00000地址遞增讀取配置文件;MO為1時,FPGA加載時有BPI Flash的0xFFFFFF地址遞減讀取配置文件 ,如圖7所示。
每片FPGA都是一個子系統,有可作為獨立的模塊獨立工作,4片FPGA芯片相互獨立,因此4片FPGA使用了相互獨立的Flash。此外,在本系統中,4片FPGA芯片還連成傳統的菊花鏈,以便可以通過JTAG鏈式并結合Xilinx的iMPACT軟件配置FPGAl”],從而提高了系統的通用性。
配置方式的選擇:通過FPGA BANK0的M0,M1,M2進行配置方式的選擇,本系統使用了兩種配置方式:BPI和JTAG,管腳的設置如表2所示。
2.3.3 數據傳輸端口的設計
為了加大整個系統的數據吞吐率和更加合理的利用FPGA芯片的高速吉比特收發器,所以在FPGA2和FPGA4的BANK118各外接一個光纖接口,吞吐率可達2.5Gbps,比普通的千兆網口快了許多,從而增強了系統的實時性。光口與系統相連的情況如圖8所示。
該系統數據處理的工作流程如下:待處理的數據通過前端數據傳輸接口(光口)在前端FPGA2進行處理,通過FPGA之間的高性能數據傳輸通道(LVDS)發送到后端的FPGA進行進一步處理,最后通過后端FPGA4傳輸到后向數據傳輸端口。4片FAGA實現流水線并行,能夠很好的滿足片上多核處理器并行性要求。
3 開發板調試實驗過程和結果
在開發板制版和貼片結束之后,剩下的主要工作是完成開發板整體功能的調試和驗證。作者主要從電源配置電路、核心系統電路以及接口電路等方面對開發板的各功能模塊進行調試,并進行整體功能驗證。目前,已順利完成電源配置電路、4片FPGA互聯結構、FPGA菊花鏈的加載電路、存儲器接口電路等電路系統的調試實驗工作。硬件設計的功能驗證則由相關的硬件設計人員進行完成,開發板設計人員從旁輔助。開發板實物圖如圖9所示。
在測試電源管理模塊的過程中,采用了線性直流穩壓電源,型號是HK1000—11PEP(12V,18A)為開發板提供電源;采用了HP 33401A對開發板上個保險絲測試點進行各種電壓的測試,測試結果如表3所示 表3的數據表明電源管理模塊能夠穩定正常的工作。
因為開發板是集成4片超大規模的FPGA芯片,所以4片芯片之間的互聯能否正常通訊成為了本設計的關鍵芯片間互連是差分信號相互連接以完成通訊,并遵循Aurora Frame協議,在源芯片包鏈路傳輸接口端加入測試激勵模塊, 目的芯片包鏈路傳輸接口端加入監測器,其中設置數值比較模塊,使用Xilinx公司的Chipscope軟件觀測控制信號波形的正確性,并通過比較模塊測試數值正確性。圖lO為FPGA3芯片到FPGA4芯片數據傳輸圖,上半部分為發送端,下半部分為接收端,證明了FPGA芯片間通過GTX差分高速I()進行通訊的可行性。
至于FPGA菊花鏈的加載電路已經通過impact軟件成功燒寫Flash間接證明了鏈路能夠正常工作;存儲器接口電路則通過下載IP到開發板對應的FPGA芯片上,能成功地對存儲器進行簡單的讀寫數據。
4 結束語
本文設計并實現了基于4片Virtex-6 FPGA的NoC多核處理器原型芯片設計的驗證平臺。該平臺具有超大規模的邏輯資源和豐富的數據存儲帶寬和空間,片間基于LVDS標準的無縫連接,支持高吞吐率和高速實時的數據傳輸能力,能夠很好的滿足片上網絡(NoC)多核理器的要求。另外,該平臺采用開關電源與線性穩壓電源結合的方式,有效的保證了整個系統的供電_15]需要指出的是,系統設計時選用了多FPGA并行的基本設計構架,對未來研究片上網絡(NoC)并行計算也有重要意義。
評論
查看更多