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