快速雛型發展系統設計流程介紹
3.3 TMS320C6701 DSP 簡介
在數位時代的來臨,通訊技術及 DSP 的發展迅速,在通訊系統中 DSP 已成為已成為不可或缺的工具,主要是因為其程式開發容易且易於實現複雜 度較高之演算法,以逹到即時訊號處理的目的。目前吾人所使用的 DSP EVM 模組之核心處理器是由德州儀器公司所出的 TMS320C6701 DSP[17]-[21],透 過此模組吾人將與 FPGA 分工處理,以實現 MISO W-CDMA 高速下鏈硬體電 路。在本章中,吾人將介紹此 DSP 之結構、記憶體及周邊元件等三部分。
3.3.1 TMS320C6701 DSP CPU 結構
TMS320C6701 DSP 為一顆浮點數運算(float point)的數位訊號處理器,採
用 VelociTI VLIW(Very Long Instruction Word)CPU 架構之浮點數運算器。內建 有 8 組功能單元(function unit)及 2 組暫存器(register),其功能介紹如下(圖 3.5、
圖 3.6):
1. .M 單元:乘法器,提供兩個 16-bit 變數相乘,其輸出為 32-bit。
2. .L 單元:加法器,提供變數之加、減法,和邏輯運算功能,如 AND、
OR 和 XOR。
3. .S 單元:提供位元移位(bit shift)及分枝程式碼執行(branch)之功能。
4. .D 單元:負責資料在記憶體與一般暫存器間之存取,提供線性定址 (linear-addressing)和環狀定址(circular-addressing)模式。
一般暫存器主要是提供功能單元暫存變數空間,.M1、.L1、.S1 及.D1 共 用一般暫存器 A 之空間,.M2、.L2、.S2 及.D2 則共用一般暫存器 B 之空間。
3.3.2 TMS320C6701 DSP 記憶體分配
‘C6701 DSP 使用 32 位元之位址線,理論上可定址至 4G Bytes 之記憶體,
其規劃如圖 3.7,包含了大小皆為 64k bytes 的內部程式記憶體(internal program memory)及內部資料記憶體(internal data memory),‘C6701 對內部程式記憶體 之使用提供二種方法,一是映射模式(mapped mode),另一種為快取模式(cache mode),由程式記憶體控制器(Program Memory Controller, PMEMC)來決定何種 操作模式,以下為此二種模式之討論:
1. 映射模式:吾人可定義兩個記憶體區塊為程式記憶體,當定義成 Map 0 時,從 0x01400000h 至 0x0140FFFFh 為程式記憶體,而定義成 Map 1 時,從 0x00000000h 至 0x0000FFFFh 為程式記憶體。CPU 和 DMA
(Direct Memory Access Controller)皆可存取程式記憶體的位址,但 CPU 和 DMA 要同時存取同一位址時,DMA 需等待 CPU 完成後方可取得 控制權。
2. 快取模式:吾人定義所有的程式記憶體為快取記憶體,CPU 可利用 256 位元之快取線(cache line)存取程式碼,相當於 8 個 32 位元的指令,但 在快取模式下,DMA 無法存取此區塊的資料。
‘C6701 DSP 的內部資料記憶體分為兩大區塊,而每一區塊又再細分為八 個槽。記憶體區塊的的分配是由一資料記憶體控制器(Data Memory Controller, DMEMC)來控制,只要不同時存取同一位址資料時,CPU 內的暫存器 A、暫 存器 B 與 DMA 可以同時存取資料記憶體,而不降低 CPU 的效能。
3.3.3 TMS320C6701 DSP 週邊元件
‘C6701 DSP 的基本週邊包含了共處理器存取介面(host-port interface, HPI)、中斷選擇器(interrupt selector)、直接記憶體控制器及外部記憶體介面 (external memory interface, EMIF 圖 3.8)等,其討論如下:
1. 共處理器存取介面:提供其它微處理器存取介面,透過 DMA/EDMA 控制器連結至 CPU 記憶體,以存取 CPU 記憶體中的資料和利用記憶 體映射方式之周邊元件。CPU 和 HPI 兩者皆可存取 HPIC (HPI controller register),而 HPI 還可利用外部資料和介面控制訊號存取 HPIA (HPI address register)及 HPID (HPI data register)。
2. 中斷選擇器:中斷選擇之目的為系統透過中斷訊號的機制,安排 DSP
與非同步元件工作之先後順序,以完成 DSP 與外界非同步元件之連 線。TMS320C6701 CPU 有三種中斷模式,重置(reset)、非屏蔽中斷 (Nonmaskable Interrupt, NMI)與、可屏蔽中斷(maskable interrupt)。重 置具有最高的優先權,是用來將系統設定成某已知狀態,假如系統偵 測到重置訊號時,系統會中斷 CPU 運算並回到設定的狀態;NMI 擁 有次高的優先權,其使用在某硬體突然發生問題時,對 CPU 發出警告 之中斷訊號;可屏蔽中斷訊號的優先權是最低的,其包含 INT4 至 INT15,IN4-INT7 為 DSP 與外界之中斷訊號,INT8-IN15 為 DSP 內部 之中斷訊號,INT4-INT15 之優先權為 INT4 最高而 INT15 最低。欲啟 動可屏蔽中斷服務,需滿足以下三個狀態:
(1) 在控制狀態暫存器(Control State Register, CSR)中,宇中斷致能 (Global Interrupt Enable, GIE)位元設定為 1。
(2) 在中斷致能暫存器(Interrupt Enable Register, IER)中,NMI 致能(NMI Enable, NMIE)位元設定為 1。
(3) 在 IER 中,將欲啟動可屏蔽中斷訊號相對應之中斷致能(Interrupt Enable, IE)設定為 1。
3. 直接記憶體控制器:在 CPU 運算的同時,DMA 控制器可以在背景作 業中持續在記憶體中搬移資料的動作,而不需要中斷 CPU 的運算,使 得 DSP 的效能大幅提昇,但需適當規畫 CPU 和 DMA 控制器之時程 安排(scheduling)以避免資料在存取時發生碰撞的情形。DMA 控制器 包含 四組獨立的可編排程序通道(programmable channel)供 DMA 使 用,和一組輔助通道(auxiliary channel)供 HPI 之 Host CPU 存取記憶體
時使用。
4. 外部記憶體介面:EMIF 主要的目的在提供各種控制介面,使 DSP 之 外部記憶體可連接各種記憶體元件。記憶體元件包含同步靜態記憶體 (Synchronous Burst Static Random Access Memory, SBSRAM)、同步動 態記憶體(Synchronous Dynamic Random Access Memory, SDRAM)、以 及非同步元件如非同步靜態記憶體(Asynchronous SRAM, ASRAM)、
先 進 先 出 元 件 (First In First Out, FIFO) 與 唯 讀 記 憶 體 (Read Only Memory, ROM)等。EMIF 負責管理 DSP 之四個外部記憶體,分別為 CE0、CE1、CE2 以及 CE3,其支援的記憶體種類如表 3.1,除了 ROM 只能使用於 CE1,以及 SDRAM 只能使用在 CE0、CE2 與 CE3 外,每 一個外部記憶體均能使用其他記憶體元件。另外,內部程式記憶體、
資料記憶體與直接記憶體存取(Direct Memory Access, DMA)皆可透過 EMIF 存取外部記憶體資料。