1.1 簡介
數位訊號處理器(Digital Signal Processor, DSP)的應用領域很廣,但實 際上沒有一個處理器能完全滿足所有的或絕大多數應用需要,設計工程師在選擇 處理器時需要根據性能、成本、整合度、開發的難易程度以及功率消耗等因素進 行綜合考慮。DSP 元件按設計要求可以分為兩類:第一類應用領域為廉價的、大 規模嵌入式應用系統,如手機、磁碟驅動(DSP 用作伺服電機控制)以及可攜式 數位音頻播放器等。在這些應用中,價格和整合度是最重要的考慮因素。對於可 攜式電池供電的設備,功率消耗也是一個關鍵的因素;另一類是需要用複雜運算 法對大量數據進行處理的應用,例如 3D 聲音處理和影像、語音的辨識等多媒體 需求,也需要用 DSP 元件及其相關的輔助運算器。此類運算法要求苛刻、產品量 大且相當複雜,所以在選擇處理器時會盡量選擇性能最佳、易於開發並支援多處 理器的 DSP 元件。圖 1-1 列出近幾年 DSP 在市場上的需求趨勢,圖表上反應出通 訊產品、電腦相關產品及數位消費性電子類每年估計的成長幅度相當大。
資料來源:Dataquest, 2001/01,工研院經資中心 ITIS 計畫整理 2000/03
圖 1-1:DSP 產業趨勢圖
$0
$2,000
$4,000
$6,000
$8,000
$10,000
1999 2000 2001 2002 2003 2004
Data Processing Communcations
Consumer Automotive
Industrial Military/Civil Aerospace 單位:百萬美元
消費性電子產品有個最大的特點在於兼顧成本及效能,造成目前定點數 16-bit DSP 的產值仍高達七成以上,低成本成為消費性電子產品很重要的一個 關鍵。若為了低成本而採用低階處理器,將無法發揮其能力,主因在於數位訊號 處理有相當多特別的架構及定址法[1],如環狀定址(Circular Addressing)、
位元反置定址模式(Bit-reversed Addressing)、零負擔(Zero overhead)迴 圈、單一指令週期乘加運算等,若不支援其定址法,處理器要花較多的指令周期 達到相同的效能,如此一來,勢必要使用更高的時脈,亦即更高的功率消耗。
在數位訊號處理的領域內,部分研究在設計增強數位訊號處理的特殊 IP,
如向量內積或轉換函數的 Macrocell 等[2]。若使這些 IP 與處理器做整合,其大 量連續資料傳輸及周邊裝置的管理仍須透過 DMA(Direct Memory Access)來處 理。在多媒體應用中,常常會進行多重數據傳輸,所以匯流排結構必須支援 DSP 核心及 DMA 存取內、外部記憶體空間。隨著數據傳輸率和性能要求的升高,『系 統性能調節』控制將變得非常重要,例如 DMA 控制器可以最佳化到每一個時脈周 期傳輸一個數據。當在同一方向上有多個數據傳輸時,將能有處理大量繁雜的工 作。DMA 配合處理器使用,必須能夠定址 I/O 裝置。常見有兩個方法:
1、記憶體映射(memory-mapped)I/O: 部分位址空間用來指定 I/O 裝置,
對這些位址寫入或讀取,會被解譯成對 I/O 裝置下達命令。當處理器將位 址和資料放到匯流排上,裝置控制器會辨別操作命令並記錄資料,當成一 個命令傳到 I/O 裝置。
2、特殊的 I/O 指令: 針對個別 I/O 裝置設計相應的指令,處理器根據指令 解碼,直接對 I/O 裝置下達命令。
處理器與 I/O 裝置的通訊有兩種方式,輪詢(Polling)及中斷(Interrupt)。 輪詢是將 I/O 的資訊放至狀態暫存器,處理器周期性的去檢查狀態位元來決定下 一個的 I/O 操作時間,並可以透過狀態暫存器獲得 I/O 的資訊,缺點是浪費大量 的處理器時間。而中斷可告知處理器 I/O 裝置需要服務,當中斷發生,處理器必
不同的處理。I/O 裝置和處理器的通訊只有在傳輸完成及錯誤發生才需使用中 斷,使用 DMA 的傳輸,首先需設定裝置的位址、傳輸資料記憶體的來源正目的位 址及傳輸的資料數,處理器由此建立 DMA 通道。接著 DMA 開始在裝置上執行命令,
並取得匯流排控制權。當資料取得後,若在匯流排上傳輸超過一次才能傳完,DMA 會產生下次傳輸的記憶體位址,不需要處理器就能完成整個傳輸。許多 DMA 控制 器都包含有記憶體,在傳輸延遲或等待取得匯流排控制權之前,扮演緩衝器的角 色。一旦 DMA 傳輸完成,中斷發生,處理器會檢查 DMA 或記憶體,看看是否完成 所有的工作。
傳統 DMA 僅有連續資料傳輸及透過 LLI(Linked List Item)不連續資料傳 輸[6],並且支援四種傳輸模式,記憶體到記憶體、記憶體到周邊、周邊到記憶 體、周邊到周邊。針對目前 DMA 控制器的研究,僅著重在傳輸效率的提升和通訊 應用層面[3]-[5]。為了降低數位訊號處理器開發成本和複雜度,因此,本論文 提出一個智慧型 DMA 控制器(Smart DMA Controller),利用 DMA 有控管大量資 料的特性及結合 DMA 資料傳輸與數位訊號處理能力的 IP,有效率地輔助一般訊 號處理器做解決大量資料排序與大量乘加(MAC)運算功能,同時運用處理器和 智慧型 DMA 的結合,達成具有 DSP 的工作能力。智慧型 DMA 的主要設計特點如下:
1. 應用上支援廣泛的 I/O 系統,並有效率地處理資料流:
多媒體訊號處理需要有大量的資料流做為輸入輸出,因此必須設計一個 DMA 模組,支援匯流排結構,並對 I/O 進行大量資料移動、緩衝及控管的工作。一般 的 DMA 僅支援連續資料傳輸,因此在處理數位訊號資料時顯得沒有效率,若只需 要移動資料的一半(如: downsampling 動作),仍必須將所有資料搬入記憶體 中來處理,既沒有效率又佔用匯流排的頻寬。本論文提出的智慧型 DMA 改善原始 DMA 傳輸設計,並提供四種定址方式有效處理資料搬移問題:
z 遞增/遞減定址法(Increasing/Decreasing Addressing)
z 鏡射定址法(Mirror Addressing)
z 索引定址法(Index-based Addressing)
透過以上四種定址法的組合,達到選取有效資料,排除無效的資料,降低頻 寬的使用,並提高資料傳輸的效率及降低處理器的負擔。
2. 輔助 DSP 運算的 Co-processor:
智慧型 DMA 控制器內建了一組乘加運算器(multiply-and-accumulate, MAC),搭配上述四種定址法,使得只能處理資料傳輸的 DMA 提升到運算的層次,
如:DCT、FIR、DWT…等運算[7]。
z DCT:Mirror + Index-based + Increasing Addressing z DWT:Increasing + Decreasing Addressing
z FIR:Increasing + Decreasing Addressing
3. 增加少量硬體成本達到 DSP 效能:
智慧型 DMA 支援雙通道資料記憶體快速向量運算,擁有直接存取兩個記憶體 的能力,且在 I/O 匯流排上支援 APB 匯流排的標準[8],使用者能夠在周邊匯流 排上加掛相容 APB 介面的周邊裝置,擁有記憶體到記憶體、記憶體到周邊、周邊 到記憶體、周邊到周邊四種傳輸模式。如表 1-1,加上 MAC 運算單元後,僅增加 10%的 Gate Count,成本相當低。
ITEM Gate count Smart DMAC 31.5k
DMAC 28.5k MAC 3.0k
1.2 論文架構
本篇論文中,第二章介紹智慧型 DMA 控制器的設計,從硬體架構設計到 如何使用有詳細的說明。第三章說明智慧型 DMA 控制器和 VLIW 處理器的整合 方式,及相關軟體發展及如何應用。第四章詳述實驗結果,包含模擬驗證方 法及結果,晶片製作,及測試效能的比較。最後,在第五章做總論。