關(guān) 閉

新聞中心

EEPW首頁 > 安全與國防 > 設(shè)計(jì)應(yīng)用 > 可編程語音壓縮專用處理器設(shè)計(jì)

可編程語音壓縮專用處理器設(shè)計(jì)

作者: 時(shí)間:2008-03-18 來源:網(wǎng)絡(luò) 收藏

  摘 要:為了提高通信系統(tǒng)的保密性,降低制造成本,需要進(jìn)行專用處理器的設(shè)計(jì)。基于正弦激勵(lì)線性預(yù)測(SELP)模型,設(shè)計(jì)了一款多速率專用處理器。使用可重構(gòu)體系結(jié)構(gòu)和超長指令字(VLIw),優(yōu)化了高復(fù)雜度函數(shù)。仿真結(jié)果表明:該處理器對O.6 kb/s速率SELP的執(zhí)行效率明顯優(yōu)于通用數(shù)字信號處理器(DSP)。處理器內(nèi)部程序數(shù)據(jù)外部不可見,指令并行度顯著提高,常用函數(shù)可被修改,從而達(dá)到高保密性、低復(fù)雜度、易開發(fā)性。

  關(guān)鍵詞:信號處理;壓縮;專用;可重構(gòu)體系結(jié)構(gòu);超長指令字

  為了適應(yīng)多種通信應(yīng)用,需要使用不同的語音壓縮編碼。用數(shù)字信號處理器(DSP)實(shí)現(xiàn)存在編程難、保密性差、成本高等缺點(diǎn)。專用(ASIC)只能實(shí)現(xiàn)單一算法,很難擴(kuò)展,難以進(jìn)行二次開發(fā)。

  可重構(gòu)體系結(jié)構(gòu),是指某一計(jì)算系統(tǒng)能夠利用可重用的硬件資源,根據(jù)不同的應(yīng)用需求,靈活地改變自身結(jié)構(gòu),以便提供與之相匹配的功能。已有可重構(gòu)體系實(shí)現(xiàn)了語音算法的某些特定部分,如自適應(yīng)多速率算法中的代數(shù)碼本搜索、原型編碼器中的小波變換以及有限脈沖響應(yīng)濾波器等,但使用協(xié)處理器使硬件規(guī)模仍然偏大,且只能對一類語音算法適用。

  使用可重構(gòu)體系結(jié)構(gòu)設(shè)計(jì)了一種可編程專用語音編解碼芯片TRl00,指令系統(tǒng)使用超長指令字(VLIW),使語音編碼算法中常用的并行操作可以在該芯片上產(chǎn)生比通用DSP更高的執(zhí)行效率。高復(fù)雜度子程序能夠被多種類型的語音算法使用,避免引入?yún)f(xié)處理器,降低了二次開發(fā)編程的工作量。片內(nèi)存儲器在外部不能讀取,提高了系統(tǒng)的保密性。

  1 SELP算法

  算法采用自行開發(fā)的基于正弦激勵(lì)線性預(yù)測(SELP)模型的多幀聯(lián)合編碼算法,在線性預(yù)測正弦激勵(lì)模型的基礎(chǔ)上,引入多幀參數(shù)聯(lián)合矢量量化方法,進(jìn)一步壓縮幀間冗余,使語音譜包絡(luò)信息得到較好表示,在O.6 kb/s的極低速率下,可懂度達(dá)到90%以上。

  O.6 kb/s速率采用多幀聯(lián)合量化編碼技術(shù),將相鄰3幀預(yù)測系數(shù)均轉(zhuǎn)為線譜對系數(shù)(LSP),采用基于模式的余量分裂多級矩陣量化(P-RS-MSMQ)算法。根據(jù)不同的信道狀況與質(zhì)量要求,算法還包括0.8 kb/s、 1.2 kb/s和2.4 kb/s另3種速率壓縮方式,流程與O.6 kb/s算法基本相同,僅增加對余量信號的編碼過程,其中需要進(jìn)行512點(diǎn)快速Fourier變換(FFT)運(yùn)算。

  2 TR100芯片體系結(jié)構(gòu)設(shè)計(jì)

  芯片工作主頻為20 MHz,采用取指譯碼執(zhí)行3級流水線設(shè)汁,內(nèi)部結(jié)構(gòu)如圖1所示。

  

  

  TRl00芯片采用粗粒度可重構(gòu)體系結(jié)構(gòu),基本的可重構(gòu)硬件單元包括存儲系統(tǒng)、運(yùn)算單元、程序調(diào)度控制、寄存器、數(shù)據(jù)通路等。

  存儲系統(tǒng)包括閃存存儲器(FLASH)和隨機(jī)存儲器(RAM)兩部分。芯片內(nèi)部包含2個(gè)32 kB數(shù)據(jù)FLASH、5個(gè)4 kB數(shù)據(jù)RAM。6個(gè)地址寄存器與3個(gè)地址運(yùn)算單元可以分別獨(dú)立存儲器的地址控制與選擇。

  運(yùn)算單元包括2個(gè)32 b增強(qiáng)型,可完成以加減運(yùn)算為中心、包括規(guī)格化、算術(shù)移位、四舍五入等輔助邏輯的復(fù)雜運(yùn)算功能;1個(gè)32 b;1個(gè)40 b乘;1個(gè)16 b除法器。

  程序調(diào)度控制有2級硬循環(huán)、比較跳轉(zhuǎn)、比較設(shè)置、調(diào)用/返回等單元。兩個(gè)可被同時(shí)訪問的各包含19個(gè)32 b寄存器,支持分層窗口式訪問;6個(gè)32 b選通器作為數(shù)據(jù)通路將存儲系統(tǒng)與運(yùn)算部件進(jìn)行互聯(lián)。

  3 超長指令字格式設(shè)計(jì)

  在針對語音編碼算法的專用中,VLIW指令設(shè)計(jì)方法是非常適用的,它能在低復(fù)雜度的控制邏輯水平上產(chǎn)生較高指令并行性,使芯片在低主頻下即可實(shí)現(xiàn)語音壓縮算法。由于對資源并行度要求較高的程序模塊數(shù)量不大,因此可以通過遍歷所有運(yùn)算量較大的模塊,提取可用的指令并行模式,在硬件控制邏輯復(fù)雜度增加很小的前提下實(shí)現(xiàn)超長指令譯碼。

  設(shè)計(jì)的VLIW指令系統(tǒng)包括基本指令形態(tài)和專用指令形態(tài)?;局噶钚螒B(tài)包括1 6b、32b、48b、64 b等4種指令長度,并行程度低,用于設(shè)計(jì)對資源并行性要求不高的子程序。專用指令形態(tài)包括128 b、192 b、256 b等3種指令長度,并行程度高,用于設(shè)計(jì)算法中復(fù)雜度較高、要求資源高并行度的子程序。兩類指令形態(tài)格式相同,從而可以使用相同的譯碼器進(jìn)行譯碼,簡化了電路設(shè)計(jì)?;局噶钅K和專用指令模塊分別從程序FLASH與程序RAM中取指,均能做到單周期取指單周期譯碼一單周期執(zhí)行。包括4個(gè)字段:Length確定指令長度;SF確定本長度下選用的指令子格式;CF進(jìn)行算子選擇;OP進(jìn)行算子編碼。

  4 算法程序向芯片的移植

  使用軟硬件協(xié)同設(shè)計(jì),利用現(xiàn)有硬件的支持,可以編出高效率的代碼。表1是在TRl00上實(shí)現(xiàn)常用程序模塊的執(zhí)行周期數(shù)與通用DSP對比結(jié)果,其中l(wèi)表示濾波長度,p表示內(nèi)積點(diǎn)數(shù)。

  

  

  可以看到,壓縮算法中運(yùn)算量較大的模塊,如濾波器、點(diǎn)積、矢量量化等,TR100的運(yùn)行效率均明顯高于DSP,甚至達(dá)到兩倍以上。這是由于對于運(yùn)算、存儲單元訪問密集的模塊,硬件體系結(jié)構(gòu)中各個(gè)獨(dú)立單元可以用相應(yīng)的并行訪問。而對線性預(yù)測系數(shù)(LPC)計(jì)算與轉(zhuǎn)換、數(shù)學(xué)函數(shù)等運(yùn)算量不大、但各種語音算法都要使用的模塊,芯片的運(yùn)行效率也與DSP基本相當(dāng)。這就保證了在移植其他算法時(shí),受程序執(zhí)行效率的限制較小,而可以專注于算法功能的開發(fā)。注入功能可對基本指令與專用指令進(jìn)行修改,便于開發(fā)者對現(xiàn)有程序進(jìn)行擴(kuò)充。

  以加權(quán)矢量量化為例,說明芯片的運(yùn)算效率。線譜對系數(shù)使用多幀聯(lián)合矢量量化,搜索運(yùn)算量非常巨大。在SELP算法中,0.6 kb/s速率使用30維多級LSP碼本,容量為7.68 kB,搜索時(shí)需要計(jì)算每一碼本矢量與當(dāng)前系數(shù)矢量x的加權(quán)距離di,權(quán)重為對角矩陣W,之后再找到最小的加權(quán)距離所對應(yīng)的碼本矢量標(biāo)號進(jìn)行編碼。

  使用一條256t專用指令即可實(shí)現(xiàn)循環(huán)體內(nèi)部操作:

  與通用DSP的實(shí)現(xiàn)相比,本芯片可以在循環(huán)體內(nèi)減少5次運(yùn)算,本芯片對矢量搜索模塊的優(yōu)化可減少近4MI/s的運(yùn)算量。其中I為指令數(shù)。

  5 芯片性能

  數(shù)據(jù)FLASH寬度為16 b,存儲4個(gè)速率的不同碼本,碼本容量為199g kB,最大臨時(shí)數(shù)據(jù)變量使用19.8 kB,與C54xDSP所需的存儲空間相當(dāng)。全部程序共5.7 k I,其中專用指令程序?yàn)? kI。

  0.6 kb/s速率算法各子模塊的運(yùn)算量如表2。

  

  

  在TRl00芯片上完成編解碼的運(yùn)算復(fù)雜度為12.5 MI/s,明顯低于C54xDSP所需的40 MI/s。

  表3對比了浮點(diǎn)C語言程序、定點(diǎn)C語言程序以及芯片仿真3種情況下各個(gè)參數(shù)的重建誤差,使用91280幀中國軍標(biāo)語音測試數(shù)據(jù)。

  

  

  可以看出,海量數(shù)據(jù)測試出的定點(diǎn)C程序的各個(gè)重建參數(shù)誤差與芯片仿真的結(jié)果完全相同,由此可以說明芯片獲得的編碼碼流與重建語音與C程序的結(jié)果相同。

  6 結(jié) 論

   使用VLIW設(shè)計(jì)的可重構(gòu)處理器能夠在相同硬件結(jié)構(gòu)下實(shí)現(xiàn)不同的語音壓縮算法,由于針對算法中常用的運(yùn)算密集模塊在體系結(jié)構(gòu)和指令形態(tài)上進(jìn)行了優(yōu)化,該處理器對語音算法中計(jì)算、存儲密集度高的函數(shù)具備更高的指令并行性,從而獲得了更高的運(yùn)行效率與更低的主頻,使功耗降低。算法程序外部完全不可見,提高了保密性。常用函數(shù)可以通過注入方式進(jìn)行修改,避免了引入?yún)f(xié)處理器導(dǎo)致的難以擴(kuò)充的缺點(diǎn),并有效減小了芯片規(guī)模。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