摘要:異構雙核SoC采用SPARC V8處理器加專用DSP的架構,根據其應用特點,設計了SPARC V8處理器與專用DSP之間互斥通訊機制。并完成了SPARC V8處理器的狀態控制設計與優化、外部存儲控制器的接口優化設計,以及SoC的整體功能驗證。FPGA實驗結果表明,異構雙核SoC功能正確可靠,有效地提高了系統的效能比。
關鍵詞:異構雙核;SoC;核間通信;驗證
DOI: 10.3969/j.issn.1005-5517.2013.1.012
引言
從開發并行性的級別來看,指令級并行是一種普遍存在于各類程序中的細粒度并行性,隨著片上集成度的不斷提高,再增加動態指令窗口的體積和發射寬度將無助于高主頻的實現,開發更高的ILP,以獲得整體性能的提升所需的硬件設計和驗證開銷已很難承受。單芯片多處理器(CMP)是近年來微處理器體系結構研究的熱點之一,它很好地解決了硬件設計和驗證復雜度提高的問題。在一些特殊應用領域使用通用的RSIC處理器來完成,需要較高的性能才能達到其基本要求,系統的效能比很低。如果采用RSIC核加專用DSP核的異構雙核結構,普通控制部分由RSIC核實現,特殊功能部分能夠采用專用的DSP來實現,可有效地提高系統的效能比,可明顯提升系統性能,同時有效降低整個系統的功耗。

異構雙核SoC設計與實現
異構雙核SoC結構
根據彈載測控系統的應用特點,采用RSIC處理器核加梯形圖解算專用DSP的異構雙核結構設計了SoC,如圖1所示。RSIC處理器核主要完成控制功能,負責系統的啟動,主程序的運行,狀態的查詢與傳輸,功能塊的運算,以及中斷的處理。專用DSP核主要完成梯形圖的解算、IO狀態表的刷新等工作。
RSIC處理器核采用經過多款芯片驗證的SPARC V8處理器核。處理器系統由整數處理單元、浮點處理單元、Cache子系統、中斷控制器、串口、定時器、看門狗、調試支持單元DSU等組成。在32KB指令Cache、16KB數據cache的配置下,采用Dhrystone2.1得出的運算性能可以達到0.86MIPS/MHz。
DSP核采用PLC梯形圖解算系統,該系統包含了HLS解算單元、定時器、串口、地址譯碼單元、PTO、PWM、SPI等模塊構成。
SoC運行方式
異構雙核SoC的主要運行方式如圖2所示,主程序在SPARC V8處理器中運行,對整個系統進行初始化操作,然后進入主程序,根據啟動策略配置進行相應的模塊初始化,接著進入無限循環調度程序。在無限循環調度程序中,判斷是否運行專用DSP;如果運行專用DSP,則暫停SPARC V8處理器的運行,將總線控制權交給專用DSP完成PLC掃描程序的運行、IO狀態的刷新、特殊功能處理,專用DSP完成一次順序掃描后將控制權交還SPARC V8處理器,SPARC V8處理器接著完成相應的通信處理,按IO映射表更新外部狀態;如果不運行專用DSP,SPARC V8處理器直接執行IO映射及相應的通信處理,按IO映射表更新外部狀態,然后重新判斷是否運行專用DSP,進行下一次循環。
雙核通信機制
雙核通信機制一般有郵箱、DMA、共享存儲器三種通信機制,三種不同的通信機制在通信開銷、通信帶寬等方面各有優缺點,共享存儲器機制的優點是通信開銷小、缺點是通信帶寬小,DMA機制的優點是通信帶寬大,缺點是通信開銷大,而郵箱機制相對共享存儲器機制、DMA機制具有折中的性能,通信開銷比共享存儲器方式大,帶寬比DMA方式小,但在傳輸少量數據時耗費的時間更短。
由于應用的特性,SPARC V8處理器核和專用的DSP是互斥的工作方式,在一個時刻只有一個核在運行,只有一個核訪問共享存儲器,不會出現訪問沖突,且核間的數據傳輸量較小,因此特別適合采用共享存儲器的核間通信機制,同時可以去除訪問仲裁邏輯,減小了額外通信開銷。
SPARC V8處理器核改進與優化
為了更好地實現雙核互斥工作方式,必須對SPARC V8處理器做必要的改進與優化。采用兩種方案實現了SPARC V8處理器核的狀態控制,并根據邏輯開銷、功耗優化、驗證等方面決定最終的實現方式。
暫停流水控制方式——當處理器寫命令字將總線控制權交給DSP時,DSP發送請求給仲裁邏輯,仲裁邏輯將處理器流水暫停,將總線控制權交給DSP,DSP完成操作后,將自己掛起并發送消息通知仲裁邏輯,仲裁邏輯將總線控制權交還給處理器,然后恢復處理器流水操作。
暫停時鐘控制——當處理器寫命令字將總線控制權交給DSP時,DSP發送請求給仲裁邏輯,仲裁邏輯暫停處理器流水線時鐘,然后將總線控制權交給DSP,DSP完成操作后,將自己掛起并發送消息通知仲裁邏輯,仲裁邏輯將總線控制權交還給處理器,開啟流水線時鐘,恢復處理器操作。
暫停處理器流水方式實現簡單,易于驗證,但時鐘仍在翻轉,時鐘樹上還會產生功耗。暫停時鐘的方式能夠將處理器子系統的動態功耗降到最小,但時鐘控制復雜,驗證難度大,通過功耗分析,采用暫停時鐘的方式能夠降低總功耗的3%。綜合考慮實現和驗證難點,決定采用暫停流水控制方式實現雙核互斥。
存儲器控制器優化
彈測系統中的外設種類繁多,接口的時序千差萬別,為了更好地提高系統的靈活性和可靠性,有必要優化存儲器控制器的IO訪問接口時序。根據外設相應時間的不同,修改IO訪問時序為用戶可配置,可以根據外設的實際時序,在訪問前即時修改相應的設置,將訪問時間配置為合理的值,盡量減小訪問開銷,提高整體性能。

