第三章 多核嵌入式處理器
3.1 VLIW處理器架構
3.1.4 不同子核心間的資料讀取與寫入
當運算完成後,必須將運算結果寫回 的來源有兩
個:本身的 core,其他的 core。在本論文裡,要將自己的 core 的運算結果寫入 至其他的 core 中,必須使用指令 MOVARR,而優先權上,若發生本身的 core 及 其他 core 同時發生寫入的現象,則以本身的 的寫入為優先,同時並發送中 斷信號給其他的 core。
邏輯上出現此一情況,而開發工具發現程式設計者寫出這樣的程式也應會發出警 示訊息。
3.2
3.2.1 組譯器
硬體設計外,處理器的軟體支援是相當重要,為此發展了圖形化介面的組譯 器(Assemb ),提供機械碼(Machine code)的轉譯、程式記憶體(Program rom)
的產生、及錯誤資訊(Debug information),讓使用者能夠利用以上資訊來除錯 產生Testbench。
Reg File,而寫回 Reg File
core
(然而理論上不應該會有此情形發生,程式設計者應避免
)
軟體開發環境
ler
及
Assembler
Data Rom Machine
Code
Debug Information
Testbench Assembler Assembler
Data Rom Data Rom
Machine Debug
Code Information
Testbench Testbench
圖 3-2(a):組譯器(Assembler)的用途
圖型化介面組譯器如下圖,使用 Visual C++完成演算法部分,使用 VB 做組 譯器的圖形介面,並用 dll 作連結,並提供編輯檔案的能力。當完成編輯檔案後,
須先經過 compile 的動作,確保無錯誤產生。最後經由 Build 的動作,產生所需
:產生十六進位的程式碼,提供晶片測試的資料。
:產生程式記憶體的資料,提供模擬及後續測試必備的資料。
的檔案:
pop.txt bin.txt
Compile Build
Directory
File list
Message w
Edit area
indow
圖 3-2(b):圖形化介面組譯器(Assembler)
VLIW 處理器使用超長指令集的設計核心,在編寫程式及組譯時須注意:
平行處理:平時以處理核心 B,則需在兩
指令間加上分隔符號『||』,若不需有處理核心 A,則須指令 B 前加上
『NOP』指令,如下圖:
圖 3-2(c):平行處理指令的使用
A 為主,若需使用處理核心
Instruction A || Instruct ion B
|| Instruction B
NOP
3.2.2 計次性迴圈的處理
在數位訊號處理的應用中,for迴圈是非常常見的,for迴圈的特性是只要是 在迴圈次數內,則每次都會跳躍至迴圈開始處,因此不同於一般的conditional
每次要去判斷是否要跳躍,像for迴圈這種regular loop,可以不經判斷而在
,而減少管線在跳躍處理上造成的Penalty Cycle。
本論文開發出的組譯器遇到 指令時,會去計算LOOP到END_LOOP間 的指令數,然後將此數值與迴圈要重複運行的數值都編入機械碼中,處理器內部 有兩個counter分別存入這兩個數值。存放LOOP到END_LOOP間的指令數的 ounter此時會控制程式計數器,以避免抓取到END_LOOP以後的指令而影響效 存放迴圈重 counter則提供處理器跳離迴圈的依據。本論文就是以 軟體聯合硬體的方式來解決計次性迴圈[10],這樣的方法與常見的Hardware Loop
解
3.2.
本論文也針對該處理器以高階語言(C++) simulator,以便能快速 驗證各種測試程式。而寫這樣的模擬器困難的地方就是在於要拿一個本身沒有平 行處理概念的語言 C/C++,去模擬一個有平行處理概念的管線。本論文製作的模 擬器採用的設計方式是類似 software pipeline 的觀念將程式每個 iteration 倒著選 一個指令然後送到硬體去循序。由於 code 是循序的。所以如果把要用來處理管 線的迴圈倒著寫的話,就可以達到該效果,以一個五級的 RISC 管線架構為例,
branch
每次的迴圈尾就直接返回迴圈頭
LOOP
會 c
能,而 複次數的
的 決方式也是不相同的,然而都可以達成目的。
3 模擬器
設計了一個
如下圖所示:
//級五 Write Back
以便用高階語言的寫法描述管線。
這種實作方法類似在資訊科學領域演算法中 tail-recursion 的概念,遞迴的時 候會發現把處理動作倒著寫會較好處理,因為遞迴本身是用到先進後出的堆疊,
邏輯上和 software pipeline 作 iteration 的取樣很相似。
利用此模擬器可以得到每個測試程式在每一個cycle時暫存器及記憶體的內 容,並計算hazard Penalty Cycle個數,方便對程式開發者進行效能
For(cycle++) {
//級四 ALU .
…
//級一 Fetch
}
….
…
//級三 Reg_File .
//級二 Decoder
….
….
執行方向
圖 3-2(d):利用倒寫管線
個數及總共的 上的分析,也方便除錯的工作。
3.3 智慧型 DMA 控制器
3.3.1 智慧型DMA控制器功能
DMA 僅有連續資料傳輸及透過 LLI(Linked List Item)不連續資料傳
,並且支援四種傳輸模式,記憶體到記憶體、記憶體到周邊、周邊到記憶體、
若只需要移動資料的一半(如: down sampling 動作),
增/遞減定址法(Increasing/Decreasing Addressing)
環狀定址法(Circular Addressing)
鏡射定址法(Mirror Addressing)
索引
(b)輔助 DSP 運算的 Co-processor:
智 慧 型 DMA 控 制 器 內 建 了 一 組 乘 加 運 算 器 ( multiply-and-accumulate, MAC),搭配上述四種定址法,使得只能處理資料傳輸的 DMA 提升到運算的層 次,如:DCT、FIR、DWT…等運算[7]。
DCT:Mirror + Index-based + Increasing Addressing DWT:Increasing + Decreasing Addressing
FIR:Increasing + Decreasing Addressing
(c)增加少量硬體成本達到 DSP 效能:
智慧型 DMA 支援雙通道資料記憶體快速向量運算[21],擁有直接存取兩個 記憶體的能力,且在 I/O 匯流排上支援 APB 匯流排的標準[8][31],使用者能夠 在周邊匯流排上加掛相容 APB 介面的周邊裝置,擁有記憶體到記憶體、記憶體 到周邊、周邊到記憶體、周邊到周邊四種傳輸模式。如表 3-3(a),加上 MAC 運 算單元後,僅增加 10%的 Gate Count,成本相當低。
遞
定址法(Index-based Addressing)
透過以上四種定址法的組合,達到選取有效資料,排除無效的資料,降低頻寬的 使用,並提高資料傳輸的效率及降低處理器的負擔。
ITEM Gate count
Smart DMA 31.5k
DMA 28.5k MAC 3.0k
表 3-3(a):智慧型 DMA 與 DMA 面積比較
3.3.2 智慧型 DMA 控制器架構
一般的 DMA 與智慧型 DMA 架構的差別在於後者在通道控制器對定址法的 支援、內建 MAC 運算器、因應不同功能的暫存器組、不同匯流排的支援和直接
支援雙記憶體 ,包含通道
控制器、優先權仲裁器、暫存器組、乘加運算器、中斷控制器及記憶體介面[23],
其設
的介面等[36]。智慧型 DMA 整體架構設計如圖 3-3(a)
計方法參閱智慧型直接記憶體存取器設計[39]。
Grant1
Start
Do other thing
Interrupt Occurred
Finish the Job Start
Do other thing
Interrupt Occurred
Finish the Job
圖 3-3(b):智慧型 DMA 的使用流程
MS Cache Program Rom
Core A Core B
IR
Smart DMA Controller
data bus data bus
Ram B Ram
A
Peripheral bus I2S Txd I2S Rxd
VLIW processor
圖 3-3(c):VLIW 處理器與智慧型 DMA 的整合架構圖
四條分開的匯流排,智慧型 DMA 與處理器共用二條資料匯流 排,
整個系統共有
透過資料匯流排讓處理器與智慧型 DMA 共用兩個資料記憶體。資料匯流排 的管制與衝突,由 VLIW 處理器解決,當沒有使用到記憶體相關的指令,記憶 體的主控權會釋放給智慧型 DMA,以解決衝突的情況。
DSP
3.5 結語
本章節介紹了主從式快取記憶體控制器的驗證平台:一個 VLIW 的多核嵌 式處理器的架構及一個可增進訊號處理運算能力及輔助記憶體及 I/O 溝通效能 IP:智慧型直接記憶體存取控制器。VLIW 多核數位訊號處理器搭配上智慧型 直接記憶體存取控制器可達到數位訊號處理器(DSP)的效能,而主從式快取記憶 體將與 VLIW 多核數位訊號處理器核心及智慧型直接記憶體存取控制器在下一 章節裡整合成為一個 SOC 晶片。
入 的
第四章 晶片實現與結果驗證
4.1 晶片製作
4.1.1 設計流程
依照標準的CIC Cell-Based Design Flow設計硬體[35],設計流程如下:
Specification
HDL & Scan-Chain
UMC18 Design Kit
Synthesis
Gate level Simulation
Auto Place & Route
SRAM
HDL & Scan-Chain
UMC18 Design Kit
Synthesis Place & Route
Auto Place & Route
SRAM DRC & LVS
DRC Calibre
4.1.2
初期功能的設計,以 Verilog 硬體描述語言實作,搭配 Mentor 公司出的 ModelSim 進行功能驗證。待功能驗證正確後,以 nopsys 公司出的 Design Compi 路合成,Library 使用 製程。經由合成軟體 Design Compi ,其結果如下: Multi-Core with 11
MS-Cache and SDMA
73973 7.15 ns 98.65 %
表 4-1(a):合成的結果
4.1.3 佈局與封裝
出的 SOC Encounter 佈局軟體,將合成後的電路放在晶片 上,並依據速度的要求,自動最佳化並繞線,結果如下:
CHIP name :SD297_V2
Technology :UMC 0.18um1P6M CMOS 128 CQFP
Chip Size :3.126× 3.126 mm2 Gate Count
:~400mW
:135MHz (7.40 ns)
採用 Cadence 公司
Package :
:118K gate count Power Dissipation
Max. Frequency
使用Prime Power量測功率,跑驗證功能的測試程式,得到平均消耗功率約 4-1(b)為佈局圖,圖4-1(c)為打線圖,圖4-1(d)為對應的腳位圖,以 128-CQFP的方式包裝。
400mW。圖
圖 4-1(b):晶片佈局圖
圖 4-1(c):打線圖
圖 4-1(d):腳位圖
而在後續的佈局驗證部分,使用Calibre的DRC(Design Rule Check)及LVS
(Layout
晶片設計規格如表 4-1(b)。
VS Schematic)也驗證無誤。
Technology Description
Process UMC 0.18µm 1P6M Mixed Signal Architecture VLIW 9-stage pipeline
Synthesis Synopsys Design Compiler Gate Count 118K
Embedded Memory RAM(512x32)x2 RAM(1024x64)x2 RAM(1024x6)x2 Die size 3.1 × 3.1 mm2 Supply 1.8V/3.3V ± 10%
Input Delay Time Max 0.714ns/ Min 0.543ns Power consumption 400mW
Operating Frequency 125MHz Post-Sim Speed 135MHz
表 4-1(b):晶片設計規格
4.2 測試驗證
4.2.1 餘弦轉換(Discrete Cosine Transform)
採用定點數平移 13-bit 做 36 點 DCT-2 運算,比較使用主從式快取記憶體控 制器及未使用的結果是否一致以驗證該快取記憶體控制器的可靠性。結果如圖 4-2(a),共有 36 筆資料輸出。其數學式如下:
1-D 36-point DCT-2
輸入 X:
圖 4-2(a): ayout 運算結果
4.2.2 轉換(FFT)
512 列出 為定點化 模擬與
Post-sim 結果,如圖 4-2(b),驗證無誤。
DCT-2 Post-l Simulation 的
快速傅立葉
底下驗證了 點 FFT 結果, 前 32 點,分別 C 程式
圖 4-2(b):512 點 FFT 前 32 點的運算結果
4.2.3 量化線性預估係數(LPC)
係數採用 Multi-stage Vector Quantization 化簡編碼 的大小,並使用 M-L 搜尋法加強 MSVQ 的精確度。圖 4-2(c) 為定點化 C 程式
驗證量化 Linear prediction 簿
的模擬結果,與圖 4-2(d)相比,驗證無誤。
圖 4-2(c):多級向量量化 C 程式執行結果 M_Paths Table
最佳的量化路徑結果
圖 4-2(d):多級向量量化 Post-sim 結果
4.3 效能比較
如 器(D
ISSCC2002 ISSCC2002 VLIW Design 表 4-3(b),以本論文設計的 VLIW 處理器,比起其他研究的數位訊號處理 SP),複雜度、成本都相當低。
Processor Oloffsson Agarwala TI C55X Proposed S-P –Com 1/4 Cycle 1/4 Cycle 2 Cycle
1 Cycle
MACS-P –Real MAC
1/8 Cycle 1/8 Cycle 1/2 Cycle
1/2 Cycle
Tech .13 8M .13 6M -.18 6M
Area(mm2) 10 x 10 8.5 x 8.5 -3.1 x 3.1
Power(mw) 1000 718 -400
其他 DSP 的規格比較表
上一般
表 4-3(a):與
VLIW 處理器搭配智慧型 DMA 及主從式快取記憶體控制器後,其效能已追 的數位訊號處理器,而成本遠低於數位訊號處理器。如表 4-3(b)。
50-taps complex FIR, Die size(mm2) Item 50-taps FIR,
100 samples 100 samples Prop
VLIW osed
Design
11200 (cycles) 24000 (cycles) 3.1x3.1
A 32-b RISC/DSP 12200 (cycles) 22000 (cycles) 3.4x3.4 Microprocessor
TI-s C60 5000 (cycles) 20000 (cycles) 3.9x3.9
表 4-3(b):與 DSP 運算效能比較表
第五章 結論
利用智慧型 DMA+VLIW 核心達到一個具有數位訊號處理器能力的核心,在 對多媒體應用的函式及迴圈運算所造成的 cache miss 具有明顯改善效果 式快取記憶體控制器,此 SOC 晶片核心非常適合搭配上各種多媒體應用 搭配針
的主從
主題是將主從式快取記憶體控制器使用在資料快取記憶體上對處理器效能的提
取記憶 情形十
本
片可用做低成本的數位訊號處理器來使用,也可以 IP 的方式,將系統整合起來,
的介面使用。
本論文將主從式快取記憶體控制器使用在指令快取記憶體控制上,一個延伸
升性。由於程式運行時,函式的呼叫返回也會對不同函式裡的區域變數在資料快 體中發生取代現象,因此發生 cache miss,此現象與指令快取記憶體中的 分類似,因此推斷將主從式快取記憶體控制器應用在資料快取記憶體的控
升性。由於程式運行時,函式的呼叫返回也會對不同函式裡的區域變數在資料快 體中發生取代現象,因此發生 cache miss,此現象與指令快取記憶體中的 分類似,因此推斷將主從式快取記憶體控制器應用在資料快取記憶體的控