數位訊號處理是目前實現基本設備和服務所需的關鍵技術,這些基本設備和服務包含電信網路、行動通訊、數位音訊、串流影音、工業馬達控制與機器視覺、車載駕駛輔助、高效能雷達以及政府資訊情報等。

為了滿足更複雜的系統要求、降低延遲以及提高通道容量,專用的數位訊號處理器(DSP)已經發展為傳輸率高達數十GFLOPS的多核心元件,可單獨或以大型多DSP組合的形式使用。

儘管如此,進一步發展的需求仍很大,設備設計人員正努力提高系統整合度以減少元件數量、強化可靠度,並降低成本。而為了滿足相關要求,DSP擴展版本現可整合於多種平台,包括從ARM Cortex-M4小型嵌入式微控制器(MCU)至FPGA以及可編程系統單晶片(SoC)等。此外,當設計人員面對唯有透過高度平行化才能滿足需求的密集處理,或如果系統需要高效能介面或客製加速器時,這些高效能的可配置元件現正成為理想選擇。

新興DSP平台

可配置SoC整合大量帶有系統功能的DSP模組,包括處理器、記憶體、周邊裝置以及可編程邏輯元件等。例如,賽靈思(Xilinx) Zynq-7000 All Programmable SoC擁有多達2,020個DSP分割(slice),分別包括一個25x8的乘法器、48位元累加器以及相關功能。此外,該晶片上還有一個雙核心ARM Cortex-A9 MPCore應用處理單元、標準高速周邊裝置,包括USB 2.0、Gigabit乙太網路,以及LPDDR2和DDR3等動態記憶體介面。

另一方面,多核心處理器Zynq MPSoC可提供更多資源,包含多達3,528個DSP分割(每個分割包含一個27x18放大器)及外加PCIe Gen2、USB3.0、SATA 3.1和DisplayPort周邊裝置,並可支援DDR4動態記憶體。而MPSoC架構也整合雙核心ARM Cortex-R5 MPCore即時處理核心、四核心A53及ARM Mali-400 MP2繪圖處理器(GPU)和H.264/H.265視訊編解碼器。

Zynq-7000和MPSoC高效能ARM處理器還受益於高度整合的NEON多媒體加速技術、FPGA DSP分割、整合的周邊裝置,以及整合於UltraScale+ MPSoC中多達1143,000個邏輯單元。藉由上述資源,該元件能滿足高度平行的處理以及支援廣泛的系統整合需要,並超越傳統多核心DSP水準。 對設計團隊而言,現在正是超越大型多DSP開發板效能極限,讓傳統DSP躍升至All Programmable SoC平台的重大時刻。例如,利用這一技術,Xilinx的工程師協助了一家客戶重新設計原來包含32個傳統DSP晶片的雷達主機板,而新設計的平台僅需兩塊可編程設計元件。

C/C++級硬體合成

以往進行可編程FPGA和SoC設計時,工程師必須具備硬體設計技能來處理暫存級(RTL)設計,而這讓原本掌握軟體技能的設計團隊無法充份發揮額外的功能和整合優勢。圖1顯示簡化軟體開發以及效率和靈活度之間的權衡。圖中比較傳統軟體可編程處理器以及在RTL或使用軟體定義設計流程的可編程元件。

20160920 Xilinx TA31P1 圖1:軟體定義流程讓嵌入式軟體開發人員充分瞭解All Programmable SoC元件的效能潛力

設計傳統的DSP解決方案一直被視為是安全的解決方案。然而,隨著高效能應用要求日益提升,高效能DSP的設計也越來越難以因應多核心架構的要求。因此,透過C/C++設計環境提供類似ASSP的程式設計體驗,可協助系統和嵌入式軟體工程師運用All Programmable SoC打造多處理系統。

類似ASSP的編程體驗

例如,賽靈思的SDSoC就是此開發環境的實例,軟體工程師無需使用傳統的FPGA工具或硬體設計語言(HDL),即可為可編程元件開發C/C++應用。此外,它也能妥善管理晶片處理、DSP資源,以及可編程設計硬體和記憶體,進而將系統效能最大化。

