• 沒有找到結果。

第五章 快速運動估測演算法之 DSP 實現

5.1 ADSP-BF609 開發板介紹

ADSP-BF609 開發模擬板是由亞德諾(ADI)與英特爾(INTEL)聯合開發,而此 開 發 板 主 要 針 對 於 影 音 多 媒 體 的 開 發 與 應 用 所 設 計 的 , 在 多 核 心 處 理 器 (symmetric multi-processing: SMP)的支援下,包含了 DSP 與 MCU 兩大功能,可 以依使用者的需求分工,一顆核心為 MCU,另一顆為 DSP;亦可兩顆核心皆為 DSP,ADSP-BF609 的硬體架構圖如圖 5.2 所示,其中分別包含了 Blackfin DSP 晶片、靜態隨機存取記憶體(static random access memory: SRAM)、雙倍資料率同 步 動 態 隨 機 存 取 記 憶 體 (double data rate synchronous dynamic random access memory: DDR-RAM)、非同步串列介面(universal asynchronous receiver transmitters:

UARTs)、串流埠(serials ports: SPORTs)、 串列周邊介面(serials peripheral interface ports: SPIs)、雙線介面(two 2-wire interface: TWI)、 行動儲存介面(removable storage interface: RSI)、USB 2.0 等。

圖 5.2、ADSP-BF609 硬體架構圖[13]

5.1.1 ADSP-BF609 晶片

ADSP-BF609 為對稱雙核心高效能 Blackfin 處理器,每顆核心的工作频率最 高可以達到 500 MHz,如圖 5.3 所示,為 Blackfin 晶片的內部結構,每顆核心包 含控制單元、資料運算單元以及位址運算單元,其中控制單元主要負責指令解碼、

指令排序、提取指令以及記憶體緩衝器;資料運算單元包含 2 個 16 位元的乘法 器、2 個 40 位元的算術邏輯單元(arithmetic logic unit: ALU)、2 個 40 位元的累加 器(A0、A1),並且透過乘法累積單元(multiply-accumulate: MAC)的改良哈佛 (Harvard)架構,保存資料負載與儲存運算,同時抓取指令;位址運算單元則包含 畫面指標(frame point: FP)暫存器、堆疊指標(stack pointer: SP)暫存器、5 個 32 位 元的位址暫存器(P0-P5)。

圖 5.3、Blackfin 處理器核心結構示意圖[13]

5.1.2 ADSP-BF609 之記憶體結構

ADSP-BF609 採用多階層式記憶體結構(hierarchical memory structure),分別 為內部的快取記憶體(internal cache memory) L1 與 L2 和外部記憶體(external memory) L3,如圖 5.4 為記憶體架構示意圖,其中 L1 距離 ALU 最近,其運算速 度最快為通常以全核心時脈速度 500MHz,有 148 K-Byte 記憶體空間;L2 比起 L1 距離 ALU 較遠,其時脈數降為 250MHz 運作,有 256KB 的 SRAM 可以配置 為核心或直接記憶體存取(direct memory access: DMA)子系统的專用記憶體和 32K-Byte 的 ROM 可以儲存程式碼;L3 型態為 DDR-RAM,距離 ALU 最遠,運 算速度為 125MHz,其記憶體空間有 128M-Byte,ADSP-BF609 開發板採用 32 位 元定址,將所有的記憶體映射在 4GB 的位址空間(memory map),其內部記憶體 佔用為較高位址的空間,外部記憶體則佔用低位址空間,如圖 5.5 為記憶體位置 分佈圖。

圖 5.4、ADSP-BF609 記憶體架構示意圖

圖 5.5、ADSP-BF609 記憶體位址分佈圖[13]

5.1.3 非同步收發傳輸通訊協定

通用非同步收發傳輸器(universal asynchronous receiver/transmitter: UART),

主要將資料由串列傳輸(serial communication)與平行傳輸(parallel communication) 間作傳輸轉換。透過序列資料通訊的介面標準(EIA-RS-232: RS232)連接到 PC,

主要功能是 PC 與 ADSP-BF609 開發模擬板之間的資料傳輸,其運作方式如圖 5.6 所示,當從 PC 接收資料時,執行串列轉平行的動作;從 Blackfin 處理器接收 資料,執行平行轉串列的動作。UART 使用封包的傳輸方式,如圖 5.7 所示,

UART 初始為高電位的狀態,當接收到低電位的起始位元(start bit)代表封包起頭,

接續的 8 個 bit 為傳送字元(data bit),接下來的 1 個 bit 為同位位元(priority bit)可 有可無,最後為高電位的停止位元(stop bit)代表封包結束。在 ADSP-BF609 開發 模擬板的執行過程中,Blackfin 處理器可以藉由 UART 與正在執行中的程式進行 溝通的介面使用。

圖 5.6、UART 運作示意圖

圖 5.7、UART 封包格式

圖 5.8、記憶體、周邊設備與 DMA 之關係圖

5.1.4 直接記憶體存取技術

如圖 5.8 所示,DMA 是一種硬體的記憶體存取技術,不必透過處理器,允 許介面裝置與記憶體之間直接轉移資料,透過專用的 DMA 匯流排,將內部、外 部記憶體與週邊設備相連的控制器,常用於大量的數據搬移。DMA 傳輸的記憶 體端可以是 1D 或 2D。而週邊設備端始終是 1D 的傳輸,唯一限制是在 DMA 的 源端(source)和目標端(destination)傳輸的位元組數量必須相同。由於不需透過處 理器,DMA 傳輸的速度比 C 語言函式庫中的 memcpy 來的快,這有利於程式的 整體效能。

相關文件