異構雙核SoC的驗證
SoC芯片的驗證是一項比較具有挑戰性的工作,本SoC采用了IP復用的設計技術,大多數模塊是經過驗證的成熟IP,只需要重點驗證修改過的模塊以及模塊間互連的驗證。采用了層次化的驗證方法分別對模塊級、子系統級、系統級進行驗證。對模塊進行驗證時,采用可重用的模塊級驗證平臺,驗證存儲器控制器的功能;子系統級驗證采用已開發的基于覆蓋率驅動的約束隨機驗證平臺,對增加流水線控制的SPARC V8處理器子系統進行功能驗證,重點驗證了流水線的暫停和恢復功能是否正確。系統級驗證重點驗證了SPARC V8處理器子系統與DSP子系統的接口和通信,以及仲裁邏輯的正確性。
同時開發了基于Xilinx Virtex 4 XC4LX160的FPGA原型驗證板對整個系統進行了更全面的功能驗證,包括了實際系統可能遇到的中斷、功能塊調用,以及其不同的組合情況等來充分驗證系統的正確性。
結束語
本文給出的異構雙核SoC已完成RTL設計,搭建了相應的驗證平臺,采用軟硬件協同以及FPGA驗證原型的方法驗證了SoC的功能正確性,正在采用SMIC 0.18μm CMOS工藝進行ASIC設計。
參考文獻:
[1] 任艷穎,王彬.IC設計基礎[M].西安:電子科技大學出版社,2003
[2] 劉近光,梁滿貴.多核多線程處理器的發展及其軟件系統架構[J].微處理機,2007,28,(1):1-3
[3] 梁超,王進祥,張慶利.一種異構型的雙核SoC平臺[J].微處理機,2008,(3)
[4] 張立超,林平分.基于LEON開源微處理器的雙核SoC平臺構建[J].電子元器件應用,2008,10,(6):48-50
[5] Ohara M, Inoue H, Sohda Y, et al. MPI Microtask for Programming the Cell Broadband Engine Processor[J]. IBM Syst J, 2006, 45(1): 85-102