29

Mar . 2024

AURIX™ TC4x 微控制器的並行處理單元(PPU)簡介

分享至

並行處理單元(PPU)是集成在英飛凌AURIX™ TC4x微控制器系列中的輔助處理器。PPU旨在卸載主CPU的信號處理、濾波和其他數學運算,從而為要求嚴格的應用程式(例如即時控制、感測器信號處理和軌跡規劃等)提供高計算能力和縮短執行時間,並且能支援實現簡單的神經網路演算法。

本文將簡要介紹PPU的內部結構、功能和應用領域。

1. PPU內部結構

圖1. TC4x微控製器示意框圖

圖1是TC4x 微控制器示意框圖,圖中右上角是PPU的簡化結構,由標量核(scalar core),向量核(vector core/SIMD core),一級緩存,及其它系統資源組成。


01. 標量核(Scalar Core):標量核用於執行大量的標量運算,以及任務調度。標量核支援多種算數運算和邏輯運算,還支援硬體浮點運算,從而實現更高的計算效率。另外,標量核提供豐富的硬體功能安全機制,可以輔助實現高功能安全等級的任務。


02. 向量核(Vector core/SIMD Core):向量核是 PPU 的另一個重要功能模組,專門用於執行向量運算。向量核支援多種向量算數運算、邏輯運算和專用信號處理,支援整型數和浮點運算,從而實現更高的計算效率。向量核還支援多級流水線和 SIMD(single instruction multiple data,單指令多資料)指令,對不同資料同時執行同樣的操作,通過並存執行多個向量運算來提高效率。


03. 一級緩存:一級緩存是PPU用於保存計算輸入和輸出資料的存儲空間。由於結構上和運算核緊密耦合,該緩存可以在PPU 的執行過程中對狀態進行快速讀寫,並且有EDC/ECC保護,從而實現更高的執行效率和更高的可靠性。


04. 其它系統資源:包括用於快速資料搬運的DMA,共用記憶體區等等。

2. SIMD和VLIW 指令

2.1 SIMD(Single Instruction Multiple Data)指令

SIMD(Single Instruction Multiple Data)指令是一種並行指令,可以同時對多個不同資料進行相同的操作。這種指令可以大幅提高計算效率,特別是在執行向量運算時效果更為明顯。


PPU 的 SIMD 指令集包括多種運算指令,如數學運算、邏輯運算等。這些指令都是並行指令,可以同時對多個資料進行操作,從而大幅提高計算效率。例如,PPU 的 SIMD 加法指令可以一次性對多個資料進行加法運算,從而實現更高的計算速度。


下面是一個示例,假設有兩個向量 A 和 B,每個向量包含 16 個 16 位元整數 ,要計算 A 和 B 的和。如果使用不支援SIMD指令的標量核,代碼示例如下,需要進行16次迴圈運算,將不同的A[i]、B[i] 資料依次順序進行加法操作,相當費時。

由此可見,支援SIMD指令的PPU在進行向量運算時,通過降低同樣運算的處理次數,從而有效節省運算時間,提高處理效率。

而如果使用支援SIMD指令的 PPU進行運算,則可以一次完成,假設PPU位寬是256bit(=16*16bit):

2.2 VLIW(Very Long Instruction Word)指令

VLIW(Very Long Instruction Word)是一種處理器的並行架構,允許在單個時鐘週期內,由處理器的不同部件同時執行多個操作。

例如,如果要執行兩個複向量A和B的乘法 ,結果存儲在向量C中。

C語言實現如下:

如果在標量核上運算,會循序執行下列代碼,並迴圈多次:

PPU內的向量核有三個處理單元,包括兩個浮點運算器,和一個讀取/存儲部件用於將RAM中的資料搬運到核內寄存器。這三個部件可以同時運行,形成指令層面的並行機制,從而實現VLIW指令。


上列代碼由PPU處理,可以將第4和第5行的乘法運算分別分配給兩個浮點運算器同時處理,如下紅框所示。而在下個運算速度內,第7,8,9行的指令可以分配給三個部件同時處理,如下藍框所示。從而將原先需要12條運算速度運行的代碼縮短到9條(12-1-2=9)運算速度,提高執行效率。

3. 應用場

圖2. PPU實現的算法

