在這章節會介紹我們使用的硬體 PAC 平台,第 3.1 節會介紹 PAC 系統架構,第 3.2 節則是介紹 PAC SoC 晶片,最後 3.3 節為介紹 PAC DSP 處理器。
C.2.1 PAC 系統架構
Parallel Architecture Core(PAC)平台是工研院晶片系統技術發展中心所研發出的 多媒體處理器核心技術(PAC DSP)為主的多核心平台,可廣泛應用在可攜式多媒體 播放器或智慧型手機等行動多媒體嵌入式裝置中。
PAC Duoo 開發板為近年工研院極力推廣的自製開發板,外觀如 Figure 55 所示,
主要原件有 I/O(UART、USB、Ethernet、Audio in/out)、LCD 觸控螢幕、DSP ICE port、
ARM ICE port 還有最主要的 PAC Duo SoC 晶片,其晶片包括 ARM 處理器和 PAC DSP 處理器。
75
Figure 55. PAC Duo 開發板
PAC 平台的特色:
異質多核心晶片(PAC Duo SoC):由一個 ARM(A926EJ-S)和兩個工研院自製 開發的 PAC DSP,Figure 56所示
ARM : A926EJ-S 204MHz DSP: 5-way VLIW architecture 9-stage pipeline
32KB instruction cache 64KB SRAM data memory 204MHz
DVFS:動態調節電源電壓與時脈頻率,可用來幫助降低功耗的技術
FPGA 擴充:PAC 平台目前可擴充 Virtex-5 FPGA 板,可自行設計硬體電路
Figure 56. PAC Duo SoC 晶片
76
C.2.2 PAC Duo SoC 系統架構
Figure 57 為 PAC Duo SoC 系統架構圖,由 AXI、AHB、APB 三條 BUS 所組成,
其整個平台的 shared memory 架構如下:
AXI on-chip SRAM : 128 KB
AXI off-chip DDR2-SDRAM : 128 MB
AHB on-chip SRAM : 256 KB
AHB off-chip SDRAM : 128 MB
AHB off-chip Flash : 128 MB
此平台主要整合三個子系統:ARM 子系統、DSP 子系統和慢速 I/O 子系統,ARM 子系統 AHB-lite BUS 上有 ARM 926EJ-S 處理,目前 ARM 處理器可以執行 Andorid 或 linux 作業系統。DSP 子系統設計目的是在數位訊號、多媒體影音加解碼方面能展 現較高效能的處理,而在 AXI BUS 上的稱作 DSP 子系統。
Figure 57. PAC Duo SoC 系統架構圖
77
C.2.3 PAC DSP 系統架構
PAC DSP 開發重點著重於低功耗、高效率的 32-bits 數位訊號處理器核心,PAC DSP 是以 5-WAY VLIW 架構和 SIMD 指令集提昇平行度的運算量,這種架構很適 合媒體應用程式,PAC DSP 特點如下:
Scalable VLIW data path : PAC DSP 由一個 Scalar Unit 和兩個 Cluster,每個 Cluster 包涵 Load/Store Unit 和 Arithmetic Unit,共有五個運算單元,可有效提 昇運算能力。
Variable instruction word/packet length : 這樣機制有助於減少 Code size。
Heterogeneous Register Files : 每個運算單元都有自己獨立的暫存器,對於每個暫 存器可直接拉線到各自運算單元,這樣可減少能量的損失,也可減少硬體的面 積。
Constant Register File : 在這些暫存器中可儲存固定不常變動的常數,可減少資料 的搬運降低能源的消耗。
Inter-cluster communication (ICC) by memory controller : 透過特殊指令集(ICC),可 使兩個 Cluster 之間互相溝通,可互相提昇兩個 Cluster 合作的效能。
Dynamic power management : 可動態調整 PAC DSP 的頻率以減少能源的消耗。
Customized functional unit interface : 可自訂硬體加速器透過這個界面與 PAC DSP 溝通並提昇 PAC DSP 的運算能力。
Figure 58 是 PAC DSP 架構圖,在 DSP 中最主要有幾個部份,即 Program Sequence Control Unit(PSCU)、Scalar Unit 和兩個 Cluster,PSCU 用來控制執行中程式的流程,
主要功能是更新 Program Counter (PC)、Fetch address 和處理中斷程序。Scalar Unit 可 以 當 作 一 個 簡 單 的 32-bit RISC 處 理 器 , 可 有 效 增 加 指 令 之 間 的 平 行 度 (Instruction-level parallelism)。每一個 Cluster 包括 Arithmetic Unit 和 Load/Store Unit,
78
Arithmetic Unit 和 Load/Store Unit 有 基 本 的 Arithmetic 、 Comparison 和 Bit-Manipulation 指令外,Arithmetic Unit 有 Multiplication 指令,而 Load/Store Unit 則是有 Load and Store 指令。
Figure 59 為 PAC DSP 的指令封裝格式,PAC DSP 一次會讀取五到指令交給五個 計算單元進行處理,依次是 Scalar Unit、Cluster 1:Load/Store Unit、Cluster 1:Arithmetic Unit、Cluster 2:Load/Store Unit 和 Cluster 2:Arithmetic Unit,而在 register 使用上會依 照 cluster 不同而有所限制。
Figure 58. PAC DSP 系統架構圖
{ inst1 | inst2 | inst3 | inst4 | inst5 } Scalar Unit
Cluster 1:Load/Store Unit Cluster 1: Arithmetic Unit Cluster 2:Load/Store Unit Cluster 2: Arithmetic Unit
Figure 59. PAC DSP 指令封裝格式
79