該環境包括系統級特性分析器,能在設計初期瞭解系統整體效能和功耗。圖2顯示特性分析器如何配合SDSoC流程。該特性分析器可快速估算系統效能,並指出哪些C/C++函數可透過可編程邏輯加速。SDSoC則隨後透過編碼報告軟體週期、預估資料傳輸時間,並監控包含快取、記憶體和匯流排利用率等硬體應用情況。

該特性建立在賽靈思SDK的特性分析功能上,並在Zynq平台上執行完整設計的軟硬體效能測量。快速估算工具則有助於使用者迅速評估一個或多個函數從軟體轉移至硬體所帶來的效能影響,並使軟體開發人員以此方式獨立加速各個C/C++函數,從而避免軟硬體團隊間花費大量互動時間,並且能盡量減少可編程邏輯進行軟體加速所需的反覆運算次數。相較於數小時或更長的硬體操作時間,這種方法僅需數分鐘便可對修改所造成的影響進行評估。

20160920 Xilinx TA31P2 圖2:以PC樣本為基礎的非侵入性特性分析器

如圖3所示,另一個C/C++全系統最佳化編譯器,主要針對SoC的ARM處理器和可編程邏輯及連接功能。此編譯器產生成的HDL程式碼,針對延遲、頻寬及硬體利用率進行了最佳化。而系統級特性分析器與系統最佳化編譯器的結合,相對於以軟體為核心而不採用硬體加速的解決方案,可提升整體效能至上百倍。

20160920 Xilinx TA31P3 圖3:全系統編譯器能控制效能、傳輸率和延遲,以減少設計反覆的時間

擁有FPGA設計技術的系統架構師和平台開發人員可利用SDSoC的優勢為嵌入式軟體開發人員打造最佳應用平台。該工具利用自動化系統連接產生等特性,協助架構師快速瞭解Zynq處理系統、記憶體與可編程邏輯加速器間的最佳互連結構。

此外,架構師能利用賽靈思Vivado Design Suite的SDSoC打造特定應用的平台、配置如RTL描述等傳統FPGA IP,並可作為可用的C語言函式庫,進而實現重複利用以提高設計生產力。

軟/硬體系統效能分析

工程師可利用SDSoC的追蹤工具以瞭解其設計在選擇不同工作負載、軟硬體分割和系統設計下的執行情形。SDSoC Trace可提供詳細的追蹤說明圖,包含應用在執行時的系統事件、執行在處理器、硬體加速器上的軟體,以及系統內部的資料傳輸連結進行追蹤。而相關事件以圖形化的方式提供時間軸說明,且相對於事件記錄,此追蹤能呈現一定時間內的互動事件,並有助於進一步瞭解軟硬體系統中的應用效能。

圖4a顯示SDSoC Trace如何自動在硬體系統中插入監控器;此外,追蹤儀錶也自動插入於軟體系統中。圖4b則展示軟硬體追蹤串流,以凸顯出不同類型的事件。

20160920 Xilinx TA31P4 圖4a:SDSoC Trace啟動後能自動插入必要的監控器和儀控功能 20160920 Xilinx TA31P5 圖4b:Trace視覺化圖形展示軟硬體系統中的互動事件

開發板設計支援

藉由Zynq All Programmable SoC為基礎開發板的ZC702、ZC706加上合作廠商和特定市場所提供的專用平台,如Zedboard、MicroZed、ZYB與影音和影像開發套件等,SDSoC使軟體工程和開發板設計可同時發揮效用。此外,每個開發板皆提供支援套件(BSP),可使SDSoC實現抽象平台的中介資料,為嵌入式軟體開發人員和系統架構師提進一步提升生產力,並加速產品開發時程。

結論

結合ARM/NEON應用處理資源與大量DSP分割、FPGA架構的All Programmable SoC和MPSoC元件,可望使DSP效能超越目前的專用處理器。最新軟體定義開發環境擁有讓軟體工程師能獨立發揮新型元件的優勢,同時為系統架構師與平台開發人員提供專家級的使用案例,使高效能訊號處理展現前所未有的簡便。