【ATU Book-S32V系列】APEX 基礎架構

一.   概敘

前文回顧,從上一篇 APEX 新知介紹 說明 S32V234 作用以及核心角色 APEX 在 S32V234 所扮演的角色與功能。並以視頻展現 CPU 與 APEX 速度的差異。以下開始進入到 APEX 相關技術知識分享,如下圖 “APEX 技術指南-文章架構示意圖” 所示。
後續將從此流程圖介紹起,此次介紹章節為 “ APEX 基礎架構“ 

APEX 技術指南-文章架構示意圖

 

二.   APEX 基礎架構

APEX 是 S32V234 處理器中一顆相當重要的核心,其主要作用是利用硬體平行化架構,達到演算法加速之目的,以下章節將介紹 APEX 的硬體架構以及 APEX 核心是如何達到硬體加速

圖文出處 : NXP文件 - APEX Core Architecture and Programming.pdf

 

如上圖所示,一顆 NXP S32V234 處理器內將會搭配 2 APEX 的核心 (G2-APEX-642 ICP Core) 提供給我們使用與搭配。
其中 APEX 的正規核心名稱G2-APEX-642 ICP Core ,其中名詞可拆解成以下定義 :

G2   :  為第二世代的意思 ( 2nd generation)
642 :  為 64 個 CUs 與 2 個 ACP
ICP  :  為影像領域處理器 ( Image Cognition Processor )

APEX 的核心架構 是由兩大架構所組成,如下圖所示,APEX 核心架構圖
第一大架構為 APU (Array Process Unit) 矩陣運算單元,主要負責平行化處理,並配置 顆供使用。
第二大架構為 DMA( Direct Memory Access) 快速存取記憶體架構,主要負責資料與記憶體之間的傳輸

APEX 架構示意圖
圖文出處 : NXP文件 - APEX Core Architecture and Programming.pdf


在細談 APU 與 DMA 核心架構之前,我們必需認識原廠所提供一個 相當重要 的軟體架構層 ACF ( APEX Core Framework),如下圖所示。

ACF 與 APEX 架構示意圖

 

ACF 主要作用 為替使用者配置最佳的硬體資源
此軟體層是以自動生產代碼的方式,直接取代向硬體溝通的動作,並分配最佳的 APU 與 Memory 資源。至於 ACF 詳細使用介紹之後會以獨立文件的方式介紹。
回到之前所提及的主要核心架構之一的 APU ,也是硬體加速的關鍵核心

APU 架構示意圖
圖文出處 : NXP文件 - APEX Core Architecture and Programming.pdf

 

如上 APU架構示意圖,首先認識以下架構

(1)  CU (Computational Unit) 運算單元 : 為 APU專門設計的小型運算單元
(2)  ACP (Array Control Processor) 矩陣控制處理器 : 為專門控制與分配 CU 的一個處理器。
(3)  CMEM (Computational Memory) 運算處理記憶體 : 為 CU 所使用之記憶體,各 CU 配置 4KByte。
(4)  IMEM (Instruction Memory) 指令記憶體 : 為暫存指令類別的記憶體,並隨 ACP 配置於 CMEM。
(5)  DMEM (Data Memory) 資料記憶體 : 為暫存資料類別的記憶體,並隨 ACP 配置於 CMEM。

理解以上架構後,我們來探討 APU 硬體配置狀況吧!
APU 架構示意圖-2
圖文出處 : NXP文件 - APEX Core Architecture and Programming.pdf


所謂的 APU 是由 32CU 以及 4KByte 的記憶體 (CMEM) 大小所構成。
由 ACP 與 IMEM / DMEM 進行分配與控制,最後透過第二大架構 DMA 的特性快速將資料進行傳輸,盡而達到硬體加速之目的。
因此一顆 APEX 提供 2 顆 APU 核心作為使用,所分配到的資源為 64 個 CU 以及 256KByte的記憶體 (CMEM),供給使用者作運用與搭配。

最後,可以重新揣摩一下整個 APEX 的運算流程,如下圖所示 APEX 運算流程示意圖,並能與上述的 APU 架構有所呼應。
假設有一張圖片需給 APEX 運算將可以分成 3 個步驟
(1) 將影像分割成數個小區塊,實質上稱作為 Chunk 。
(2) 藉由 DMA 將資料傳至各個 Chunk 中,並於同時間交付於 CU 進行平行化運算。
(3) 運算完成後,再次透過 DMA 將資料傳送回到原本圖片的記憶體中。

APEX 運算流程示意圖
圖文出處 : NXP文件 - APEX Core Architecture and Programming.pdf


以上就是 APEX 的運算動作!! 所謂的 CU 就是指 APU 內主要的運算單元,藉由這些 CU 達到硬體加速的作用!! 就如同一件事情分工給很多人去執行一樣,這就是 APEX 能加快運算的原因 !! 值得一提的事,在運用 APEX 的同時也要兼顧到是否符合時間效益,這是因為需要考慮資料傳輸時間,如同分工時的分配時間。
因此靈活使用 APEX 才能創造最大效益!! 後續文章將帶領大家如何更靈活的使用 APEX 核心!!
*值得注意的是該資料不限至於影像,只要是數據型態即可作運用。

 

 三.   參考文件

[1] APEX Core Architecture and Programming - Jan-2017.pdf
[2] APEX Principle and Programming - liyan.pdf

 

如有任何相關 APEX 技術問題,歡迎至博文底下留言提問 !!
接下來還會分享更多 APEX 的技術文章 ! 敬請期待 【 ATU Book-S32V系列 】 !!

 


 

相關影片

【ATU Book-S32V系列】 APEX 基礎架構

介紹 NXP S32V234 之 APEX 的基礎架構

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論