- 相關(guān)推薦
采用Nios定制指令的嵌入式系統優(yōu)化設計
摘要:Altera公司的Nios軟核處理器以其低成本,設計靈活等特點(diǎn),在嵌入式應用領(lǐng)域得到廣泛的應用。采用Nios處理器的定制指令,可以把用戶(hù)自定義的功能直接添加到Nios CPU的算術(shù)邏輯單元中,加快專(zhuān)項任務(wù)的執行,以達到優(yōu)化目的。本文在闡述Nios定制指令設計的基礎上,給出相應的設計例子說(shuō)明。引言
Nios處理器是Altera公司推出的一個(gè)32/16位精簡(jiǎn)指令信處理器軟核。在A(yíng)ltera公司推出的軟件SOPC中加載Nios核 和相應的外圍接口以及與定義相應的自定義指令,然后對設計進(jìn)行綜合,下載到FPGA中就可以方便地一個(gè)具有特定功能的嵌入式處理器。這種設計思路增加了系統設計的靈活性,加快系統運行速度,縮短產(chǎn)品研發(fā)和上市時(shí)間。
由硬件實(shí)現復雜的算法通常比軟件實(shí)現更高效。利用Altera的Niso嵌入式處理器的定制指令,可以把用戶(hù)自定義的功能直接添加到Niso CPU的算術(shù)邏輯單元(ALU)中(見(jiàn)圖1),來(lái)加快專(zhuān)項任務(wù)的執行,從而達到系統優(yōu)化的目的。因此,設計者可以針對關(guān)鍵的內部循環(huán)和耗時(shí)算法,創(chuàng )建Nios嵌入式處理器的定制指令,把復雜的順序指令簡(jiǎn)化為硬件實(shí)現的單指令,這樣就能夠大大提高系統性能。例如,Nios CPU執行浮點(diǎn)乘法運算要2800多個(gè)時(shí)鐘周期;而浮點(diǎn)乘法的定制指令采用了浮點(diǎn)單元(FPU),執行只需19個(gè)時(shí)鐘周期。
1 定制指令
定制指令為Nios處理器的算術(shù)邏輯單元增加了定制邏輯,設計者通過(guò)定制指令,用快速高效的定制邏輯塊替代復雜耗時(shí)的軟件程序。在一個(gè)CPU中,可以運行多達五個(gè)組合或時(shí)序定制模塊,還可以訪(fǎng)問(wèn)Nios系統模塊外的存儲器和/或邏輯。定制邏輯模塊在兩個(gè)寄存器Ra和Rb內容的基礎上執行用戶(hù)定義的操作,結果存放在寄存器Ra中。這些定制邏輯模塊的功能只受限于器件內邏輯單元(LE)和設計得的想象力。
定制硬件模塊能夠通過(guò)Nios嵌入式處理器指令集中的五個(gè)用戶(hù)定義操作碼來(lái)訪(fǎng)問(wèn)。SOPC Builder在生成系統期間會(huì )為任何定制指令創(chuàng )建宏,通過(guò)這些自動(dòng)產(chǎn)生的C和匯編語(yǔ)言宏就可以方便地訪(fǎng)問(wèn)自定義指令操作碼。
2 實(shí)現定制指令
以Altera的Nios2.0版嵌入式處理器為例實(shí)現定制指令,同時(shí)點(diǎn)擊Custom Instructions標簽創(chuàng )建或編輯Nios CPU,如圖2。
Custom Instruction標簽是系統設計都 連接定制邏輯和Nios CPU的ALU的界面。首先,選擇定制指令的操作碼,有USR0~USR4五個(gè)操作碼可供使用。然后,導入和掃描作為定制指令的HDL文件。Design Import Wizard掃描頂層模塊的端口,進(jìn)行合適連接。Design Import Wizard可以接受以下類(lèi)型的文件:VerilogHDL/VHDL/EDIF/VQM以接受以下類(lèi)型的文件:Verilog HDL、VHDL、EDIF、VQM和Altera QuartusII原理圖。導入設計文件之后,分配定制指令所需的CPU時(shí)鐘周期數目和定制指令名。
在系統生成期間,SOPC Builder工具用作ALU一部分的定制邏輯來(lái)創(chuàng )建Nios CPU,受所選的操作碼控制軟件開(kāi)發(fā)包用定制指令名創(chuàng )建在C/C 和匯編語(yǔ)言中使用的軟件宏。這些在定制軟件開(kāi)發(fā)包ince下。
圖2 定制指令設計界面
設計者通過(guò)創(chuàng )建的軟件宏訪(fǎng)問(wèn)定制指令。在C/C 中,宏就像函數調用一樣使用。如果使用前綴端口,就要用前綴創(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ǔ)言中,宏調用USR操作碼,按標準匯指令一樣使用。如果使用前綴,那么在宏之前必須有一個(gè)PFX指令。有關(guān)用戶(hù)定義操作碼(USR0~USR4)的詳細資料可參Nios Software Development Reference Manual。
3 MP3播放器的定制指令設計
以MP3播放器設計為例,采用定制指令對設計進(jìn)行優(yōu)化。該設計通過(guò)增加兩條定制指令,就能使系統執行性能提高大約3倍。圖為該MP3系統設計框圖。
(1)MP3解碼器
在大多數MP3播放器中,處理器是用來(lái)管理函數和傳輸數據的。專(zhuān)用MP3解碼器ASIC可用于執行密集計算量的解碼和傳數據給音頻器件。本例中,Altera的Nios處理器用于完成處理控制信號,傳輸數據和進(jìn)行MP3解碼。通常,MP3解碼器流程如下:
①通過(guò)IDE接口從CF(CompactFlash controler)中讀取MP3數據;
②將MP3數據存入SPAM中緩存;
③對MP3數據解碼;
④將MP3邊帶合成到脈沖編碼調制(PCM)數據;
⑤把PCM數據傳給脈寬調制器PWM。
此外,播放器采用MPEG Audio Decoder(MAD)進(jìn)行MP3解碼,是基于以下方面:
①100%定點(diǎn)(整數)計算;
②網(wǎng)上有可利用的源碼;
③在GNU Ceneral Public License(GPL)下發(fā)布。
(2)定制指令
我們知道在執行MP3解碼的過(guò)程中,大量時(shí)間花費在邊帶的合成上。因此,優(yōu)化Altera MP3的重點(diǎn)就落在函數mad_synth_frame上。我們可通過(guò)使用定
【采用Nios定制指令的嵌入式系統優(yōu)化設計】相關(guān)文章:
UML 在嵌入式系統設計中的應用03-18
面向對象的嵌入式系統設計方法03-18
嵌入式系統中的線(xiàn)性Flash文件系統設計03-21
變風(fēng)量空調系統的優(yōu)化設計淺談03-19
基于A(yíng)VR的嵌入式在線(xiàn)監測系統的設計11-22
嵌入式系統中的PS/2接口設計11-22
基于PLD的嵌入式系統外存模塊設計03-18