S32V234 软件浅谈-APEX | APEX 架构介绍

APEX 是 S32V234 處理器中一顆相當重要的核心,其主要作用是利用硬體平行化架構,達到演算法加速之目的,本文将对 APEX 的架構进行分析,来看看 APEX 是如何加速算法的。

S32V234 處理器內搭配 2 顆 APEX 的核心,提供給我們使用與搭配。如下圖所示 :



APEX 的正確核心名稱為 G2-APEX-642 ICP Core ,其中名詞可拆解成以下定義 :

G2:為第二世代的意思 ( 2nd generation)

642:為 64 個 CUs 與 2 個 ACP

ICP:為影像領域處理器 ( Image Cogntion Processor )


APEX 的核心架構是由兩大架構所組成,如下圖所示,



第一大架構為 APU (Array Process Uint) 矩陣運算單元,主要負責平行化處理,並配置 2 顆供使用。
第二大架構為 DMA( Direct Memory Acess) 快速存取記憶體架構,主要負責資料與記憶體之間的傳輸。


------------------------分割线-------------------------

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


                         

ACF 主要作用為替使用者配置最佳的硬體資源。此軟體層是以自動生產代碼的方式,直接取代向硬體溝通的動作,並分配最佳的 APU 與 Memory 資源。

* ACF 詳細使用介紹之後會以专题博文的方式介紹。

------------------------分割线-------------------------

接續回到之前所提及的主要核心架構之一的 APU ,也是硬體加速的關鍵核心。

                              

如 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 是由 32 個 CU 以及 4KByte 的記憶體 (CMEM) 大小所構成。並由 ACP 與 IMEM / DMEM 進行分配與控制,最後透過第二大架構 DMA 的特性快速將資料進行傳輸,盡而達到硬體加速之目的。

因此一顆 APEX 提供 2 顆 APU 核心作為使用,所分配到的資源為 64 個 CU 以及 256KByte 的記憶體 (CMEM),供給使用者運用與搭配。

 

因此可揣摩一下整個 APEX 的運算流程,如下图所示,


                                   

假設有一張圖片需給 APEX 運算將可以分成 3 個步驟

  • 1) 將影像分割成數個小區塊,實質上稱作為 Chunk 。
  • 2) 藉由 DMA 與 ACP 將資料傳至各個 Chunk 中,並於同時間進行平行化運算。
  • 3) 運算完成後,再次透過 DMA 將資料傳送回到原本圖片的記憶體中。

*值得注意的是該資料不限至於影像,只要是數據型態即可作運用


更進一步來說,APEX 會將 Chunk 組成 Tiles 的形式,以便控制與提高效能。

如 Chunk 與 Tiles 組成示意圖所示,其中 Tiles 與 Slice 皆描述一整片記憶體位置,由原始數據 (Raw input image) 的資料,可以被拆分成各個 Chunk 並設置於 CU0 至 CU3 之中,這樣排列成一條的方式即組成 Tile (Tile image) ,而實際排列則如同示意圖上記憶體 CMEM 所呈現的方式。

                     

換個方式来说,即為單指令多數據流 (SIMD) 的架構,这也是 APEX 與 GPU 差異最大之處,因 GPU 屬於多指令多數據流 (MIMD) 故無法減少耗電量,而 APEX 能保持低功耗且仍有優渥的快速平行化運算速度,即為 APEX 的特點。如下图所示:
*詳細的速度比較將於後續博文跟大家分享。

 

本文给大家介绍了 APEX 的架构及其数据的处理流程,相信对大家进一步了解这个 S32V234 独有的视觉加速器会起到帮助。
接下来我们还会分享 ACF 詳細使用介紹、S32V APEXCV 的环境搭建 以及 S32V APEXCV Library 等介绍,敬请期待 飞车侠!!!

参考资料:APEX Principle and Programming_liyan.pdf


★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论

Angel07

Angel07

2020年7月16日
優質文章!