PPU適用于不同應用場景,圖2 列出了三種較常見的演算法。第一種是將時域信號轉變為頻域信號,以提取頻率資訊的快速傅裡葉變換(FFT)。FFT 在數位信號處理中得到了廣泛的應用,如音訊信號處理、毫米波雷達信號處理等。

第二種是多層感知演算法,它是一種基於人工神經網路的機器學習演算法,可以用於分類、回歸和模式識別等應用。MLP 由多個神經元組成,每個神經元都包含多個輸入和一個輸出。MLP 通過學習輸入和輸出之間的映射關係,從而實現對新資料的預測和分類。MLP 在機器學習和資料採擷中得到了廣泛的應用。除此之外,MLP 還可以用於控制和優化問題。例如,MLP 可以用於控制系統和程序控制,如感測器信號處理分類、輔助駕駛、自動駕駛等。


第三種是卡爾曼濾波,該演算法是一種基於狀態空間模型的濾波器,可以用於估計未知變數的狀態和參數。卡爾曼濾波通過利用系統的動態模型和感測器的觀測值,遞迴地對狀態進行估計和預測,從而實現對系統的狀態進行優化和控制。卡爾曼濾波在自動控制和信號處理中得到了廣泛的應用,例如,卡爾曼濾波可以用於目標跟蹤、路徑規劃演算法等。

開發工具

新思科技(Synopsys)為PPU提供了豐富的開發工具資源【1】,包括Metaware編譯器及軟體元件,下列表格列出了相關工具元件:

上述PPU開發工具鏈,除了新思科技可提供外,Hightec 在提供TC4x TriCore™ CPU編譯器的同時,也集成了Metaware編譯工具,及相關軟體元件【2】,形成完整的TC4x開發環境工具鏈。該工具鏈符合ISO26262 ASIL D,能説明客戶實現快速、可靠、高功能安全等級的基於TC4x微處理器的汽車軟體發展。


此外,Tasking也開發了PPU的編譯器,並集成在新的SmartCode開發環境中。

5. 總結

總的來說,PPU是一個性能強大的處理器,內部包含標量核、向量核、一級緩存和其它系統資源 等,可以實現高速數位濾波、向量矩陣運算、浮點運算、簡單的神經網路等,為要求嚴格的即時計算應用提供了顯著的性能優勢。PPU為Tricore 主核卸載了複雜的信號處理和數學運算,使得執行時間更快,而其高可配置性和專用硬體資源使其非常適用于各種應用程式。使用戶有更多選擇餘地,使用不同核構架實施不同性質的運算。


參考文獻:

1. `Synopsys ARC MetaWare Toolkit for Infineon AURIX TC4x’

https://www.synopsys.com/dw/ipdir.php?ds=sw_metaware-aurix

2. `AURIX TC4x: Safety Solutions from HighTec’

https://hightec-rt.com/en/aurixtc4

3. `TASKING supports application development for Infineon's new AURIX™ microcontrollers’

https://www.tasking.com/content/tasking-supports-application-development-infineons-new-aurix-microcontrollers


文章來源:英飛凌汽車電子生態圈

半導體元件詢問單
Inquiry Form
如您對本公司產品有任何的問題(產品報價、技術諮詢、產品文件、樣品索取、合作代理…等),都可以透過諮詢表單跟我們聯絡,我們將有專人回覆。
隱私權暨個人資料保護聲明

STEP

01
!

有標示 欄位為必填,請確實填寫謝謝。

諮詢需求
市場應用

↑若無法選擇適當的產業類別,請直接在此欄輸入您的所屬產業

↑請直接在此欄輸入您的所屬市場應用

諮詢商品

↑若無法搜尋到您要諮詢的品牌,請直接在此欄輸入品牌名稱

↑若無法搜尋到您要諮詢的料號,請直接在此欄輸入料號

備註內容

下一步,聯繫資料填寫

STEP

02
!

有標示 欄位為必填,請確實填寫謝謝。

公司名稱
所屬部門
聯絡人
職稱
聯絡電話
電子信箱
聯絡地址
交貨地址
是否為貿易商
驗證碼
訂閱電子報
Subscribe to Newsletter
!

有標示 * 欄位為必填,請確實填寫謝謝。

公司名稱
所屬部門
姓名
職稱
聯絡電話
選擇電子報語系
電子信箱
驗證碼