AURIX? TC4x微控制器的并行處理單元(PPU)簡(jiǎn)介
英家MCU之AURIX?
并行處理單元(PPU)是集成在英飛凌AURIX? TC4x微控制器系列中的協(xié)處理器。PPU旨在卸載主CPU的信號處理、濾波和其他數學(xué)運算,從而為要求嚴格的應用程序(例如實(shí)時(shí)控制、傳感器信號處理和軌跡規劃等)提供高計算能力和縮短執行時(shí)間,并且能支持實(shí)現簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò )算法。
本文將簡(jiǎn)要介紹PPU的內部結構、功能和應用領(lǐng)域。
1.PPU內部結構
圖1 TC4x微控制器示意框圖
圖1是TC4x 微控制器示意框圖,圖中右上角是PPU的簡(jiǎn)化結構,由標量核(scalar core),向量核(vector core/SIMD core),一級緩存,及其它系統資源組成。
01
標量核(Scalar Core):標量核用于執行大量的標量運算,以及任務(wù)調度。標量核支持多種算術(shù)運算和邏輯運算,還支持硬件浮點(diǎn)運算,從而實(shí)現更高的計算效率。另外,標量核提供豐富的硬件功能安全機制,可以輔助實(shí)現高功能安全等級的任務(wù)。
02
向量核(Vector core/SIMD Core):向量核是 PPU 的另一個(gè)重要功能模塊,專(zhuān)門(mén)用于執行向量運算。向量核支持多種向量算術(shù)運算、邏輯運算和專(zhuān)用信號處理,支持整型數和浮點(diǎn)運算,從而實(shí)現更高的計算效率。向量核還支持多級流水線(xiàn)和 SIMD(single instruction multiple data,單指令多數據)指令,對不同數據同時(shí)執行同樣的操作,通過(guò)并行執行多個(gè)向量運算來(lái)提高效率。
03
一級緩存:一級緩存是PPU用于保存計算輸入和輸出數據的存儲空間。由于結構上和運算核緊密耦合,該緩存可以在PPU 的執行過(guò)程中對狀態(tài)進(jìn)行快速讀寫(xiě),并且有EDC/ECC保護,從而實(shí)現更高的執行效率和更高的可靠性。
04
其它系統資源:包括用于快速數據搬運的DMA,共享內存區等等。
2.SIMD和VLIW指令
2.1 SIMD(Single Instruction Multiple Data)指令
SIMD(Single Instruction Multiple Data)指令是一種并行指令,可以同時(shí)對多個(gè)不同數據進(jìn)行相同的操作。這種指令可以大幅提高計算效率,特別是在執行向量運算時(shí)效果更為明顯。
PPU 的 SIMD 指令集包括多種運算指令,如數學(xué)運算、邏輯運算等。這些指令都是并行指令,可以同時(shí)對多個(gè)數據進(jìn)行操作,從而大幅提高計算效率。例如,PPU 的 SIMD 加法指令可以一次性對多個(gè)數據進(jìn)行加法運算,從而實(shí)現更高的計算速度。
下面是一個(gè)示例,假設有兩個(gè)向量 A 和 B,每個(gè)向量包含 16 個(gè) 16 位整數 ,要計算 A 和 B 的和。如果使用不支持SIMD指令的標量核,代碼示例如下,需要進(jìn)行16次循環(huán)運算,將不同的A[i]、B[i] 數據依次順序進(jìn)行加法操作,相當費時(shí)。
而如果使用支持SIMD指令的 PPU進(jìn)行運算,則可以一次完成,假設PPU位寬是256bit(=16*16bit):
由此可見(jiàn),支持SIMD指令的PPU在進(jìn)行向量運算時(shí),通過(guò)降低同樣運算的處理次數,從而有效節省運算時(shí)間,提高處理效率。
2.2 VLIW(Very Long Instruction Word)指令
VLIW(Very Long Instruction Word)是一種處理器的并行架構,允許在單個(gè)時(shí)鐘周期內,由處理器的不同部件同時(shí)執行多個(gè)操作。
例如,如果要執行兩個(gè)復向量A和B的乘法 ,結果存儲在向量C中。
C語(yǔ)言實(shí)現如下:
如果在標量核上運算,會(huì )順序執行下列代碼,并循環(huán)多次:
PPU內的向量核有三個(gè)處理單元,包括兩個(gè)浮點(diǎn)運算器,和一個(gè)讀取/存儲部件用于將RAM中的數據搬運到核內寄存器。這三個(gè)部件可以同時(shí)運行,形成指令層面的并行機制,從而實(shí)現VLIW指令。
上列代碼由PPU處理,可以將第4和第5行的乘法運算分別分配給兩個(gè)浮點(diǎn)運算器同時(shí)處理,如下紅框所示。而在下個(gè)指令周期內,第7,8,9行的指令可以分配給三個(gè)部件同時(shí)處理,如下藍框所示。從而將原先需要12條指令周期運行的代碼縮短到9條(12-1-2=9)指令周期,提高執行效率。
3.應用場(chǎng)景
PPU適用于不同應用場(chǎng)景,圖2 列出了三種較常見(jiàn)的算法。第一種是將時(shí)域信號轉變?yōu)轭l域信號,以提取頻率信息的快速傅里葉變換(FFT)。FFT 在數字信號處理中得到了廣泛的應用,如音頻信號處理、毫米波雷達信號處理等。
圖2 PPU實(shí)現的算法
第二種是多層感知算法,它是一種基于人工神經(jīng)網(wǎng)絡(luò )的機器學(xué)習算法,可以用于分類(lèi)、回歸和模式識別等應用。MLP 由多個(gè)神經(jīng)元組成,每個(gè)神經(jīng)元都包含多個(gè)輸入和一個(gè)輸出。MLP 通過(guò)學(xué)習輸入和輸出之間的映射關(guān)系,從而實(shí)現對新數據的預測和分類(lèi)。MLP 在機器學(xué)習和數據挖掘中得到了廣泛的應用。除此之外,MLP 還可以用于控制和優(yōu)化問(wèn)題。例如,MLP 可以用于控制系統和過(guò)程控制,如傳感器信號處理分類(lèi)、輔助駕駛、自動(dòng)駕駛等。
第三種是卡爾曼濾波,該算法是一種基于狀態(tài)空間模型的濾波器,可以用于估計未知變量的狀態(tài)和參數??柭鼮V波通過(guò)利用系統的動(dòng)態(tài)模型和傳感器的觀(guān)測值,遞歸地對狀態(tài)進(jìn)行估計和預測,從而實(shí)現對系統的狀態(tài)進(jìn)行優(yōu)化和控制??柭鼮V波在自動(dòng)控制和信號處理中得到了廣泛的應用,例如,卡爾曼濾波可以用于目標跟蹤、路徑規劃算法等。
4.開(kāi)發(fā)工具
新思科技(Synopsys)為PPU提供了豐富的開(kāi)發(fā)工具資源,包括Metaware編譯器及軟件組件,下列表格列出了相關(guān)工具組件:
表1 新思科技提供的PPU工具組件
軟件組件 | 描述 |
MetaWare開(kāi)發(fā)工具包 | 該工具包包含支持內核和應用程序開(kāi)發(fā)編程的C/C++和OpenCL C編譯器。它還包括一個(gè)調試器和nSIM PPU模擬器,用于調試、分析和優(yōu)化內核和應用程序。 |
Simulink?基于模型設計的支持 | 從MATLAB模型自動(dòng)生成優(yōu)化代碼,以便在PPU上執行。 |
DSP和數學(xué)庫 | 這些是為在PPU上執行而優(yōu)化的庫,包括矢量DSP和矢量線(xiàn)性代數庫。 |
MetaWare神經(jīng)網(wǎng)絡(luò )SDK | 該SDK包括一個(gè)神經(jīng)網(wǎng)絡(luò )編譯器,用于編譯和運行為PPU優(yōu)化的人工智能模型。 |
AUTOSAR復雜設備驅動(dòng)程序(CDD)和底層軟件驅動(dòng)(LLD) | CDD為AUTOSAR應用程序的軟件組件(SWC)提供PPU服務(wù)。 LLD是一個(gè)底層軟件驅動(dòng),用于處理TriCore和PPU之間的通信。 |
PPU分配器 | 這是用于在TriCore處理器核心之間進(jìn)行通信的PPU的靜態(tài)庫。 |
上述PPU開(kāi)發(fā)工具鏈,除了新思科技可提供外,Hightec 在提供TC4x TriCore? CPU編譯器的同時(shí),也集成了Metaware編譯工具,及相關(guān)軟件組件,形成完整的TC4x開(kāi)發(fā)環(huán)境工具鏈。該工具鏈符合ISO26262 ASIL D,能幫助客戶(hù)實(shí)現快速、可靠、高功能安全等級的基于TC4x微處理器的汽車(chē)軟件開(kāi)發(fā)。
此外,Tasking也開(kāi)發(fā)了PPU的編譯器,并集成在新的SmartCode開(kāi)發(fā)環(huán)境中。
5.總結
總的來(lái)說(shuō),PPU是一個(gè)性能強大的處理器,內部包含標量核、向量核、一級緩存和其它系統資源 等,可以實(shí)現高速數字濾波、向量矩陣運算、浮點(diǎn)運算、簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò )等,為要求嚴格的實(shí)時(shí)計算應用提供了顯著(zhù)的性能優(yōu)勢。PPU為T(mén)ricore 主核卸載了復雜的信號處理和數學(xué)運算,使得執行時(shí)間更快,而其高可配置性和專(zhuān)用硬件資源使其非常適用于各種應用程序。使用戶(hù)有更多選擇余地,使用不同核構架實(shí)施不同性質(zhì)的運算。
評論