有多個處理單元的SoC器件目前是產品設計鏈上的重要一環。本文綜合各種因素評估了不同處理單元的優缺點,并通過衛星無線電接收器的設計實例幫助開發人員理解SoC所涉及處理任務之間的復雜平衡并有效掌握系統功能的劃分。
在準備開發目前越來越復雜的便攜式系統時,設計人員面對的最大挑戰之一就是采用什么樣的處理器組合來實現最優化的“3P”指標,即系統性能最高、價格最低及功耗最小。系統級芯片(SoC)集成使得今日的創新成為可能,但它常常涉及把不同的處理器單元結合在單一的器件之上。這些單元可以包括可編程功能,如通用微處理器(通常是RISC)、DSP、FPGA和加速器,而且還可能有固定功能的加速器。由于這些單元都可以專用器件形式獲得,因此對設計人員來說,在它們之中進行全面的性能評估,進而決定以最有效的方式組合使用它們,有可能是一項相當困難的工作。
處理單元的優缺點分析
在實現多內核處理器之前,在RISC和DSP之間進行挑選曾相對較為簡單。如果大量的系統處理工作和數據有關,那么采用RISC,即使信號處理會受些損失。如果大量的處理工作和信號有關,那么采用DSP,并力爭獲得差強人意的控制和
各種處理單元的基本優點和缺點概括在表1之中。通用RISC處理器專為數據處理而優化,很容易使用而且很靈活,其成本、功耗和性能都可接受。DSP為實時信號而優化,它們處理實時信號所需的功耗和成本通常比RISC低,不過,它們常常更難使用。
可編程加速器或半可編程處理器可設計用來數據或信號處理。一個例子就是用于通信系統的Viterbi處理器,對Viterbi編碼或解碼來說它是完全可編程的,但對任何其它功能來說毫無用處。就其功能而言,一個可編程加速器的成本、功耗總是比RISC或DSP要低,而性能要高,但從本質上講,它稍欠靈活、更難使用,而且對缺陷(bug)的容忍度低,不容易更改。
表1處理器單元優缺點對比
用于數據或信號處理的固定功能加速器(一般為ASIC)只能完成一種特定的功能。固定功能加速器總是一種成本最低、功耗最低、性能最高的解決方案,但它們缺少任何程度的靈活性。一旦ASIC設計出來并調試通過,到了系統開發人員手里,它會變得非常易用。但是其設計和調試與可編程器件相比非常困難,而且以后不可能進行再編程。
劃分系統處理功能
盡管在各種處理單元之中做決定是一件復雜的工作,但有一個可行的選擇程序,就是把各種系統功能劃分到各種處理單元之中。把一個系統的處理需求映射到一個現有的多內核SoC之中,與通過映射處理需求創建一個新多內核SoC有所不同。然而,其過程是類似的。
為了把該系統映射到一個現有的SoC之中,系統設計人員必須確定該系統方案以及它所針對市場的幾個細節。在這當中包括產品特性和算法組件,以及添加特性和解決bug的策略,不管是在設計期間還是在整個產品壽命期內。一旦這些細節確定,系統功能必須確定成信號或數據處理任務,隨后再分成三個性質不同的類。
明確并將保持不變的功能:這些功能包括離散余弦變換(DCT)或快速傅立葉變換(FFT),它們將不會再有任何變化,而且已問世足夠長的時間,因此所有bug都已消除。這些功能使用固定功能加速器或最優化。
關鍵字:SoC RISC DSP FPGA 功能劃分 性能評估
明確但會有一定變化的功能:這些功能有一定程度的靈活性。例如,盡管單一的FFT可以由一個ASIC來處理,但將多個相關的FFT重新組合成一系列實現方案的能力會需要一種可編程的加速器。
不確定且可變化的新功能:滿足這些需求的處理器單元是可編程的RISC、DSP和FPGA。雖然設計人員也許不知道這些不確定或新特性是什么,但有必要測度應對預計需求所需的大致性能和存儲器。
當系統功能已經被分解成這三大類別時,系統可以映射到一個現有的SoC器件。整個程序分成以下步驟:
1.確定最終系統完整的特性和功能清單。如果可能的話,包括對新特性和功能的估計,它們可以在采用該SoC產品的壽命期內隨時加入。
2.把該特性和功能清單分成數據處理部分和信號處理部分。
3.把每個清單(數據和信號)中的功能分成三類:a.在產品的壽命期內明確并將保持不變的功能;b.在產品的壽命期內明確但允許某些變化的功能;c.不確定且可變化的新功能。
4.估計每個清單中每項所需的性能。
5.估計每個清單中每項所需的存儲器。
6.分配:a.適當的明確功能給可行的固定功能加速器;b.其余的明確功能給可行的可編程加速器;c.不確定且可變化的新功能給適當的可編程器件(RISC用于數據處理,DSP用于信號處理)。
最后一步的目標是盡可能多地利用加速器,并把靈活性和裕度留給可編程單元處理。顯然,對明確的、可有一些變化的和不確定功能的分配在一定程度上取決于相關SoC能提供什么硬件。把一個系統映射到一個新的SoC,而不是一個現有的SoC,有可能會引起較長的產品規劃時間,所以該設計人員必須解決的問題將經常和一系列基于該新器件的產品有關。設計人員需要確定哪些算法組件更好理解,沒有缺陷也不需要改變;還需要確定在整個設計期間或產品系列中,系統的哪些部分有可能改變。在涉及到功能分配(步驟6)時,一個新方案的設計人員可以非常肯定地將明確功能(步驟3的a)分配給固定功能單元,可有些變化的功能(步驟3的b)分配給可編程加速器,把不確定的、變化的新功能(步驟3的c分配給處理數據的RISC和處理信號的DSP)。