嵌入式處理器應(yīng)用是完全嵌入或包含在控制設(shè)備內(nèi)的特殊系統(tǒng)。與通用PC不同,,嵌入式系統(tǒng)要執(zhí)行預(yù)定任務(wù),,因此有一些特殊要求,。
當(dāng)今的系統(tǒng)設(shè)計(jì)人員面臨許多挑戰(zhàn),特別是面臨加快差異化產(chǎn)品上市速度的壓力,。此外,在高度競爭的全球市場環(huán)境中,提供更強(qiáng)大的功能和降低材料清單成本是關(guān)鍵,。快速配置處理器及子系統(tǒng)單元的能力可幫助加快系統(tǒng)處理創(chuàng)新并克服許多設(shè)計(jì)障礙,。
對于采用賽靈思FPGA的專用處理解決方案來說,,首先要選擇處理器。由于每個應(yīng)用都有獨(dú)特要求,,因此處理器及相關(guān)系統(tǒng)的可配置能力對于嵌入式處理器設(shè)計(jì)非常關(guān)鍵,。那么到底是需要軟件處理器內(nèi)核還是硬處理器呢?
圖 1.MicroBlaze處理器構(gòu)建模塊
在FPGA內(nèi)晶體管級實(shí)現(xiàn)的硬處理器具有許多優(yōu)點(diǎn),,包括速度和性能,。Xilinx Virtex?系列中的一些產(chǎn)品中提供了PowerPC?405硬處理器。
MicroBlaze" title="MicroBlaze">MicroBlaze? 或 PicoBlaze? 等軟處理器內(nèi)核是采用HDL語言編寫并利用可用的FPGA資源實(shí)現(xiàn)的,。軟處理器內(nèi)核也具有許多優(yōu)點(diǎn),,特別是可移植性和可配置能力。32位RISC MicroBlaze軟處理器內(nèi)核可在Spartan? 和 Virtex系列器件中實(shí)現(xiàn),。
使用MicroBlaze軟件處理器內(nèi)核,,可以對其進(jìn)行定制來滿足目標(biāo)應(yīng)用要求。有兩種版本的MicroBlaze軟處理器內(nèi)核可供選擇:較小的三級流水線MicroBlaze v4.0內(nèi)核對于成本敏感的應(yīng)用非常理想,,而新的五級流水線MicroBlaze 5.0內(nèi)核則針對注重性能的系統(tǒng),。
考慮到嵌入式處理的重要性,賽靈思公司的創(chuàng)新體現(xiàn)在多個層面,。例如,,Virtex-5中的六輸入LUT等結(jié)構(gòu)可幫助提高頻率,、降低功耗并提高邏輯密度。新的MicroBlaze 5.0架構(gòu)則可幫助獲得更高的性能水平,??蛇x的外設(shè)和存儲器控制器能夠優(yōu)化數(shù)據(jù)流。由緊密鏈接的編譯器,、調(diào)試器,、仿真器、配置器(profiler),、庫,,以及來自越來越多合作伙伴的實(shí)時操作系統(tǒng)組成的套件為嵌入系統(tǒng)開發(fā)提供了全面支持。
MicroBlaze 5.0內(nèi)核簡介
第五代五級流水線MicroBlaze內(nèi)核針對基于Virtex FPGA的高性能而優(yōu)化,。該內(nèi)核與前一代保持二進(jìn)制兼容,。賽靈思在這一新版本中增加了更多選項(xiàng),性能和靈活性都提高到了一個新的水平,。
處理器子系統(tǒng)的拓?fù)涫菂^(qū)分嵌入式設(shè)計(jì)的主要標(biāo)志,。賽靈思的MicroBlaze內(nèi)核提供了足夠的靈活性,允許用戶定制內(nèi)核本身,、接口,、外設(shè)和存儲器資源。MicroBlaze內(nèi)核提供了功能強(qiáng)大的基礎(chǔ)架構(gòu)和豐富的可配置選項(xiàng),,如圖1所示。白色模塊是基本處理器功能,,是基本指令集架構(gòu)的關(guān)鍵單元,。灰色模塊代表了可選功能,,如FPU,、除法器、乘法器以及桶式移位器等,。同時還提供大多數(shù)應(yīng)用通用的其它可選可配置單元(如緩存大?。?/span>
二進(jìn)制后向兼容能力很重要,。每個MicroBlaze內(nèi)核版本都建立在其前一代處理器的同一指令集架構(gòu)(ISA)之上,,因此軟件移植所需要的工作量很少。保持二進(jìn)制代碼兼容性和編程模型,,同時增加下一代功能,,對于保護(hù)并維持用戶在應(yīng)用代碼方面的投資非常關(guān)鍵。
那么新的MicroBlaze 5.0處理器流水線級對IP和接口有什么作用,?答案就是遺留IP被保持,,IP驅(qū)動程序沒有受到影響,。
更順暢的流水線
五級流水線MicroBlaze內(nèi)核填補(bǔ)了三級流水線MicroBlaze v4.0處理器和功能更強(qiáng)大的PowerPC 405處理器之間的差距。當(dāng)針對高性能而配置時,,MicroBlaze 5.0嵌入式處理器在Virtex-5" title="Virtex-5">Virtex-5 LX器件上的運(yùn)行速度為210 MHz,。為了獲得更快的速度或減少每條指令執(zhí)行所需要的時鐘周期數(shù)(CPI),賽靈思將通常采用的三級流水線擴(kuò)展為五級流水線,,如圖2所示,。這一變化使得MicroBlaze 5.0內(nèi)核可將CPI降低到1.25,比先前的版本提高了25%,。
為了獲得更低的CPI數(shù)值和更高的時鐘頻率,,必須擴(kuò)展流水線。前一版本MicroBlaze軟處理器內(nèi)核中擁擠的三級流水線在MicroBlaze 5.0內(nèi)核流水線中擴(kuò)展到執(zhí)行,、存儲器讀取和寫回等過程,。三級流水線MicroBlaze內(nèi)核仍然是不錯的軟處理器引擎,但更適用于成本敏感的應(yīng)用,。五級流水線的新版MicroBlaze內(nèi)核稍微變大了一些,,但執(zhí)行代碼效率更高,更適用于要求高性能的應(yīng)用,。
更長的流水線級可以獲得更大的指令吞吐能力,。對三級流水線MicroBlaze內(nèi)核,加載,、存儲,、桶式移位、乘法,、快速單向鏈路(FSL)PUT以及GET等功能就使三級流水線不堪重負(fù)了,,從而必需要兩或三個周期才能完成操作。而在五級流水的MicroBlaze 5.0內(nèi)核中,,加載和存儲成為單周期指令,,而其它多周期操作,如果不依賴于未結(jié)束的計(jì)算結(jié)果,,沒有資源沖突或訪問沖突的話,,也可以在單個周期內(nèi)完成。當(dāng)然,,無論流水線長度如何,,真正多周期的運(yùn)算操作,如FPU或除法指令,,仍然需要多個時鐘周期來完成,,對這些指令無法加速。
表1給出了三級和五級流水線MicroBlaze 內(nèi)核的性能和功能差異。
這意味著什么,?
對于嵌入式系統(tǒng)設(shè)計(jì)人員來說,,擁有一個五級流水線的處理器真正意味著什么呢?這依賴于所執(zhí)行的代碼或指令組合類型,。請注意,,嵌入式代碼是裝載、存儲以及許多其它匯編指令的組合,。如果目標(biāo)是減少(優(yōu)化)程序的執(zhí)行時間,,則可以減少指令數(shù)量、縮短時鐘周期(提高Fmax)或CPI,。
簡單來說,,就是必須讓T盡可能地小:
T= IE x CPI x CP
其中:
T = 程序執(zhí)行時間
IE = 執(zhí)行程序中的指令數(shù)量
CPI = 每條指令所需要的平均時鐘周期數(shù)量
CP = 時鐘周期
特點(diǎn) |
MicroBlaze Cores for EDK 8.2 |
||
4.0版本 |
5.0 版本 |
|
|
流水線深度 |
3 |
5 |
|
最大整數(shù)性能 |
166 DMIPS |
240 DMIPS |
|
本地存儲器 |
0或 2 - 128 KB |
0 或2 - 256 KB |
|
乘法器,,桶式移位器 |
可選 |
可選 |
|
除法器 |
可選 |
可選 |
|
協(xié)處理器接口 |
FSL |
FSL |
|
數(shù)據(jù)和數(shù)據(jù)緩存 |
0或 2 - 64 KB |
0 或 2 - 64 KB |
|
專用緩存接口 |
Cache Link |
Cache Link |
|
浮點(diǎn)單元 |
單精度 |
單精度 |
|
最大FPU性能(峰值) |
33 MFLOPS |
50 MFLOPS |
|
調(diào)試接口 |
Debug + Trace |
Debug + Trace |
|
目標(biāo)FPGA器件 |
Virtex-4, Spartan-3E |
Virtex-5 |
|
表1:MicroBlaze內(nèi)核比較
以210 MHz的速度運(yùn)行在Virtex-5 LX 器件上,,MicroBlaze 5.0 的CP當(dāng)然更短。新架構(gòu)的CPI值更低,,因此在執(zhí)行Dhrystone基準(zhǔn)測試時,,處理器可以獲得1.15 DMIPS/MHz的性能。這一配置要求啟用桶式移位器和硬件乘法器選項(xiàng),,在使用Virtex-5 XC5VLX30-3 FPGA時需要占用960個LUT,。
Dhrystone是一個綜合基準(zhǔn)指標(biāo),并不一定能夠準(zhǔn)確地表征當(dāng)今的許多嵌入式應(yīng)用,。前面我們提到過處理器總體性能改進(jìn)與依賴于指令混合的五級流水線相關(guān),。因此我們嘗試以一系列內(nèi)部“近實(shí)時(near-real)嵌入式應(yīng)用”基準(zhǔn)來看一下結(jié)果。
當(dāng)使用諸如ADPCM編碼/解碼等電信基準(zhǔn)時,,五級流水線MicroBlaze內(nèi)核的性能比三級流水線MicroBlaze 內(nèi)核提升1.6% 至 5.2%,。當(dāng)采用包含AES編碼/解碼等運(yùn)算的面向安全的應(yīng)用時,五級流水線MicroBlaze內(nèi)核的性能比三級流水線MicroBlaze 內(nèi)核提升約30%,。
AES編碼/解碼基準(zhǔn)中的指令序列中有許多裝載或存儲等操作,這些指令對其它大運(yùn)算量指令的依賴不怎么強(qiáng),,因此在五級流水線處理器中運(yùn)行效率比較高,。每個應(yīng)用的具體性能提升都有所不同,要根據(jù)代碼所生成的指令混合比例才能理解這一點(diǎn),。
除了MicroBlaze微架構(gòu)中的改進(jìn),,賽靈思還改進(jìn)了許多存儲控制器和外圍模塊。例如,,特殊的緩存接口鏈路繞過了總線互連,,直接從存儲控制器饋送到MicroBlaze指令和數(shù)據(jù)緩存。在另一例子中,,以太網(wǎng)相關(guān)的外設(shè)有多種選擇,。如圖3所示,,諸如檢驗(yàn)和分流、數(shù)據(jù)重組或FIFO邏輯等優(yōu)化都減輕了處理器內(nèi)核的負(fù)擔(dān),。再一次,,設(shè)計(jì)人員可根據(jù)應(yīng)用需要靈活選擇合適的選項(xiàng)。利用面向賽靈思FPGA構(gòu)造的軟處理器內(nèi)核和嵌入式開發(fā)套件(EDK)IP就可以做到這一點(diǎn),。
其它新特性,?
設(shè)計(jì)人員可以選擇每個緩存線四或八個字寬來幫助提高緩存性能和命中率(hit/miss ratio)。從外部存儲器猝發(fā)傳送較長的字序列特別有效,,如果指令代碼或數(shù)據(jù)“構(gòu)造良好”和線性的話,。盡量從本地緩存執(zhí)行最好。我們在EDK中提供了剖析工具幫助您精細(xì)調(diào)整存儲器緩存子系統(tǒng),。
賽靈思還增加了處理器版本寄存器(PVR)存儲標(biāo)記或處理器ID,。在多內(nèi)核或多處理器系統(tǒng)中,這非常有用,。你可以選擇在設(shè)計(jì)中不使用PVR,、只使用一個PVR、或者全面的PVR配置,。如果選擇一個PVR,,內(nèi)核將有一個8位ID標(biāo)記。你可以為其指定一個地址,,以及處理器配置的基本信息,。如果選用全面的PVR配置,在MicroBlaze多內(nèi)核系統(tǒng)設(shè)計(jì)中,,當(dāng)系統(tǒng)詢問每個內(nèi)核時,,每個結(jié)點(diǎn)可以提供更多的配置信息。
MicroBlaze 5.0 和 MicroBlaze v4.0內(nèi)核都有完全集成的IEEE754兼容單精度FPU,。配置了FPU的MicroBlaze 5.0內(nèi)核在Virtex-5器件中200 MHz時可達(dá)到50 MFLOP,,使用的資源為1,650 LUT(包括FPU和MicroBlaze內(nèi)核)。在我們運(yùn)行的一些實(shí)際應(yīng)用測試中,,MicroBlaze內(nèi)核加FPU與MicroBlaze運(yùn)行軟件仿真浮點(diǎn)代碼相比,,FIR代碼性能提升約40%,FFT代碼提升約16%,。
最后,,我們做了一些易用性方面的改進(jìn)。為方便編程,,我們在MicroBlaze 5.0 ISA中實(shí)現(xiàn)了模式比較代碼,。我們還提供了處理器狀態(tài)寄存器,包括一系列狀態(tài)和使能位,在系統(tǒng)復(fù)位時可以自動配置,。
第五代MicroBlaze內(nèi)核在第五代Virtex FPGA器件中實(shí)現(xiàn)
我們一直在談?wù)摿魉€架構(gòu),,現(xiàn)在我們來看一下FPGA構(gòu)造的影響。與前一代Virtex系列產(chǎn)品相比,,采用65nm工藝的Virtex-5(采用6輸入LUT結(jié)構(gòu)),,功耗可降低約35%,工作頻率提高約30%,。MUX密度提高了一倍,,LUT RAM密度是原來的4倍,同時還擁有了更多靈活的邏輯模塊,。
嵌入式處理內(nèi)核如此重要,,以至最新的FPGA芯片必須考慮到其架構(gòu)需要。因此,,利用Virtex-5 FPGA可以達(dá)到較高的性能和尺寸指標(biāo),。例如,如果不選擇任何MicroBlaze選項(xiàng),,在Virtex-5 XC5VLX30-3 器件中實(shí)現(xiàn)MicroBlaze 5.0,,只需要800個LUT,Fmax達(dá)220 MHz,。與此相比,,在Virtex-4 XC4VLX40-12器件中則需要使用1,110個4輸入LUT,Fmax達(dá)170 MHz,。
系統(tǒng)部分包括MicroBlaze內(nèi)核和32-Kb緩存,、UART、定時器,、中斷控制器,、存儲控制器、以及三個不同的以太網(wǎng)控制器配置之一,。
圖 3.使用MicroBlaze 5.0內(nèi)核和一些改進(jìn)后網(wǎng)絡(luò)外設(shè)的網(wǎng)絡(luò)系統(tǒng)性能
結(jié)論
MicroBlaze 5.0集更高的性能和靈活性于一身,。FPGA構(gòu)造、微架構(gòu)和處理器子系統(tǒng)創(chuàng)新,,這一切共同提高了MicroBlaze的性能水平,。與前一版MicroBlaze 相比,嵌入式處理器的CPI性能提高了25%,,DMIPS性能提高45%,,FPU峰值性能提高了50%,。
由于提供了更多的處理器選項(xiàng)和處理器類型供選擇,,因此靈活性進(jìn)一步提高。現(xiàn)在有兩種版本的MicroBlaze軟處理器內(nèi)核可供選擇:傳統(tǒng)的低成本三級流水線MicroBlaze v4.0內(nèi)核和新的針對性能而優(yōu)化的五級流水線MicroBlaze 5.0內(nèi)核。兩個版本的內(nèi)核都得到EDK開發(fā)套件的支持,。EDK套件包括了Platform Studio IDE,、Platform Studio Software開發(fā)套件、板支持套件,、硬件/軟件IP庫,、處理器以及其它工具。MicroBlaze內(nèi)核沒有沉沒工程成本(NRE),,不需要許可和使用費(fèi)用,。