版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、采用Nios定制指令的嵌入式系統(tǒng)優(yōu)化設(shè)計(jì) 摘要:Altera公司的Nios軟核處理器以其低成本,設(shè)計(jì)靈活等特點(diǎn),在嵌入式應(yīng)用領(lǐng)域得到廣泛的應(yīng)用。采用Nios處理器的定制指令,可以把用戶(hù)自定義的功能直接添加到Nios CPU的算術(shù)邏輯單元中,加快專(zhuān)項(xiàng)任務(wù)的執(zhí)行,以達(dá)到優(yōu)化目的。本文在闡述Nios定制指令設(shè)計(jì)的基礎(chǔ)上,給出相應(yīng)的設(shè)計(jì)例子說(shuō)明。
2、; 關(guān)鍵詞:Nios軟核 定制指令 嵌入式處理器MP3 引言 Nios處理器是Altera公司推出的一個(gè)32/16位精簡(jiǎn)指令信處理器軟核。在Altera公司推出的軟件SOPC中加載Nios核 和相應(yīng)的外圍接口以及與定義相應(yīng)的自定義指令,然后對(duì)設(shè)計(jì)進(jìn)行綜合,下載到FPGA中就可以方便地一個(gè)具有特定功能的嵌入式處理器。這種設(shè)計(jì)思路增加了系統(tǒng)設(shè)計(jì)的靈活性,加快系統(tǒng)運(yùn)行速度,縮短產(chǎn)品研發(fā)和上市時(shí)間。 由硬件實(shí)現(xiàn)復(fù)雜的算法通常比軟件實(shí)現(xiàn)更高效。利用Alte
3、ra的Niso嵌入式處理器的定制指令,可以把用戶(hù)自定義的功能直接添加到Niso CPU的算術(shù)邏輯單元(ALU)中(見(jiàn)圖1),來(lái)加快專(zhuān)項(xiàng)任務(wù)的執(zhí)行,從而達(dá)到系統(tǒng)優(yōu)化的目的。因此,設(shè)計(jì)者可以針對(duì)關(guān)鍵的內(nèi)部循環(huán)和耗時(shí)算法,創(chuàng)建Nios嵌入式處理器的定制指令,把復(fù)雜的順序指令簡(jiǎn)化為硬件實(shí)現(xiàn)的單指令,這樣就能夠大大提高系統(tǒng)性能。例如,Nios CPU執(zhí)行浮點(diǎn)乘法運(yùn)算要2800多個(gè)時(shí)鐘周期;而浮點(diǎn)乘法的定制指令采用了浮點(diǎn)單元(FPU),執(zhí)行只需19個(gè)時(shí)鐘周期。 1 定制指令 定制指令為Nios處理器的算術(shù)邏輯單元增
4、加了定制邏輯,設(shè)計(jì)者通過(guò)定制指令,用快速高效的定制邏輯塊替代復(fù)雜耗時(shí)的軟件程序。在一個(gè)CPU中,可以運(yùn)行多達(dá)五個(gè)組合或時(shí)序定制模塊,還可以訪問(wèn)Nios系統(tǒng)模塊外的存儲(chǔ)器和/或邏輯。定制邏輯模塊在兩個(gè)寄存器Ra和Rb內(nèi)容的基礎(chǔ)上執(zhí)行用戶(hù)定義的操作,結(jié)果存放在寄存器Ra中。這些定制邏輯模塊的功能只受限于器件內(nèi)邏輯單元(LE)和設(shè)計(jì)得的想象力。 定制硬件模塊能夠通過(guò)Nios嵌入式處理器指令集中的五個(gè)用戶(hù)定義操作碼來(lái)訪問(wèn)。SOPC Builder在生成系統(tǒng)期間會(huì)為任何定制指令創(chuàng)建宏,通過(guò)這些自動(dòng)產(chǎn)生的C和匯編語(yǔ)言宏就可以方便地訪問(wèn)自定義指令操作碼。
5、0; 2 實(shí)現(xiàn)定制指令 以Altera的Nios2.0版嵌入式處理器為例實(shí)現(xiàn)定制指令,同時(shí)點(diǎn)擊Custom Instructions標(biāo)簽創(chuàng)建或編輯Nios CPU,如圖2。 Custom Instruction標(biāo)簽是系統(tǒng)設(shè)計(jì)都 連接定制邏輯和Nios CPU的ALU的界面。首先,選擇定制指令的操作碼,有USR0USR4五個(gè)操作碼可供使用。然后,導(dǎo)入和掃描作為定制指令的HDL文件。Design Import Wizard掃描頂層模塊的端口,進(jìn)行合適連接。Design Im
6、port Wizard可以接受以下類(lèi)型的文件:VerilogHDL/VHDL/EDIF/VQM以接受以下類(lèi)型的文件:Verilog HDL、VHDL、EDIF、VQM和Altera QuartusII原理圖。導(dǎo)入設(shè)計(jì)文件之后,分配定制指令所需的CPU時(shí)鐘周期數(shù)目和定制指令名。 在系統(tǒng)生成期間,SOPC Builder工具用作ALU一部分的定制邏輯來(lái)創(chuàng)建Nios CPU,受所選的操作碼控制軟件開(kāi)發(fā)包用定制指令名創(chuàng)建在C/C+和匯編語(yǔ)言中使用的軟件宏。這些在定制軟件開(kāi)發(fā)包ince下。圖2 定制指令設(shè)計(jì)界面 設(shè)計(jì)者通過(guò)
7、創(chuàng)建的軟件宏訪問(wèn)定制指令。在C/C+中,宏就像函數(shù)調(diào)用一樣使用。如果使用前綴端口,就要用前綴創(chuàng)建不同的宏。例如,為浮點(diǎn)單元(FPU)創(chuàng)建兩個(gè)C/C+宏。例如,為浮點(diǎn)單元(FPU)創(chuàng)建兩個(gè)C/C+宏是: result=nm_fpu(data,datb); /不使用前綴 result=nm_fpu_pfx(prefix,data,data); /使用前綴 在匯編語(yǔ)言中,宏調(diào)用USR操作碼,按標(biāo)準(zhǔn)匯指令一樣使用。如果使用前綴,那么在宏之前必須有一個(gè)PFX指令。有關(guān)
8、用戶(hù)定義操作碼(USR0USR4)的詳細(xì)資料可參Nios Software Development Reference Manual。 3 MP3播放器的定制指令設(shè)計(jì) 以MP3播放器設(shè)計(jì)為例,采用定制指令對(duì)設(shè)計(jì)進(jìn)行優(yōu)化。該設(shè)計(jì)通過(guò)增加兩條定制指令,就能使系統(tǒng)執(zhí)行性能提高大約3倍。圖為該MP3系統(tǒng)設(shè)計(jì)框圖。 (1)MP3解碼器 在大多數(shù)MP3播放器中,處理器是用來(lái)管理函數(shù)和傳輸數(shù)據(jù)的。專(zhuān)用MP3解碼器ASIC可用于
9、執(zhí)行密集計(jì)算量的解碼和傳數(shù)據(jù)給音頻器件。本例中,Altera的Nios處理器用于完成處理控制信號(hào),傳輸數(shù)據(jù)和進(jìn)行MP3解碼。通常,MP3解碼器流程如下: 通過(guò)IDE接口從CF(CompactFlash controler)中讀取MP3數(shù)據(jù); 將MP3數(shù)據(jù)存入SPAM中緩存; 對(duì)MP3數(shù)據(jù)解碼; 將MP3邊帶合成到脈沖編碼調(diào)制(PCM)數(shù)據(jù); 把PCM數(shù)據(jù)傳給脈寬調(diào)制器
10、PWM。 此外,播放器采用MPEG Audio Decoder(MAD)進(jìn)行MP3解碼,是基于以下方面: 100%定點(diǎn)(整數(shù))計(jì)算; 網(wǎng)上有可利用的源碼; 在GNU Ceneral Public License(GPL)下發(fā)布。 (2)定制指令 我們知道在執(zhí)行MP3解碼的過(guò)程中,大量時(shí)間花費(fèi)在邊帶的合成上。因此,優(yōu)化Altera M
11、P3的重點(diǎn)就落在函數(shù)mad_synth_frame上。我們可通過(guò)使用定制指令f_mul和DCT32來(lái)優(yōu)化該函數(shù)。 F_mul F_mul和mad_f_mul是MAD使用的宏,用整數(shù)乘法來(lái)模擬浮點(diǎn)乘法。定義如下: #define mad_f_mul(x,y) (x)+0x00002000L)>>14)×(y)+0x00002000L)>>14) &
12、#160;#define f_mul(x,y) (x)|0x0001FFFFL) (y)|0x0001FFFFL) 這些函數(shù)完成的功能是一組易被硬件實(shí)現(xiàn)的操作,包括移位、加法、乘法和邏輯或運(yùn)算。在Altera MP3的優(yōu)化設(shè)計(jì)中,用硬件定制指令f_mul執(zhí)行原先用軟件宏;還可利用前綴選項(xiàng),把兩個(gè)宏合為一個(gè)單定制指令。以下就是用Altera的定制指令定義(f_mul和mad_f_mul): #define f_mul(x,y)nm_fmul(x),(y);
13、160; #define mad_f_mul(x,y)nm_fmul_pfx(1,(x),(y); DCT32 在MP3解碼中,DCT32完成離散余弦變換。MAD軟件用優(yōu)化過(guò)的DVT來(lái)增強(qiáng)性能。從軟件角度來(lái)看,該優(yōu)化算法比起一般DCT對(duì)提高性能具有重大意義。因?yàn)闃?biāo)準(zhǔn)DCT需要1024個(gè)乘法,而用優(yōu)化后的DCT只需80個(gè)乘法。圖4 DCT32與mad_synth_frame軟件流程 DCT32定制指令所用硬件由Celoxica提供,它是
14、可重配置計(jì)算方案提供商,采用了基于HandelC的設(shè)計(jì)工具。Altera的DCT32定制指令按以下特點(diǎn)設(shè)計(jì): |可以存儲(chǔ)32位輸入和32位輸出; 在DCT計(jì)算時(shí),能獨(dú)立于CPU工作; 用前綴指令接受命令 裝入/卸載 啟動(dòng)DCT計(jì)算 輪詢(xún)是否完成。 因?yàn)槎ㄖ浦噶羁梢暂喸?xún),在DCT輸出前其它代碼可以并行運(yùn)行。當(dāng)需要DCT輸出時(shí),定制指令被查詢(xún),看是否已完成計(jì)算。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版現(xiàn)代化辦公室租賃場(chǎng)地合同樣本3篇
- 二零二五版精制粉原料供應(yīng)鏈風(fēng)險(xiǎn)管理合同3篇
- 二零二五版地震監(jiān)測(cè)基站場(chǎng)地租賃與應(yīng)急救援合同3篇
- 2025年度醫(yī)療健康產(chǎn)業(yè)園區(qū)承包經(jīng)營(yíng)合同范本3篇
- 二零二五版溫泉度假酒店SPA服務(wù)人員勞動(dòng)合同3篇
- 二零二五年度離婚經(jīng)濟(jì)補(bǔ)償協(xié)議范本及調(diào)解服務(wù)合同3篇
- 二零二五年度能源項(xiàng)目合作開(kāi)發(fā)PPP模式合同范本3篇
- 物業(yè)管理公司2025年度招投標(biāo)代理合同3篇
- 二零二五年度車(chē)位租賃合同:住宅小區(qū)車(chē)位使用權(quán)協(xié)議2篇
- 2025廠房買(mǎi)賣(mài)合同模板:高端裝備制造廠房交易3篇
- 100個(gè)超高難度繞口令大全
- 《鄭伯克段于鄢》-完整版課件
- (日文文書(shū)模板范例)請(qǐng)求書(shū)-請(qǐng)求書(shū)
- 土壤肥料全套課件
- 畢業(yè)生延期畢業(yè)申請(qǐng)表
- 學(xué)校6S管理制度
- 肽的健康作用及應(yīng)用課件
- T.C--M-ONE效果器使用手冊(cè)
- 8小時(shí)等效A聲級(jí)計(jì)算工具
- 人教版七年級(jí)下冊(cè)數(shù)學(xué)計(jì)算題300道
- 社會(huì)實(shí)踐登記表
評(píng)論
0/150
提交評(píng)論