国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      雙處理器復(fù)域浮點(diǎn)數(shù)字信號(hào)處理片上系統(tǒng)的制作方法

      文檔序號(hào):6655877閱讀:307來源:國知局
      專利名稱:雙處理器復(fù)域浮點(diǎn)數(shù)字信號(hào)處理片上系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及多處理器系統(tǒng),尤其涉及適用于具有復(fù)域浮點(diǎn)計(jì)算功能的數(shù)字信號(hào)處理片上系統(tǒng)。
      背景技術(shù)
      以數(shù)字處理系統(tǒng)解決控制和計(jì)算問題的應(yīng)用正在迅速發(fā)展。片上系統(tǒng)(SoC)集成的進(jìn)步使到有可能發(fā)展更多種新的工業(yè)和消費(fèi)類產(chǎn)品和功能。最好的例子為一移動(dòng)電話。這些設(shè)備一般都采用一數(shù)字信號(hào)處理器(DSP)將通過一模數(shù)轉(zhuǎn)換器得到的語音數(shù)據(jù)編碼成適于在一移動(dòng)網(wǎng)路上傳輸?shù)亩M(jìn)制數(shù)據(jù)流。數(shù)字信號(hào)處理器運(yùn)算以定點(diǎn)表示法表示的數(shù)據(jù)。DSP可以是一分離的集成電路,也可以是一SoC中的一個(gè)元件,而另一個(gè)可能一般是一可為電話提供其它控制和功能的微處理器內(nèi)核。
      將微處理器和DSP單元以可變的數(shù)量組合在一起是可行的。例如,在ErnoSalminen等人所發(fā)表的題為“Interfacing Multiple Processors in a System-on-ChipVideo Encoder”的期刊出版物中,敘述了一種實(shí)現(xiàn)一與兩個(gè)定點(diǎn)DSP內(nèi)核連接的RISC處理器內(nèi)核的SoC。
      盡管組合一微處理器和一或多個(gè)定點(diǎn)DSP單元的SoC對(duì)于許多應(yīng)用是十分有用的,但是它們也存在著一些局限。
      首先,SoC DSP缺乏浮點(diǎn)功能,限制了這些系統(tǒng)的算法發(fā)展以及適用性。許多有用和著名的算法較為容易算法移植到使用一浮點(diǎn)數(shù)字表示法的DSP。其中一個(gè)例子為矩陣求逆,這是數(shù)值分析中的一個(gè)關(guān)鍵部分。如果數(shù)據(jù)采用浮點(diǎn)格式來表示,則這種算法以及許多其它算法就可以一更直接和更簡單的方式移植?,F(xiàn)有技術(shù)都未能意識(shí)到這種可能。例如,授予Gove等人的美國專利6,260,088在第16列第4-36行中揭示了一種組合一RISC處理器和一DSP的SoC可較佳地在RISC處理器上實(shí)現(xiàn)浮點(diǎn)運(yùn)算,并限制DSP進(jìn)行定點(diǎn)運(yùn)算,在第13-14行中還闡述了“...低等級(jí)的處理器不需要浮點(diǎn)運(yùn)算...”。
      其次,盡管本領(lǐng)域業(yè)已知道有分離的浮點(diǎn)DSP,但其表示的數(shù)據(jù)的精度有限,一般為32位。業(yè)內(nèi)的技術(shù)人員都會(huì)意識(shí)到分配給浮點(diǎn)數(shù)集的尾數(shù)和指數(shù)的位將限制可表示的數(shù)據(jù)的精度和動(dòng)態(tài)范圍。許多理想的應(yīng)用要求的數(shù)據(jù)處理超出一典型32位浮點(diǎn)表示法的精度和動(dòng)態(tài)范圍,其中24位分配給尾數(shù)和8位分配給指數(shù)。這可能包括諸如一嵌入在96dB(16位)信號(hào)中的132dB(22位)瞬時(shí)脈沖的分析和復(fù)制。這類情況時(shí)常會(huì)在聲音漸增之后的交響樂起奏中遇到,或者在電影中的槍炮聲模擬、仿真模擬或視頻游戲聲道中遇到。來自噪聲環(huán)境中的數(shù)據(jù)的診斷和分析也會(huì)出現(xiàn)這類情況。
      第三,現(xiàn)有技術(shù)中所熟知的浮點(diǎn)DSP不能提供專用匯編指令以對(duì)復(fù)數(shù)作單周期計(jì)算。在頻域算法、時(shí)域-頻域分析以及頻域-空間波數(shù)算法中都時(shí)常會(huì)遇到復(fù)域計(jì)算。眾所周知的快速傅里葉變換(FFT)就是籍助于復(fù)代數(shù)來定義的,并且復(fù)域匯編指令的功能也使得DSP能夠?yàn)镕FT提供本質(zhì)上的支持,從而極大地方便了音頻、無線電或者超聲波處理的應(yīng)用。現(xiàn)有技術(shù)集中于將復(fù)數(shù)以整數(shù)表示的FFT算法。例如,在授予Lim等人的美國專利6,317,770的第12列的第50-55行中揭示了“...根據(jù)本發(fā)明的DSP...從而能夠以高速進(jìn)行定點(diǎn)和整數(shù)運(yùn)算并且能夠簡化電路的結(jié)構(gòu)”。業(yè)內(nèi)的技術(shù)人員應(yīng)該意識(shí)到,對(duì)于在編譯器和硅層次上開發(fā)指令級(jí)的并行操作和對(duì)于DSP應(yīng)用內(nèi)核來說,浮點(diǎn)復(fù)數(shù)運(yùn)算法則具有適當(dāng)?shù)牧6取?br> 克服具有高處理速度的系統(tǒng)中的上述這些限制能夠改善SoC信號(hào)處理的性能或者將SoC信號(hào)處理擴(kuò)展到下列應(yīng)用結(jié)合多個(gè)麥克風(fēng),回音消除以及音頻波束成形的免提電話;具有更高診斷圖像質(zhì)量的超聲波圖像掃描儀;適用于家用、車用和影院的自適應(yīng)聲音均衡以產(chǎn)生特定環(huán)境的預(yù)均衡和預(yù)混響;以及,基于耳蝸的實(shí)時(shí)模擬來改善助聽器和耳朵假體。
      這就需要一種完備的結(jié)合浮點(diǎn)數(shù)據(jù)表示法、擴(kuò)展精度和復(fù)域算法與自適應(yīng)控制和系統(tǒng)連接功能的的信號(hào)處理平臺(tái)。

      發(fā)明內(nèi)容
      本發(fā)明已經(jīng)實(shí)現(xiàn)了為上述特殊應(yīng)用的優(yōu)化提供信號(hào)處理功能,通過組合微處理器內(nèi)核和超長指令字(VLIW)的數(shù)字信號(hào)處理器(DSP),使之具有復(fù)域擴(kuò)展精度的浮點(diǎn)計(jì)算功能。一個(gè)實(shí)施例是由采用異構(gòu)處理器內(nèi)核的片上系統(tǒng)(SoC)所構(gòu)成,在該系統(tǒng)中,兩個(gè)處理器內(nèi)核即可以作為主內(nèi)核也可作為從內(nèi)核,或者兩個(gè)內(nèi)核可以同時(shí)和獨(dú)立地工作。DSP內(nèi)核的1.6M位的程序和數(shù)據(jù)內(nèi)核存儲(chǔ)器都是映射成控制器的系統(tǒng)總線上的存儲(chǔ)器。直接存儲(chǔ)器存取(DMA)和SoC系統(tǒng)總線基于專用雙端口緩存器與內(nèi)核并行激勵(lì)運(yùn)行。
      在一個(gè)實(shí)施例中,DSP內(nèi)核基于128位指令字使用載入8K乘128位的單端口存儲(chǔ)的壓縮程序代碼工作。DSP匯編器以2至3的平均倍數(shù)來自動(dòng)壓縮程序代碼,從而在沒有性能損失的條件下獲得每個(gè)存儲(chǔ)周期50位的平均有效指令密度。諸如快速傅里葉變換(FFT)和有限脈沖響應(yīng)(FIR)的數(shù)值強(qiáng)度的運(yùn)算可以在沒有性能損失的條件下獲得每個(gè)執(zhí)行運(yùn)算4位的代碼密度。
      典型DSP內(nèi)核的元件包括17K乘40位的雙端口數(shù)據(jù)存儲(chǔ)器、256對(duì)40位的寄存器、以及具有4個(gè)乘法器、3個(gè)加法器和3個(gè)減法器的高度并行結(jié)構(gòu)。在復(fù)數(shù)計(jì)算操作期間,一半操作單元可產(chǎn)生實(shí)部結(jié)果而另一半操作單元也可同時(shí)產(chǎn)生虛部結(jié)果。雙4輸入、4輸出乘256位置寄存器列(file)用于分別存儲(chǔ)40位實(shí)部和虛部數(shù)值,從而能夠?qū)U(kuò)展精度浮點(diǎn)數(shù)據(jù)進(jìn)行單周期的復(fù)數(shù)計(jì)算。來自兩列寄存器的數(shù)據(jù)可以同時(shí)輸入運(yùn)算模塊的兩邊,可以作為在運(yùn)算模塊各邊中的任何運(yùn)算中間結(jié)果。在復(fù)數(shù)乘法期間,這一功能可以將寄存器列的讀取和執(zhí)行周期的數(shù)目減小兩倍。2組3個(gè)2K乘40位頁面(總計(jì)12KB)的內(nèi)部雙口存儲(chǔ)器允許同時(shí)進(jìn)行4次訪問(2次讀取和2次寫入)。具有16位地址寄存器的多地址產(chǎn)生單元(MAGU)可支持基于線性、循環(huán)和位可逆尋址的可編程步長。40位的數(shù)據(jù)格式可以提供數(shù)據(jù)的擴(kuò)展精度表示法,其中,32位用于尾數(shù),8位分配給指數(shù)。從概念上來說,32位尾數(shù)是具有附加用于保留精度的8位自保護(hù)位的典型24位的表示方法。
      典型的DSP具有能夠同時(shí)產(chǎn)生實(shí)部和虛部算術(shù)結(jié)果的功能,從而允許FFT重疊計(jì)算、復(fù)域同時(shí)加法和減法、復(fù)數(shù)多累加(MULACC)、以及實(shí)數(shù)域雙倍多累加(MACs)的單周期執(zhí)行。當(dāng)執(zhí)行復(fù)域算術(shù)運(yùn)算時(shí),這可以使得各個(gè)周期的吞吐能力乘以2.5倍。
      典型DSP的控制寄存器和存儲(chǔ)器都可以直接映射到微處理器內(nèi)核的存儲(chǔ)器空間中,使得微處理器內(nèi)核可以讀寫DSP本地?cái)?shù)據(jù)存儲(chǔ)器和配置寄存器??梢杂袃煞N工作模式,定期運(yùn)行模式和系統(tǒng)模式。在系統(tǒng)模式中,DSP處理器暫停工作并且將DSP的內(nèi)部資源映射到微處理器的存儲(chǔ)器空間中。微處理器內(nèi)核控制DSP的直接存儲(chǔ)器訪問(DMA)通道并且能夠讀寫DSP的本地?cái)?shù)據(jù)存儲(chǔ)器和配置寄存器。微處理器內(nèi)核可以通過由外部存儲(chǔ)器來初始化DMA轉(zhuǎn)移或通過在適當(dāng)?shù)某绦虼鎯?chǔ)器的位置上對(duì)4個(gè)連續(xù)地址直接寫入4組32位字節(jié)來修改DSP程序存儲(chǔ)器的內(nèi)容。通過微處理器內(nèi)核到DSP資源的這一完全可視性允許使用微處理器內(nèi)核調(diào)試工具來調(diào)試兩個(gè)處理器的代碼。
      在運(yùn)行模式中,典型的微處理器內(nèi)核只能訪問DSP命令寄存器和1K40位雙端口共享存儲(chǔ)器。兩個(gè)處理器可以它們各自的程序進(jìn)行工作,并且兩個(gè)處理器都可以作為主處理器來工作。DSP內(nèi)核具有可用于選擇性外部存儲(chǔ)器訪問的自有外部總線,從而使得兩個(gè)處理器都能夠完全獨(dú)立地和同時(shí)地工作。1K擴(kuò)展精度位置的雙端口共享存儲(chǔ)器可用于在微處理器和DSP內(nèi)核之間的高帶寬處理器間的通訊。從DSP內(nèi)核到微處理器內(nèi)核可以有9種中斷,而從微處理器內(nèi)核到DSP內(nèi)核可以有3種中斷。DSP內(nèi)核可以驅(qū)動(dòng)28個(gè)并行輸入輸出(PIO)線中的7個(gè)并且可以接收來自5個(gè)PIO線的中斷。PIO線可以由兩個(gè)處理器內(nèi)核來共享并且可以由微處理器內(nèi)核來完全軟件配置。
      DMA通道插入在外部存儲(chǔ)器和程序存儲(chǔ)器之間,而沒有插入在外部存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器之間。對(duì)數(shù)據(jù)存儲(chǔ)器的直接存儲(chǔ)器存取包括內(nèi)部數(shù)據(jù)緩存存儲(chǔ)器和20KB雙端口隨即存取存儲(chǔ)器(RAM),其一個(gè)端口連接著外部存儲(chǔ)器而另一端口連接著DSP和寄存器列以及運(yùn)算模塊。數(shù)據(jù)DMA不會(huì)影響DSP的執(zhí)行。程序執(zhí)行會(huì)被外部存儲(chǔ)器和程序存儲(chǔ)器之間的DMA停止,因?yàn)镈SP程序存儲(chǔ)器是單端口RAM。
      典型的DSP不提供中斷服務(wù)機(jī)制。而是使用查詢機(jī)制(采用指令WATCHINT)來適當(dāng)?shù)乇O(jiān)視中斷標(biāo)志和子程序。中斷的等待時(shí)間等于查詢周期+3個(gè)時(shí)鐘周期。WATCHINT指令的自動(dòng)插入可以由編程工具來提供。
      連接微處理器和DSP內(nèi)核的典型方法可簡化各種編程模式。SoC可以由微處理器編程接口來完全編程,從而可以使用來自DSP數(shù)據(jù)庫中的調(diào)用來執(zhí)行DSP功能。內(nèi)核也可以分別編程??梢杂煞蛛x的編程環(huán)境裝置來提供適用于整個(gè)SoC編程和模擬的功能。
      SoC的功能可以通過一些外圍設(shè)備來增加,包括2個(gè)SPI串行接口、2個(gè)USART、定時(shí)器、看門狗、并行I/O端口(PIO)、外圍數(shù)據(jù)控制器、8個(gè)ADC和8個(gè)DAC接口(ADDA)、時(shí)鐘發(fā)生器,以及中斷控制器。


      圖1顯示了適用于本發(fā)明的、由處理器、存儲(chǔ)器、外圍模塊以及數(shù)據(jù)總線結(jié)構(gòu)所構(gòu)成的典型的SoC。
      圖2是DSP內(nèi)核結(jié)構(gòu)的典型方框圖。
      圖3是適用于浮點(diǎn)復(fù)數(shù)算法的處理單元的方框圖。
      圖4圖示說明了可以籍助于復(fù)域浮點(diǎn)算法進(jìn)行互助處理的語音處理算法。
      圖5圖示說明了適用于基于本發(fā)明的集成電路的版圖布局圖。
      圖6籍助于實(shí)例圖示說明了適用于在單一開發(fā)環(huán)境中的數(shù)字信號(hào)處理和微處理器的圖示軟件開發(fā)。
      圖7參考有關(guān)矢量操作和操作數(shù)的實(shí)例顯示了由適用于特殊數(shù)據(jù)類型和操作的C語言編譯器所支持的圖示軟件開發(fā)。
      具體實(shí)施例方式
      現(xiàn)請(qǐng)參閱圖1,片上系統(tǒng)(SoC)102典型結(jié)構(gòu)的實(shí)施例包括浮點(diǎn)數(shù)字信號(hào)處理器(DSP)子系統(tǒng)104、微處理器內(nèi)核106,以及外圍電路110。在具體的實(shí)施例中,微處理器內(nèi)核106是ARM7TDMITM,ARM簡約型處理器內(nèi)核,而浮點(diǎn)DSP子系統(tǒng)104還包括數(shù)字信號(hào)處理器(DSP)內(nèi)核108,它可以是AtmelmAgic高性能超長指令字(VLIW)的DSP內(nèi)核。外圍電路110籍助于外圍總線122與系統(tǒng)總線/外圍總線橋路120通訊。系統(tǒng)總線/外圍總線橋路120與系統(tǒng)總線124相耦合。系統(tǒng)總線124與外圍總線接口126相耦合,并由外圍總線接口126產(chǎn)生控制訪問外部存儲(chǔ)或外圍設(shè)備的信號(hào)。微處理器存儲(chǔ)器128與系統(tǒng)總線124相耦合。
      典型實(shí)施例的片上系統(tǒng)102具有兩種工作模式,定期運(yùn)行模式和系統(tǒng)模式。在下文中將更加詳細(xì)地討論這些工作模式。根據(jù)工作模式可以運(yùn)轉(zhuǎn)不同的數(shù)據(jù)路徑。當(dāng)系統(tǒng)處于運(yùn)行模式時(shí)可以使能運(yùn)行模式的數(shù)據(jù)路徑130A。當(dāng)電路采用系統(tǒng)模式工作時(shí)可以使能系統(tǒng)模式的數(shù)據(jù)路徑130B。在兩種模式的工作期間可以使能處理器的專用數(shù)據(jù)路徑130C。運(yùn)行模式、系統(tǒng)模式和處理器專用的數(shù)據(jù)路徑130A、130B和130C分別提供適用于在SoC 102中的各個(gè)元件之間的通訊和數(shù)據(jù)轉(zhuǎn)移的數(shù)據(jù)路徑部件,如圖1所示。
      浮點(diǎn)DSP子系統(tǒng)104包括DSP內(nèi)核108、微處理器接口140、程序總線復(fù)用器/解復(fù)用器142、數(shù)據(jù)總線復(fù)用器/解復(fù)用器144、共享存儲(chǔ)器144、程序存儲(chǔ)器148、數(shù)據(jù)存儲(chǔ)器150和數(shù)據(jù)緩沖器152。浮點(diǎn)DSP子系統(tǒng)與系統(tǒng)總線124相耦合,使微處理器內(nèi)核106和DSP內(nèi)核108之間形成雙向通訊。數(shù)據(jù)/程序總線復(fù)用器154復(fù)用浮點(diǎn)DSP子系統(tǒng)104與外部存儲(chǔ)器的數(shù)據(jù)訪問和程序訪問。數(shù)據(jù)緩沖器152是雙端口雙儲(chǔ)存體,其中2個(gè)端口與DSP內(nèi)核108相耦合,另2個(gè)端口與數(shù)據(jù)/程序總線復(fù)用器154相耦合。
      在本發(fā)明的典型實(shí)施例中,程序存儲(chǔ)器148是由8K字節(jié)乘128位所構(gòu)成的單端口存儲(chǔ)器,而數(shù)據(jù)存儲(chǔ)器150是由3個(gè)存儲(chǔ)器頁面各自為2K字節(jié)乘40位用于左數(shù)據(jù)儲(chǔ)存體和3個(gè)存儲(chǔ)器頁面各自為2K字節(jié)乘40位用于右數(shù)據(jù)儲(chǔ)存體所構(gòu)成,可為各個(gè)堆棧提供6K字節(jié)的存儲(chǔ)且總計(jì)為12K字節(jié)的存儲(chǔ)。在典型的實(shí)施例中,數(shù)據(jù)緩沖器152是由2K字節(jié)乘40位所構(gòu)成,用于各自的左緩沖存儲(chǔ)器和右緩沖存儲(chǔ)器提供總計(jì)4K字節(jié)的存儲(chǔ)。另外,在該典型實(shí)施例中的共享存儲(chǔ)器146是由512字節(jié)乘40位所構(gòu)成的雙端口存儲(chǔ)器,用于各自左共享儲(chǔ)存體和右共享儲(chǔ)存體,提供總計(jì)1K字節(jié)乘40位的存儲(chǔ)。以下將進(jìn)一步詳細(xì)地討論存儲(chǔ)器單元的結(jié)構(gòu)和工作。
      在工作的典型模式中,微處理器內(nèi)核106作為SoC 102的主控制器起作用。SoC 102的引導(dǎo)序列是從來自外部非易失性存儲(chǔ)器的微處理器內(nèi)核106的引導(dǎo)程序開始的。隨后,微處理器內(nèi)核106從非易失性存儲(chǔ)器引導(dǎo)DSP內(nèi)核108。在引導(dǎo)程序之后,SoC 102能夠初始化它的正常工作。DSP內(nèi)核108具有從設(shè)備的行為,允許根據(jù)工作模式來訪問不同的系統(tǒng)資源。為了在運(yùn)行時(shí)間使得在DSP內(nèi)核108和微處理器內(nèi)核106的工作之間密切耦合,DSP內(nèi)核和微處理器內(nèi)核可以基于中斷來交換同步信號(hào)。
      系統(tǒng)模式工作在系統(tǒng)模式中,DSP內(nèi)核108暫停它的執(zhí)行,而微處理器內(nèi)核106繼續(xù)它的控制。當(dāng)DSP內(nèi)核108處于系統(tǒng)模式時(shí),微處理器內(nèi)核106可以訪問在DSP內(nèi)核中的多個(gè)內(nèi)部器件。微處理器內(nèi)核106訪問處于系統(tǒng)模式中的DSP內(nèi)核108資源的能力可以用于初始化和診斷的目的。通過訪問在數(shù)字信號(hào)處理器(DSP)內(nèi)核108中的命令寄存器和微處理器接口140,微處理器內(nèi)核106就可以在系統(tǒng)模式和運(yùn)行模式之間改變DSP內(nèi)核的工作狀態(tài),初始化DMA事務(wù)、強(qiáng)制單步或多步執(zhí)行,或者讀取DSP內(nèi)核的工作狀態(tài)。
      運(yùn)行模式工作在運(yùn)行模式中,DSP內(nèi)核108可以在其自有的VLIW程序的控制下工作并且微處理器內(nèi)核106只能夠訪問共享存儲(chǔ)器146和與數(shù)字信號(hào)處理器(DSP)內(nèi)核108有關(guān)的命令寄存器以及微處理器接口140。
      外圍電路110可以包括多個(gè)構(gòu)成執(zhí)行現(xiàn)有技術(shù)中通常所熟知的常規(guī)數(shù)據(jù)和信號(hào)轉(zhuǎn)移操作的電路模塊。在典型的實(shí)施例中,外圍電路110包括串行外圍接口(SPI)111A和111B、通用同步/異步接收器/發(fā)送器(USART)112A和112B、定時(shí)計(jì)時(shí)器113、看門狗定時(shí)器114、并行I/O控制器(PIO)115、外圍數(shù)據(jù)控制器(PDC)116、模擬到數(shù)字和數(shù)字到模擬接口(ADDA)117、時(shí)鐘發(fā)生器118以及中斷請(qǐng)求控制器119。
      現(xiàn)請(qǐng)參閱圖2,現(xiàn)在介紹浮點(diǎn)DSP子系統(tǒng)104的結(jié)構(gòu)和工作的細(xì)節(jié)。在典型實(shí)施例中,浮點(diǎn)DSP子系統(tǒng)104是一個(gè)超長指令字(VLIW)的數(shù)值處理器,能夠?qū)EEE 754 40位擴(kuò)展精度浮點(diǎn)數(shù)據(jù)進(jìn)行運(yùn)算。浮點(diǎn)DSP子系統(tǒng)104也能夠?qū)?2位整數(shù)數(shù)字格式的數(shù)據(jù)進(jìn)行運(yùn)算。DSP內(nèi)核108包括運(yùn)算器模塊202、數(shù)據(jù)寄存器列204、多地址發(fā)生單元206、以及地址寄存器列208。運(yùn)算器模塊202包含執(zhí)行算術(shù)運(yùn)算的硬件。它能夠基于整數(shù)或者浮點(diǎn)的數(shù)據(jù)進(jìn)行運(yùn)算。如圖2所示,數(shù)據(jù)路徑部件用于在浮點(diǎn)DSP子系統(tǒng)104中所有元件以及數(shù)據(jù)程序總線復(fù)用器154的操作互連。
      程序存儲(chǔ)器148存儲(chǔ)浮點(diǎn)DSP子系統(tǒng)104所要執(zhí)行的程序。程序存儲(chǔ)器148與本地序列發(fā)生器210相耦合,該本地序列發(fā)生器210用于執(zhí)行本地控制和指令編碼的任務(wù)。序列發(fā)生器包括指令譯碼器212A、條件發(fā)生器212B、狀態(tài)寄存器212C以及程序計(jì)數(shù)器212D。在典型實(shí)施例中,程序存儲(chǔ)器148是由8K字節(jié)乘128位的單端口存儲(chǔ)器所構(gòu)成。需要數(shù)字信號(hào)處理的許多應(yīng)用部分都可以只使用程序存儲(chǔ)器來實(shí)現(xiàn)。典型實(shí)施例的程序存儲(chǔ)器的尺寸是與代碼壓縮相配合,以便于提供大約24K指令的等效片上程序存儲(chǔ)器尺寸。當(dāng)系統(tǒng)處于系統(tǒng)模式工作時(shí),微處理器內(nèi)核106可以采用兩種不同的方法來修改程序存儲(chǔ)器148的內(nèi)容。首先,微處理器內(nèi)核106可以通過訪問在微處理器內(nèi)核106存儲(chǔ)器映射圖中分配給程序存儲(chǔ)器148的存儲(chǔ)器地址空間直接寫入到程序存儲(chǔ)器140中的位置。在該訪問模式中,微處理器內(nèi)核106可以正確的地址邊界將4個(gè)32位字節(jié)寫入到4個(gè)連續(xù)的地址中,以便于完成單個(gè)VLIW字節(jié)寫入周期。微處理器內(nèi)核106也可以通過初始化從外部DSP存儲(chǔ)器到程序存儲(chǔ)器148的DMA轉(zhuǎn)移來修改程序存儲(chǔ)器148的內(nèi)容。在該訪問模式中,可以每個(gè)周期64位的方式從外部存儲(chǔ)器向程序存儲(chǔ)器148來轉(zhuǎn)移單個(gè)VLIW字節(jié),即,每兩個(gè)時(shí)鐘周期一個(gè)完整的字節(jié)。由于使用了允許在兩個(gè)和三個(gè)之間的平均程序壓縮的程序壓縮方案,所以系統(tǒng)從外部存儲(chǔ)器讀取的代碼訪問能力大于每個(gè)時(shí)鐘周期的指令。當(dāng)系統(tǒng)處于運(yùn)行模式時(shí),微處理器內(nèi)核106就不能夠訪問程序存儲(chǔ)器148。當(dāng)以運(yùn)行模式工作時(shí),系統(tǒng)能夠初始化從外部存儲(chǔ)器到程序存儲(chǔ)器148的DMA轉(zhuǎn)移,以便于下載新的代碼程序部分。數(shù)據(jù)存儲(chǔ)器150是由左數(shù)據(jù)存儲(chǔ)堆棧220L和右數(shù)據(jù)存儲(chǔ)堆棧220R所組成。在典型實(shí)施例中,數(shù)據(jù)存儲(chǔ)器150是以3個(gè)存儲(chǔ)器頁面所構(gòu)成的,在各個(gè)存儲(chǔ)器頁面中,用于左數(shù)據(jù)存儲(chǔ)堆棧220L的各頁為2K字節(jié)乘40位,用于右數(shù)據(jù)存儲(chǔ)堆棧220R的各頁為2K字節(jié)乘40位,各自為左數(shù)據(jù)存儲(chǔ)堆棧220L和右數(shù)據(jù)存儲(chǔ)堆棧220R提供總計(jì)6K字節(jié),兩者總計(jì)提供12K的存儲(chǔ)。各個(gè)數(shù)據(jù)儲(chǔ)存體220L和220R都是雙端口存儲(chǔ)器,它允許4個(gè)同時(shí)的訪問,在典型實(shí)施例中,這是兩類讀取和兩類寫入。DSP內(nèi)核108可以矢量訪問數(shù)據(jù)存儲(chǔ)器150和將單個(gè)數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)存儲(chǔ)器150。訪問復(fù)數(shù)數(shù)據(jù)就等同于訪問矢量數(shù)據(jù)。
      在同時(shí)讀取和寫入存儲(chǔ)器訪問期間,多地址發(fā)生單元206產(chǎn)生兩個(gè)共同對(duì)左和右數(shù)據(jù)儲(chǔ)存體的獨(dú)立讀取和寫入地址命令。在數(shù)據(jù)寄存器列204和數(shù)據(jù)存儲(chǔ)器150之間總的有效帶寬是每個(gè)時(shí)鐘周期20位,從而允許數(shù)字集約計(jì)算(例如,復(fù)數(shù)FFT和FIR)的全速實(shí)現(xiàn)。數(shù)據(jù)緩沖器152包括左緩沖存儲(chǔ)器230L和右緩沖存儲(chǔ)器230R。在典型實(shí)施例中,數(shù)據(jù)緩沖器152是以2K字節(jié)乘40位構(gòu)成,用于左緩沖存儲(chǔ)器230L和右緩沖存儲(chǔ)器230R。數(shù)據(jù)緩沖器152是以雙端口存儲(chǔ)器構(gòu)成。數(shù)據(jù)緩沖器152的一個(gè)端口連接著DSP內(nèi)核108。多地址發(fā)生單元206產(chǎn)生緩沖存儲(chǔ)器地址,用于將數(shù)據(jù)轉(zhuǎn)入和轉(zhuǎn)出DSP內(nèi)核。數(shù)據(jù)緩沖器152的第二個(gè)端口連接著數(shù)據(jù)/程序總線復(fù)用器154。在典型實(shí)施例中,在DSP內(nèi)核108和數(shù)據(jù)緩沖器152之間的有效帶寬等于在數(shù)據(jù)/程序總線復(fù)用器154和數(shù)據(jù)緩沖器152之間的有效帶寬每個(gè)時(shí)鐘周期10位。同樣,在典型實(shí)施例中,系統(tǒng)的最大外部存儲(chǔ)器的大小為左和右16M字節(jié)(等效于32M字節(jié)或者160M字節(jié);24位地址總線)。
      直接存儲(chǔ)器地址(DMA)控制器250管理在外部存儲(chǔ)器和數(shù)據(jù)緩沖器152之間的數(shù)據(jù)轉(zhuǎn)移。DMA控制器250能夠?qū)ν獠看鎯?chǔ)器產(chǎn)生具有步長的地址。直接存儲(chǔ)器地址轉(zhuǎn)入和轉(zhuǎn)出數(shù)據(jù)緩沖器152,它可以與零超長的全速內(nèi)核指令執(zhí)行相并行執(zhí)行且沒有DSP內(nèi)核處理器108的干涉,除非程序處理初始化。在DSP內(nèi)核108的地址空間中的最后存儲(chǔ)器塊分配給共享存儲(chǔ)器146,并且可在DSP內(nèi)核108和微處理器106之間共享。在典型實(shí)施例中,共享存儲(chǔ)器146可由512字節(jié)乘40位的雙端口存儲(chǔ)器構(gòu)成,用于左共享存儲(chǔ)器模塊240L和右共享存儲(chǔ)器模塊240R,提供總的1K字節(jié)乘40位的存儲(chǔ)器。該存儲(chǔ)器可以用于在兩個(gè)處理器之間有效地轉(zhuǎn)移數(shù)據(jù)。在典型實(shí)施例中,在DSP內(nèi)核108和共享存儲(chǔ)器146之間的有效帶寬是每個(gè)時(shí)鐘周期10位。微處理器內(nèi)核106的有效帶寬受到微處理器總線尺寸的限制。在典型實(shí)施例中,處理器總線是32位,可提供每個(gè)微處理器時(shí)鐘周期4位的帶寬。
      現(xiàn)請(qǐng)參閱圖3,為本發(fā)明實(shí)施例提出了運(yùn)算模塊202和數(shù)據(jù)寄存器列204的進(jìn)一步細(xì)節(jié)。數(shù)據(jù)寄存器列204與運(yùn)算模塊202相耦合。數(shù)據(jù)寄存器列204由左數(shù)據(jù)寄存器邊302L和右數(shù)據(jù)寄存器列邊302R構(gòu)成。數(shù)據(jù)寄存器列204由實(shí)部和虛部的256個(gè)輸入的復(fù)數(shù)寄存器列構(gòu)成。左數(shù)據(jù)寄存器邊302L和右數(shù)據(jù)寄存器列邊302R也都可以作為矢量運(yùn)算所使用的雙寄存器列。當(dāng)執(zhí)行單指令時(shí),數(shù)據(jù)寄存器列204可以作為一般512個(gè)輸入的寄存器列使用。左數(shù)據(jù)寄存器邊302L和右數(shù)據(jù)寄存器列邊302R都是8端口,對(duì)于運(yùn)算模塊202和數(shù)據(jù)存儲(chǔ)器150、數(shù)據(jù)緩沖器152和共享存儲(chǔ)器146的數(shù)據(jù)輸入和輸出來說,可提供總計(jì)16個(gè)有效I/O端口。在典型的實(shí)施例中,在數(shù)據(jù)寄存器列204和運(yùn)算模塊202之間的總的數(shù)據(jù)帶寬是每個(gè)時(shí)鐘周期70位,從而可以避免在數(shù)據(jù)流中的瓶頸阻塞。
      現(xiàn)請(qǐng)進(jìn)一步關(guān)注運(yùn)算模塊202的細(xì)節(jié),在典型實(shí)施例中,它包括浮點(diǎn)/整數(shù)乘法器304A-D、卷積、除法、以及移位/邏輯單元306A和306B,浮點(diǎn)/整數(shù)加法/減法單元308A和308B、最小/最大運(yùn)算單元310A和310B、浮點(diǎn)/整數(shù)減法單元312A和浮點(diǎn)/整數(shù)加法單元312B、寄存器314A-H、2-輸入多路復(fù)用器316A-H、3-輸入多路復(fù)用器318A和318B、以及4-輸入多路復(fù)用器320A和320B。在卷積、除法、移位/邏輯單元306A和306B中的除法功能可以為高效除法和逆均方根計(jì)算產(chǎn)生根源。數(shù)據(jù)路徑裝置可根據(jù)圖3所示的路徑方式將運(yùn)算模塊202的元件都耦合在一起。運(yùn)算模塊202的元件結(jié)構(gòu)使得運(yùn)算模塊可以很自然地以下列方式來支持復(fù)數(shù)算法,例如,單周期復(fù)數(shù)乘法或者單周期復(fù)數(shù)乘法和加法,在單周期重疊計(jì)算計(jì)算中的快速FFT計(jì)算、以及矢量計(jì)算。當(dāng)DSP內(nèi)核108開始每個(gè)時(shí)鐘周期10次浮點(diǎn)運(yùn)算時(shí),就能夠在單周期FFT重疊計(jì)算執(zhí)行期間獲得最高的性能。
      在典型的實(shí)施例中,浮點(diǎn)DSP子系統(tǒng)104是VLIW引擎,但從用戶角度來看,可以認(rèn)為是類似于RISC機(jī)器來實(shí)現(xiàn)來自數(shù)據(jù)寄存器列204的數(shù)據(jù)的三階、兩階或四階計(jì)算操作以及在本地存儲(chǔ)器和數(shù)據(jù)寄存器列204之間的數(shù)據(jù)傳輸操作。為了獲得最大的性能,運(yùn)算器都是流水線。流水線的深度取決于所采用的運(yùn)算器。運(yùn)算的目錄和并行程度可以由匯編程序優(yōu)化器在匯編時(shí)自動(dòng)定義和管理,從而允許高效的代碼執(zhí)行。所顯示的數(shù)據(jù)寄存器列204的結(jié)構(gòu)可以為RISC類編程模式提供支持。
      圖4顯示了適用于根據(jù)本發(fā)明實(shí)施例所構(gòu)架和操作的語音增強(qiáng)方法的流程圖。適用于執(zhí)行與標(biāo)號(hào)元件有關(guān)的操作的算法一般都是業(yè)內(nèi)技術(shù)人員所熟知的。輸入信號(hào)400以時(shí)間采樣格式提供給線性預(yù)測編碼(LPC)模塊402,由它來計(jì)算LPC系數(shù)。簡單地說,LPC試圖基于原先采樣的有效數(shù)值的線性組合來預(yù)測地輸入信號(hào)的其它數(shù)值。LPC采樣通過用于倒頻譜系數(shù)計(jì)算的第一倒頻譜模塊404A輸入到用于功率頻譜計(jì)算的第一功率頻譜模塊406A和用于LPC噪聲平均的噪聲平均模塊410。首先輸入到第一倒頻譜模塊404A,利用LPC系數(shù)來計(jì)算一些倒頻譜系數(shù)。倒頻譜系數(shù)可以將信號(hào)的頻譜成份表示為正交的矢量組。對(duì)于諸如回聲檢測和消除之類某些信號(hào)處理來說,實(shí)部倒頻譜的表示方法是特別有用的。從LPC系數(shù)中引伸出倒頻譜系數(shù)的方法可籍助于遞歸算法ci=ai+1i&Sigma;j=1i-1(j)ai-jcj,]]>i=1,...,n式中ci是倒頻譜系數(shù)的數(shù)值,ai表示LPC系數(shù)。另一個(gè)使倒頻譜系數(shù)概念化的方法是使用下列表示式來表示Cepstral coefficients=real(ifft(log(|fft(X)|)))式中X是輸入數(shù)據(jù)幀。此等式的實(shí)例顯示了倒頻譜系數(shù)的計(jì)算需要FFT和逆FFT函數(shù)的計(jì)算,這兩者都需要在復(fù)域中的數(shù)據(jù)處理。計(jì)算距離模塊408計(jì)算在第一倒頻譜模塊404A的輸出,即以上詳細(xì)說明的倒頻譜系數(shù)序列,和來自第二倒頻譜模塊404B輸出的倒頻譜系數(shù)序列之間的距離,用于評(píng)估在沒有語音信號(hào)的時(shí)間間隔周期中的噪聲信號(hào)的倒頻譜結(jié)構(gòu)。在第一倒頻譜模塊404A、第二倒頻譜模塊404B和計(jì)算模塊408中的倒頻譜表示方法的使用有利于將噪聲的特殊結(jié)構(gòu)與語音信號(hào)中的特殊結(jié)構(gòu)相分離,以便于使用下文中將要討論的Wiener(維納)濾波器模塊416的結(jié)構(gòu)。在這部分內(nèi)容中,倒頻譜距離可以定義成在矢量坐標(biāo)之間的差異平方之和的平方根因?yàn)槠椒礁\(yùn)算不會(huì)影響用于區(qū)分語音或非語音信號(hào)的量度,所以運(yùn)算就不會(huì)明確地執(zhí)行。所采用的術(shù)語是業(yè)內(nèi)技術(shù)人員所熟知的。第二倒頻譜模塊404B也可計(jì)算倒頻譜系數(shù),在這種情況下,可以使用來自噪聲平均模塊410的數(shù)據(jù)。檢測模塊412可以采用業(yè)內(nèi)技術(shù)人員所熟知的多種算法中的任一方法來實(shí)現(xiàn)語音激勵(lì)檢測器(VAD)。噪聲平均模塊410可基于來自LPC模塊402和檢測模塊412所提供的輸入信號(hào)計(jì)算平均數(shù)值。業(yè)內(nèi)技術(shù)人員應(yīng)該意識(shí)到,第一和第二倒頻譜模塊可以共享系統(tǒng)中的軟件和硬件資源,或者可以表示完全不同的功能。也就是說,例如,如果由第一和第二倒頻譜模塊404A和404B所執(zhí)行的數(shù)值運(yùn)算可以暫時(shí)分離的話,則就有可能共享適用于這些計(jì)算的相同的數(shù)據(jù)存儲(chǔ)器、寄存器、指令集以及其它資源。
      第一功率譜模塊406A和第二功率譜模塊406B各自在表示功率譜評(píng)估的各自遞歸系數(shù)是采用各自遞歸系數(shù)的原先評(píng)估的時(shí)間平均(低通濾波器)的意義上來計(jì)算功率譜的平滑評(píng)估,并使用下列表示式ci=αce+(1+α)ci-1式中ce表示基于當(dāng)前數(shù)據(jù)幀的各個(gè)遞歸系數(shù)的評(píng)估,ci-1表示原先平均的評(píng)估,以及ci表示當(dāng)前平均的評(píng)估。
      由第一和第二功率譜模塊406A和406B所執(zhí)行的運(yùn)算可以共享軟件和硬件資源或者可以表示完全不同的功能,其原因完全類似于結(jié)合第一和第二倒頻譜模塊404A和404B所討論的內(nèi)容。第一和第二功率譜模塊406A和406B的輸出可以提供給頻譜/半波模塊414,由它來執(zhí)行在頻譜和隨后的半波整流之間的不同操作,其中任何所產(chǎn)生的負(fù)的頻譜系數(shù)數(shù)值都設(shè)置等于零。頻譜/半波模塊414的輸出和第二功率譜模塊406B的輸出都提供給濾波器模塊416,由它對(duì)FFT變換的輸入信號(hào)420進(jìn)行操作,以便于對(duì)所變換的輸入信號(hào)實(shí)現(xiàn)Weiner濾波器功能。Weiner濾波器功能是業(yè)內(nèi)所已知的,作為最小均方評(píng)估器,它采用系統(tǒng)誤差或噪聲的模型來數(shù)值最小化在所需信號(hào)中由于噪聲衰減所引起的平均誤差。Wiener濾波器功能可以在頻域中操作,因此可以FFT變換的輸入信號(hào)420的形式應(yīng)用于輸入信號(hào)。Wiener濾波器的一個(gè)典型表示方法可由下列表示式所表示H(&omega;)=Rs(&omega;)Rs(&omega;)+Rn(&omega;)]]>式中H(ω)是濾波器函數(shù),Rs(ω)是無噪聲信號(hào)的功率譜密度,以及Rn(ω)是噪聲的功率譜密度。濾波器模塊416的輸出提供給逆FFT模塊418,由它采用業(yè)內(nèi)所已知的多種方法中的任意方法來計(jì)算逆FFT。逆FFT的計(jì)算將來自頻域的濾波信號(hào)轉(zhuǎn)換成時(shí)域的信號(hào)。逆FFT模塊418的輸出是輸入信號(hào)400噪聲減小版本的輸出信號(hào)422。
      業(yè)內(nèi)技術(shù)人員將會(huì)意識(shí)到,圖4所具體表示的方法也有可能應(yīng)用于圖像改善、一般數(shù)據(jù)流中的信噪比提高以及一般采用數(shù)字信號(hào)處理的其它應(yīng)用。還應(yīng)該進(jìn)一步意識(shí)到的是,該計(jì)算得益于對(duì)部分或全部的數(shù)值處理采用浮點(diǎn)復(fù)數(shù)數(shù)值表示法,并且該數(shù)值處理具有本發(fā)明所具體表示的功能。
      現(xiàn)請(qǐng)參閱圖5,顯示了適用于本發(fā)明典型實(shí)施例的版圖平面圖。該版圖說明了集成電路500,它可實(shí)現(xiàn)SoC 102的架構(gòu),包括ARM7TDMITMARM簡約型處理器內(nèi)核和AtmelmAgic高性能超長指令字(VLIW)DSP,并采用五層金屬層的商用180nm CMOS硅工藝技術(shù)。
      集成電路500包括SoC焊點(diǎn)環(huán)502和SoC內(nèi)核電路504。SoC焊點(diǎn)環(huán)502包括外部存儲(chǔ)器數(shù)據(jù)總線存取焊點(diǎn)506、外部存儲(chǔ)器地址總線存取焊點(diǎn)508、通用同步/異步接收器/發(fā)送器(USART)存取焊點(diǎn)510、并行I/O(PIO)存取焊點(diǎn)512、ARM7數(shù)據(jù)總線焊點(diǎn)514、ARM7地址總線焊點(diǎn)516、PLL焊點(diǎn)518、模擬到數(shù)字與數(shù)字到模擬接口(ADDA)焊點(diǎn)520,以及串行外圍接口(SPI)焊點(diǎn)522。SoC內(nèi)核電路504包括mAgic內(nèi)核524、mAgic寄存器列526、mAgic程序存儲(chǔ)器528、mAgic程序寄存器和XM緩沖存儲(chǔ)器530、ARM7TDMITM內(nèi)核532、ARM7外圍534、ARM程序存儲(chǔ)器536,以及Arm mAgic共享的存儲(chǔ)器緩沖器538。
      參考圖5,mAgic內(nèi)核524是DSP內(nèi)核108架構(gòu)的物理實(shí)現(xiàn)和典型實(shí)施例,mAgic寄存器列526是數(shù)據(jù)寄存器列204的物理實(shí)現(xiàn)和典型實(shí)施例,mAgic程序存儲(chǔ)器528是程序存儲(chǔ)器148的物理實(shí)現(xiàn)和典型實(shí)施例,mAgic數(shù)據(jù)存呼氣和XM緩沖存儲(chǔ)器530是數(shù)據(jù)存儲(chǔ)器150和數(shù)據(jù)緩沖器152的物理實(shí)現(xiàn)和典型實(shí)施例,ARM7TDMITM內(nèi)核532是微處理器內(nèi)核106的物理實(shí)現(xiàn)和典型實(shí)施例,ARM7外圍534是外圍電路110的物理實(shí)現(xiàn)和典型實(shí)施例,ARM程序存儲(chǔ)器536是微處理器存儲(chǔ)器128的物理實(shí)現(xiàn)和典型實(shí)施例,以及Arm mAgic共享的存儲(chǔ)器緩沖器538是共享存儲(chǔ)器146的物理實(shí)現(xiàn)和典型實(shí)施例。
      除了鍵合焊點(diǎn)區(qū)域以外,用于集成電路500的大約芯片尺寸是45mm2。業(yè)內(nèi)技術(shù)人員應(yīng)該意識(shí)到,也有可能采用其它版圖結(jié)構(gòu),并且也有可能采用其它工藝技術(shù)來制造本發(fā)明的各種實(shí)施例。
      現(xiàn)請(qǐng)參閱圖6,通過一個(gè)實(shí)例來圖示說明用于描述適用于數(shù)字信號(hào)處理和微處理器操作在單一開發(fā)環(huán)境中的軟件開發(fā)的顯示。圖形用戶界面600提供用戶與開發(fā)環(huán)境交互的方法,它包括仿真器器件樹形窗口602、仿真控制窗口604、DSP內(nèi)核開發(fā)界面606、微處理器內(nèi)核開發(fā)界面608、DSP程序分解界面610、數(shù)據(jù)存儲(chǔ)器界面612、寄存器列界面614、出錯(cuò)報(bào)告窗口616、文檔參考窗口618、信息窗口620、文本工具欄622A,以及圖形工具欄622B。
      仿真器器件樹形窗口602提供對(duì)數(shù)字信號(hào)處理器內(nèi)核108和微處理器內(nèi)核06兩者的內(nèi)部資源的探測和可視訪問。DSP內(nèi)核開發(fā)界面606提供用于輸入來自數(shù)字信號(hào)處理器指令集的命令的部件以及用于編譯成目標(biāo)代碼并且連接成可執(zhí)行代碼的部件,編譯機(jī)制使得用戶可以一系列的方式來輸入命令,同時(shí)創(chuàng)建有利于數(shù)字信號(hào)處理器指令級(jí)并行、包括數(shù)據(jù)的依賴和反應(yīng)時(shí)間等所預(yù)定的最佳代碼。例如,一系列連續(xù)代碼命令以及所產(chǎn)生的最佳預(yù)定代碼如下所示連續(xù)代碼預(yù)定代碼A=B+C A=B+C;D=E*F;Q=Memory[I]D=E*F L=M+NG=A+D G=A+D;P=Q*RL=M+NQ=Memory[I]P=Q*R其中在相同行中所出現(xiàn)的預(yù)定代碼指令意味著在DSP內(nèi)核108中并行執(zhí)行。
      微處理器代碼開發(fā)界面608提供了用于輸入來自微處理器指令集命令的部件和用于編譯成目標(biāo)代碼并且連接成可執(zhí)行代碼的部件。DSP程序分解界面610提供了用于詢問在本地序列器210、數(shù)據(jù)寄存器列204、多地址發(fā)生單元206以及地址寄存器列208中所包含數(shù)值的部件。地址寄存器列208也可稱之為SLAMP寄存器。SLAMP寄存器包括S11位起始寄存器,用于識(shí)別矢量絕對(duì)基地址或循環(huán)緩沖器起始地址;L11位長度的寄存器,用于指定矢量的長度;A11位地址寄存器,用于指定地址偏移或絕對(duì)基地址;M7位增量寄存器,用于給出地址增量;以及,P9位頁面寄存器,用于提供內(nèi)部存儲(chǔ)器的頁面地址。
      在改變組合中使用SLAMP字段,以便于控制多地址發(fā)生單元206工作的不同模式。數(shù)據(jù)存儲(chǔ)器界面612提供了用于監(jiān)測在數(shù)據(jù)存儲(chǔ)器150中所存儲(chǔ)的數(shù)據(jù)數(shù)值的部件。寄存器列界面614提供了監(jiān)測在數(shù)據(jù)寄存器列204中所存儲(chǔ)的數(shù)據(jù)數(shù)值的部件。仿真控制窗口604提供了用于調(diào)用仿真使得用戶能夠選擇周期精確仿真或指令精確仿真的部件。出錯(cuò)報(bào)告窗口616提供了用于向用戶通報(bào)出錯(cuò)的部件。文檔參考窗口618提供了用于參考正在修改的或者仿真環(huán)境正在使用的文檔的部件。信息窗口620提供了用于向用戶通報(bào)相關(guān)信息的部件。文字工具欄622A為軟件開發(fā)環(huán)境的控制提供了基于文字的參考和訪問。圖形工具欄622B為軟件開發(fā)環(huán)境所常用的控制提供了可視參考和訪問。業(yè)內(nèi)技術(shù)人員應(yīng)該意識(shí)到,所提出的界面和控制也可以采用可提供其它信息或功能的其它窗口來擴(kuò)大,并且窗口的具體形式和位置都可以改變,以便于在本發(fā)明的精神范圍內(nèi)來滿足用戶的使用偏好。
      現(xiàn)請(qǐng)參閱圖7,該圖參考了與矢量運(yùn)算和操作數(shù)有關(guān)的實(shí)例圖示說明了用于指定數(shù)據(jù)類型和操作可由C語言編譯器所支持的軟件環(huán)境。業(yè)內(nèi)的技術(shù)人員都應(yīng)該意識(shí)到,以下所說明和討論的內(nèi)容可以同樣有效地應(yīng)用于多種編程語言的選擇。源代碼樹702提供了對(duì)適用于C編程、C++編程的源代碼模塊以及微處理器內(nèi)核106和DSP內(nèi)核108所要執(zhí)行的匯編語言程序的可視訪問。擴(kuò)展代碼開發(fā)界面704提供了用于輸入基于C編程、C++編程以及所要選擇微處理器的匯編語言的命令的部件。擴(kuò)展代碼開發(fā)界面704還進(jìn)一步提供了用于將所述匯編代碼編譯成目標(biāo)代碼并將目標(biāo)代碼連接成可執(zhí)行代碼的部件。業(yè)內(nèi)的技術(shù)人員都應(yīng)該意識(shí)到的,C編程語言是C++編程語言的一個(gè)子集。此外,還有一些適用于C編程語和C++編程語言的標(biāo)準(zhǔn)。在本說明書的內(nèi)容中,應(yīng)該理解的是,術(shù)語C編程語言、C++編程語言、C、C++都不是旨在限制而是為了本說明書的目的可以相互交換的。所述術(shù)語可以認(rèn)為是在較寬可接受范圍內(nèi)的語言版本。具有這一解釋的C++語言內(nèi)容的特殊版本可由標(biāo)準(zhǔn)ISO/IEC148821998給出。源代碼可以采用將被認(rèn)作為符合標(biāo)準(zhǔn)化(ISO)C的這一標(biāo)準(zhǔn)格式內(nèi)容來編寫。
      擴(kuò)展代碼開發(fā)界面704還提供了用于翻譯和編譯C++可呼叫數(shù)字信號(hào)處理函數(shù)的部件,以及用于對(duì)包括整數(shù)、浮點(diǎn)復(fù)數(shù)整數(shù)、復(fù)數(shù)浮點(diǎn)、矢量整數(shù)、矢量浮點(diǎn)、指針、陣列、結(jié)構(gòu)和集合等一系列擴(kuò)展數(shù)據(jù)類型的操作的部件。擴(kuò)展代碼開發(fā)界面還能夠與美國國家標(biāo)準(zhǔn)研究院(American National Standards Institute-ANSI)C標(biāo)準(zhǔn)數(shù)學(xué)題庫相交互,ANSI C標(biāo)準(zhǔn)是業(yè)內(nèi)技術(shù)人員所熟知的,它可作為標(biāo)準(zhǔn)C函數(shù)庫的ISO/IEC98991990標(biāo)準(zhǔn)的一個(gè)子集。擴(kuò)展代碼開發(fā)界面704還結(jié)合了編譯器裝置,其具有實(shí)現(xiàn)IF語句翻譯與完整的條件表達(dá)示運(yùn)算的語言擴(kuò)充部件、實(shí)現(xiàn)WHERE語句翻譯的語言擴(kuò)充部件以及寄存器用法最佳化的部件。
      在上述說明書中,已經(jīng)參考其所附的特殊實(shí)施例討論了本發(fā)明。然而,很顯然,所作的各種改進(jìn)和變化都不背離所附權(quán)利要求所闡述的本發(fā)明的寬泛精神和范圍。因此,說明書以及附圖都可以認(rèn)為只是說明性而非限制性的。
      權(quán)利要求
      1.一種裝置,它包括微處理器;以及,數(shù)字信號(hào)處理器,它與所述微處理器相耦合,所述數(shù)字信號(hào)處理器能夠?qū)?fù)域中的浮點(diǎn)數(shù)據(jù)進(jìn)行運(yùn)算,所述微處理器和所述數(shù)字信號(hào)處理器都是單個(gè)集成電路中的一部分。
      2.如權(quán)利要求1所述的裝置,其特征在于,所述微處理器是精簡指令集計(jì)算機(jī)處理器。
      3.如權(quán)利要求1所述的裝置,其特征在于,所述數(shù)字信號(hào)處理器采用超長指令字架構(gòu)。
      4.如權(quán)利要求1所述的裝置,其特征在于,所述微處理器和所述數(shù)字信號(hào)處理器各自都能夠作為主或者從處理器來使用。
      5.如權(quán)利要求1所述的裝置,其特征在于,所述集成電路還包括一組與總線相耦合的片上外圍電路,所述總線與所述微處理器和所述數(shù)字信號(hào)處理器相耦合。
      6.如權(quán)利要求5所述的裝置,其特征在于,至少一個(gè)所述外圍電路還包括模擬到數(shù)字/數(shù)字到模擬接口模塊。
      7.如權(quán)利要求6所述的裝置,其特征在于,所述模擬到數(shù)字/數(shù)字到模擬接口模塊配置成與至多8個(gè)模數(shù)轉(zhuǎn)換器加上8個(gè)數(shù)模轉(zhuǎn)換器連接。
      8.如權(quán)利要求5所述的裝置,其特征在于,至少一個(gè)所述外圍電路是外圍數(shù)據(jù)控制器。
      9.如權(quán)利要求5所述的裝置,其特征在于,至少一個(gè)所述外圍電路是串行端口。
      10.如權(quán)利要求5所述的裝置,其特征在于,至少一個(gè)所述外圍電路是通用同步/異步接收器/發(fā)送器。
      11.一種集成電路,它包括數(shù)字信號(hào)處理器,它能夠?qū)?fù)域中的浮點(diǎn)數(shù)據(jù)進(jìn)行運(yùn)算,所述浮點(diǎn)數(shù)據(jù)包括尾數(shù)部分和指數(shù)部分。
      12.如權(quán)利要求11所述的集成電路,其特征在于,所述浮點(diǎn)數(shù)據(jù)以擴(kuò)展精度格式來表示。
      13.如權(quán)利要求11所述的集成電路,其特征在于,所述浮點(diǎn)數(shù)據(jù)以至少40位來表示。
      14.如權(quán)利要求11所述的集成電路,其特征在于,所述浮點(diǎn)數(shù)據(jù)以小于32位的格式來表示。
      15.一種信號(hào)處理系統(tǒng),它包括微處理器部件,用于數(shù)據(jù)處理;數(shù)字信號(hào)處理部件,用于處理以數(shù)字格式所表示的信號(hào);以及,傳輸部件,用于在所述微處理器部件和所述數(shù)字信號(hào)處理部件之間傳遞信號(hào);所述微處理器部件、所述數(shù)字信號(hào)處理部件和所述傳輸部件都是單個(gè)集成電路中的一個(gè)部分;所述數(shù)字信號(hào)處理部件能夠?qū)?fù)域中的浮點(diǎn)數(shù)據(jù)進(jìn)行運(yùn)算。
      16.一種信號(hào)處理方法,它包括以下步驟向片上系統(tǒng)提供輸入信號(hào);以所述片上系統(tǒng)使用復(fù)域中的浮點(diǎn)表示法對(duì)所述輸入信號(hào)進(jìn)行運(yùn)算并產(chǎn)生結(jié)果;以及,輸出所述結(jié)果。
      17.一種信號(hào)處理方法,該方法包括以下步驟提供時(shí)間采樣格式的輸入信號(hào);自所述輸入信號(hào)計(jì)算一組線性預(yù)測編碼系數(shù);自所述線性預(yù)測編碼系數(shù)計(jì)算第一組倒頻譜系數(shù);自所述線性預(yù)測編碼系數(shù)計(jì)算第一組平滑功率譜;自所述線性預(yù)測編碼系數(shù)和語音激勵(lì)檢測器的輸出計(jì)算平均數(shù)值組的系數(shù);自所述平均數(shù)字組的系數(shù)計(jì)算第二組倒頻譜系數(shù);計(jì)算在所述第一組倒頻譜系數(shù)和所述第二組倒頻譜系數(shù)之間的向量距離;籍助于可實(shí)現(xiàn)所述語音激勵(lì)檢測器的多種語音檢測算法中的一種算法對(duì)所述向量距離進(jìn)行運(yùn)算;自所述平均數(shù)值組的系數(shù)計(jì)算第二平滑功率譜;計(jì)算在所述第一平滑功率譜和所述第二平滑功率譜之間的差異,隨后進(jìn)行所述差異的半波整流;給維納濾波器提供所述差異的半波整流作為第一維納濾波器輸入;提供所述第二平滑功率譜作為第二維納濾波器輸入;提供所述輸入信號(hào)的快速傅里葉變換作為第三維納濾波器輸入;自所述第一維納濾波器輸入、第二維納濾波器輸入和第三維納濾波器輸入計(jì)算維納濾波器輸出;對(duì)所述維納濾波器輸出進(jìn)行逆快速傅里葉變換;以及,輸出所述逆快速傅里葉變換以提供輸出信號(hào),其中,所述信號(hào)處理方法是由包括微處理器和數(shù)字信號(hào)處理器的單個(gè)集成電路來執(zhí)行的,所述數(shù)字信號(hào)處理器能夠?qū)?fù)域中的浮點(diǎn)數(shù)據(jù)進(jìn)行運(yùn)算。
      18.一種軟件開發(fā)環(huán)境,它包括用于微處理器代碼開發(fā)的部件;以及用于數(shù)字信號(hào)處理器代碼開發(fā)的部件;所述用于數(shù)字信號(hào)處理器代碼開發(fā)的部件能夠?qū)?fù)域中的浮點(diǎn)數(shù)據(jù)進(jìn)行運(yùn)算。
      19.如權(quán)利要求18所述的軟件開發(fā)環(huán)境,其特征在于,所述用于數(shù)字信號(hào)處理器代碼開發(fā)的部件結(jié)合流水線和并行管理。
      20.如權(quán)利要求18所述的軟件開發(fā)環(huán)境,其特征在于,所述用于數(shù)字信號(hào)處理器代碼開發(fā)的部件結(jié)合代碼壓縮。
      21.如權(quán)利要求18所述的軟件開發(fā)環(huán)境,其特征在于結(jié)合周期精確仿真器。
      22.如權(quán)利要求18所述的軟件開發(fā)環(huán)境,其特征在于結(jié)合指令精確仿真器。
      23.如權(quán)利要求18所述的軟件開發(fā)環(huán)境,其特征在于結(jié)合用于C編程語言的編譯器。
      24.如權(quán)利要求18所述的軟件開發(fā)環(huán)境,其特征在于結(jié)合圖形用戶界面。
      25.如權(quán)利要求18所述的軟件開發(fā)環(huán)境,其特征在于,所述微處理器是精簡指令集計(jì)算機(jī)處理器。
      26.如權(quán)利要求18所述的軟件開發(fā)環(huán)境,其特征在于,所述數(shù)字信號(hào)處理器采用超長指令字架構(gòu)。
      27.一種適用于將包括多條指令的源編程語言翻譯成目標(biāo)程序的編譯器,該編譯器包括用于翻譯以符合所述源編程語言的語法編寫的指令的指令翻譯部件;以及,用于翻譯可呼叫數(shù)字信號(hào)處理函數(shù)庫的函數(shù)庫翻譯部件,所述編譯器能夠?qū)σ幌盗袛U(kuò)充數(shù)據(jù)類型進(jìn)行運(yùn)算。
      28.如權(quán)利要求27所述的編譯器,其特征在于,所述源編程語言是采用符合國際標(biāo)準(zhǔn)化組織C語言的語法編寫的C++源程序以及所述可呼叫數(shù)字信號(hào)處理函數(shù)庫是C語言可呼叫數(shù)字信號(hào)處理函數(shù)庫。
      29.如權(quán)利要求27所述的編譯器,其特征在于,所述擴(kuò)展數(shù)據(jù)類型選自由整數(shù)、浮點(diǎn)、復(fù)數(shù)整數(shù)、復(fù)數(shù)浮點(diǎn)、矢量整數(shù)、矢量浮點(diǎn)、指針、陣列、結(jié)構(gòu)和集合組成的組。
      30.如權(quán)利要求27所述的編譯器,其特征在于,還包括用于宣告存取至少一個(gè)或多個(gè)寄存器式存儲(chǔ)器、內(nèi)部數(shù)據(jù)存儲(chǔ)器和外部數(shù)據(jù)存儲(chǔ)器的變數(shù)的變數(shù)宣告部件。
      31.如權(quán)利要求30所述的編譯器,其特征在于,還包括寄存器用法的優(yōu)化部件。
      32.如權(quán)利要求28所述的編譯器,其特征在于,還包括以C++操作數(shù)翻譯內(nèi)嵌的匯編語言指令的部件。
      33.如權(quán)利要求28所述的編譯器,其特征在于,還包括用于翻譯美國國家標(biāo)準(zhǔn)研究院C語言標(biāo)準(zhǔn)數(shù)學(xué)題庫函數(shù)的部件。
      34.如權(quán)利要求28所述的編譯器,其特征在于,還包括用于實(shí)現(xiàn)IF語句翻譯與完整的條件表達(dá)示運(yùn)算的語言擴(kuò)充部件;以及用于實(shí)現(xiàn)WHERE語句翻譯的語言擴(kuò)充部件。
      35.一種信號(hào)處理片上系統(tǒng),它包括系統(tǒng)架構(gòu);采用集成電路方式的物理實(shí)現(xiàn);以及,編程環(huán)境,所述架構(gòu)、物理實(shí)現(xiàn)以及編程環(huán)境都能夠?qū)?fù)域中的浮點(diǎn)數(shù)進(jìn)行運(yùn)算。
      36.一種信號(hào)處理架構(gòu),它包括超長指令字?jǐn)?shù)字信號(hào)處理器內(nèi)核,所述數(shù)字信號(hào)處理器能夠?qū)?fù)域中的浮點(diǎn)數(shù)據(jù)進(jìn)行運(yùn)算;精簡指令集計(jì)算機(jī)微處理器;共享存儲(chǔ)器,它與所述數(shù)字信號(hào)處理器內(nèi)核和微處理器接口相耦合;系統(tǒng)總線,它與所述精簡指令集計(jì)算機(jī)微處理器和所述微處理器內(nèi)核相耦合;微處理器存儲(chǔ)器,它與所述系統(tǒng)總線相耦合;外部總線接口,它與所述系統(tǒng)總線相耦合;系統(tǒng)總線/外圍總線橋路,它與所述系統(tǒng)總線和外圍總線相耦合;多個(gè)外圍電路,它與所述外圍總線相耦合;數(shù)據(jù)總線多路復(fù)用器/多路分解器,它與所述微處理器接口、所述數(shù)字信號(hào)處理器內(nèi)核以及數(shù)據(jù)存儲(chǔ)器相耦合,所述數(shù)據(jù)存儲(chǔ)器也與所述數(shù)字信號(hào)處理器內(nèi)核相耦合;數(shù)據(jù)緩沖器,它與所述數(shù)字信號(hào)處理器內(nèi)核和所述數(shù)據(jù)存儲(chǔ)器相耦合;以及,程序總線復(fù)用器/解復(fù)用器,它與所述微處理器接口、程序存儲(chǔ)器、所述數(shù)字信號(hào)處理器內(nèi)核和數(shù)據(jù)/程序總線復(fù)用器相耦合。
      37.如權(quán)利要求36所述的架構(gòu),其特征在于,所述超長指令字?jǐn)?shù)字信號(hào)處理器和所述精簡指令集計(jì)算機(jī)微處理器各自都能夠作為主或從處理器使用。
      38.如權(quán)利要求37所述的架構(gòu),其特征在于,所述超長指令字?jǐn)?shù)字信號(hào)處理器可以作為主處理器操作,而所述精簡指令集計(jì)算機(jī)微處理器可以作為從處理器操作。
      39.如權(quán)利要求37所述的架構(gòu),其特征在于,所述超長指令字?jǐn)?shù)字信號(hào)處理器可以作為從處理器操作,而所述精簡指令集計(jì)算機(jī)微處理器可以作為主處理器操作。
      40.如權(quán)利要求37所述的架構(gòu),其特征在于,所述超長指令字?jǐn)?shù)字信號(hào)處理器和所述精簡指令集計(jì)算機(jī)(RISC)微處理器可以同時(shí)地和獨(dú)立地操作。
      41.一種能夠?qū)?fù)域中的浮點(diǎn)數(shù)據(jù)進(jìn)行運(yùn)算的數(shù)字信號(hào)處理器架構(gòu),所述架構(gòu)包括程序存儲(chǔ)器,它與包含指令譯碼器、條件發(fā)生器、狀態(tài)寄存器和程序計(jì)數(shù)器的本地序列器相耦合,所述程序存儲(chǔ)器還與數(shù)據(jù)/程序總線復(fù)用器相耦合;超長指令字?jǐn)?shù)字信號(hào)處理器內(nèi)核與所述程序存儲(chǔ)器和本地序列器相耦合,所述超長指令字?jǐn)?shù)字信號(hào)處理器內(nèi)核具有與地址寄存器列和數(shù)據(jù)寄存器列相耦合的多地址發(fā)生單元,所述數(shù)據(jù)寄存器列與所述多地址發(fā)生單元、所述地址寄存器列和運(yùn)算模塊相耦合,所述運(yùn)算模塊與所述地址寄存器列和所述多地址發(fā)生單元列相耦合,所述運(yùn)算模塊具有相互耦合的第一操作數(shù)模塊部分和第二操作數(shù)模塊部分,所述第一操作數(shù)模塊部分和第二操作數(shù)模塊部分各自包含第一和第二浮點(diǎn)/整數(shù)乘法器、浮點(diǎn)/整數(shù)復(fù)數(shù)加法器以及浮點(diǎn)/整數(shù)加法器,所述第一和第二浮點(diǎn)/整數(shù)乘法器與所述浮點(diǎn)/整數(shù)復(fù)數(shù)加法器相耦合,所述浮點(diǎn)/整數(shù)加法器與所述復(fù)數(shù)加法器和所述數(shù)據(jù)寄存器列相耦合,所述浮點(diǎn)/整數(shù)復(fù)數(shù)加法器包含第一加法器部分和第二加法器部分;直接存儲(chǔ)器訪問控制器與所述本地序列器和所述數(shù)據(jù)/程序總線復(fù)用器相耦合;微處理器接口與共享存儲(chǔ)器相耦合,所述共享存儲(chǔ)器還與數(shù)據(jù)存儲(chǔ)器相耦合;以及,數(shù)據(jù)緩沖器與所述數(shù)據(jù)/程序總線復(fù)用器、所述數(shù)據(jù)存儲(chǔ)器、所述超長指令字?jǐn)?shù)字信號(hào)處理器內(nèi)核以及所述共享存儲(chǔ)器相耦合。
      42.如權(quán)利要求41所述的架構(gòu),其特征在于,所述數(shù)據(jù)寄存器列包括第一數(shù)據(jù)寄存器部分和第二數(shù)據(jù)寄存器部分。
      43.如權(quán)利要求42所述的架構(gòu),其特征在于,所述第一和第二寄存器部分包括實(shí)數(shù)數(shù)據(jù)部分和復(fù)數(shù)數(shù)據(jù)部分。
      44.如權(quán)利要求41所述的架構(gòu),其特征在于,所述共享存儲(chǔ)器包括第一共享儲(chǔ)存體和第二共享儲(chǔ)存體,所述第一和第二共享儲(chǔ)存體各自構(gòu)成為雙端口存儲(chǔ)器。
      45.如權(quán)利要求41所述的架構(gòu),其特征在于,所述數(shù)據(jù)存儲(chǔ)器包括第一數(shù)據(jù)儲(chǔ)存體和第二數(shù)據(jù)儲(chǔ)存體,所述第一和第二數(shù)據(jù)儲(chǔ)存體各自構(gòu)成為雙端口存儲(chǔ)器。
      46.如權(quán)利要求41所述的架構(gòu),其特征在于,所述數(shù)據(jù)緩沖器包括第一數(shù)據(jù)緩沖器部分和第二數(shù)據(jù)緩沖器部分,所述第一和第二數(shù)據(jù)緩沖器部分各自構(gòu)成為雙端口存儲(chǔ)器。
      全文摘要
      一種適用于數(shù)字信號(hào)處理系統(tǒng),它由片上系統(tǒng)所構(gòu)成并組合了微處理器內(nèi)核(106)和具有復(fù)數(shù)數(shù)據(jù)處理能力的數(shù)字信號(hào)處理器(DSP)內(nèi)核(108)。DSP內(nèi)核(108)可以對(duì)復(fù)域中的浮點(diǎn)數(shù)據(jù)進(jìn)行運(yùn)算并且能夠同時(shí)產(chǎn)生實(shí)數(shù)和虛數(shù)算術(shù)結(jié)果。這一功能允許諸如FFT重疊計(jì)算、復(fù)域同時(shí)加法和減法、復(fù)數(shù)多累加(MULACC)、以及實(shí)數(shù)域雙倍多累加(MAC)的單周期執(zhí)行。SoC(102)可以由微處理器編程接口(140)來進(jìn)行全部編程,并使用DSP數(shù)據(jù)庫中的調(diào)用來執(zhí)行DSP功能。內(nèi)核(106、108)也可以分開編程。對(duì)整個(gè)SoC(102)編程和仿真的能力可以單獨(dú)的編程環(huán)境來提供。SoC(102)可以具有異構(gòu)處理器內(nèi)核,其中兩個(gè)處理器內(nèi)核都可以作為主或從處理器來使用,或者兩個(gè)內(nèi)核都可以同時(shí)和單獨(dú)地操作。
      文檔編號(hào)G06F17/50GK101095103SQ200580016659
      公開日2007年12月26日 申請(qǐng)日期2005年3月7日 優(yōu)先權(quán)日2004年3月26日
      發(fā)明者P·S·保盧西, B·阿爾鐵里, F·阿列蒂, P·巴扎納, A·塞羅托, M·科西米, A·米舍羅蒂, E·帕斯托雷蒂, A·里什阿蒂 申請(qǐng)人:愛特梅爾股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1