電子設(shè)備應(yīng)用越來(lái)越多地涉及信號(hào)處理。家庭影院,計(jì)算機(jī)圖形學(xué),醫(yī)學(xué)成像和電信都依賴于信號(hào)處理技術(shù)。信號(hào)處理需要在復(fù)雜但重復(fù)的算法中進(jìn)行快速數(shù)學(xué)運(yùn)算。并且許多應(yīng)用需要實(shí)時(shí)計(jì)算:即,信號(hào)是時(shí)間的連續(xù)函數(shù),必須對(duì)其進(jìn)行采樣并轉(zhuǎn)換為數(shù)字,以進(jìn)行數(shù)值處理。因此,處理器必須執(zhí)行在樣本到達(dá)時(shí)對(duì)樣本執(zhí)行離散計(jì)算的算法。
數(shù)字信號(hào)處理器(DSP)的架構(gòu)經(jīng)過(guò)優(yōu)化,可以處理這些算法。良好的信號(hào)處理引擎的特征包括:快速,靈活的算術(shù)計(jì)算單元(例如,乘法器,累加器,桶形移位器);無(wú)限制的數(shù)據(jù)流入和流出計(jì)算單元;計(jì)算單元中的擴(kuò)展精度和動(dòng)態(tài)范圍(以避免溢出并最小化舍入誤差);雙地址生成器(用于同時(shí)處理二元運(yùn)算的兩個(gè)輸入);高效的程序排序(包括有效處理循環(huán)和中斷的能力);
DSP具有與精簡(jiǎn)指令集計(jì)算機(jī)(RISC)相同的一些功能。此外,兩者都圍繞某些核心指令構(gòu)建,使它們能夠以非常高的指令速率運(yùn)行;并且都避開了內(nèi)部微碼。然而,它們是根本不同的“動(dòng)物”。 RISC和DSP之間的差異在處理器的
中最為明顯
計(jì)算單位
數(shù)據(jù)地址生成器
內(nèi)存架構(gòu)
中斷功能
循環(huán)硬件
< li>條件指令
接口功能
DSP屬于兩個(gè)基本類:定點(diǎn),一個(gè)(通常)基于16位架構(gòu)16位整數(shù)數(shù)據(jù)類型和浮點(diǎn),通常采用32位架構(gòu),基于具有尾數(shù)和指數(shù)的數(shù)據(jù)類型。
計(jì)算單位:DSP都包含并行硬件乘法器以支持單周期乘法,它們的乘法器通常在一個(gè)周期內(nèi)組合乘法和累加。 DSP具有專用的累加器,其寄存器明顯寬于標(biāo)稱字大小,以保持精度 - 例如,32位ADSP-2106x SHARC系列中的80位(圖1)。與ADSP-21xx系列一樣,硬件可能支持從累加器溢出中恢復(fù)。此外,DSP都包含全功能的算術(shù)邏輯單元(ALU),與乘法器無(wú)關(guān)。
ALU可能具有特殊功能,例如同時(shí)產(chǎn)生的能力用于在時(shí)域和頻域之間轉(zhuǎn)換信號(hào)的快速傅里葉變換(FFT)算法中加速內(nèi)核例程的和和差。高級(jí)DSP將在計(jì)算單元中包含飽和邏輯,以防止數(shù)據(jù)溢出。它還可以提供零開銷(即,不需要額外的時(shí)鐘周期)陷阱來(lái)中斷算術(shù)異常的例程。
復(fù)雜的DSP還可以包含單周期桶形移位器(即,能夠在一個(gè)時(shí)鐘周期內(nèi)向左或向右移位字的字段),具有優(yōu)先級(jí)編碼器數(shù)據(jù)縮放,數(shù)據(jù)壓縮/擴(kuò)展或打包/解包和位操作。它還可以包括專用硬件,以最小化快速劃分,平方根和超越函數(shù)計(jì)算所需的時(shí)間。在RISC處理器上找不到具有這些專用功能的計(jì)算元素。
地址生成:高效的DSP將使其計(jì)算單元保持至少兩個(gè)獨(dú)立數(shù)據(jù)的數(shù)據(jù) - 地址生成器。抽頭延遲線和系數(shù)緩沖器是DSP的特征,但在通用計(jì)算中大多是未知的。高效的DSP需要循環(huán)緩沖硬件來(lái)支持緩沖區(qū)。循環(huán)緩沖區(qū)指針需要在每個(gè)周期更新而不會(huì)產(chǎn)生開銷。此外,緩沖區(qū)結(jié)束的比較測(cè)試需要無(wú)延遲命令來(lái)重置緩沖區(qū)末尾的指針。另一方面,RISC處理器需要額外的周期進(jìn)行每次比較測(cè)試。
存儲(chǔ)器架構(gòu):DSP通常支持與通用計(jì)算系統(tǒng)不同的系統(tǒng)存儲(chǔ)器架構(gòu)。 DSP采用哈佛架構(gòu),允許持續(xù)單周期訪問來(lái)自兩個(gè)不同外部存儲(chǔ)器的兩個(gè)字?jǐn)?shù)據(jù)。例如,ADI公司的SHARC DSP具有片上集成的2或4 Mbits雙端口SRAM。這個(gè)存儲(chǔ)器是直接尋址的 - 而不是像RISC處理器中那樣的緩存。對(duì)于CPU來(lái)說(shuō),這個(gè)片上存儲(chǔ)器看起來(lái)像一塊獨(dú)特的存儲(chǔ)器,而不僅僅是系統(tǒng)中其他地方的高速存儲(chǔ)器復(fù)制品。原因是DSP通常是嵌入式處理器。它們的片上存儲(chǔ)器通常足以包含任務(wù)所需的完整,重復(fù)的DSP程序。每個(gè)存儲(chǔ)器模塊都是雙端口,用于核心處理器和I / O處理器或DMA控制器的單周期獨(dú)立訪問(圖2)。雙端口存儲(chǔ)器和獨(dú)立的片上總線允許兩個(gè)數(shù)據(jù)傳輸來(lái)自內(nèi)核,一個(gè)來(lái)自I / O,所有這些都在一個(gè)周期內(nèi)完成。
中斷功能:由于DSP旨在用于實(shí)時(shí)系統(tǒng),因此高效,復(fù)雜且可預(yù)測(cè)的中斷處理對(duì)DSP至關(guān)重要。 RISC處理器采用高度流水線架構(gòu),往往具有較慢的中斷響應(yīng)時(shí)間和有限的中斷能力。上下文切換應(yīng)該非??臁8呒?jí)DSP,如新型ADSP-21csp01和ADI公司的ADSP-2106x浮點(diǎn)系列,支持完整的備用寄存器,允許單周期上下文切換支持中斷處理。 (寄存器文件窗口的不同之處在于它的目的是加速參數(shù)傳遞,而不是保存整個(gè)上下文。)
除內(nèi)部中斷外,高級(jí)DSP還將支持至少四個(gè)獨(dú)立的外部中斷。中斷延遲將保持幾個(gè)周期,并且必須是可預(yù)測(cè)的。中斷應(yīng)該是可嵌套的并且可以優(yōu)先排序。此外,應(yīng)該很容易實(shí)時(shí)啟用和禁用特定中斷。
硬件循環(huán):高效循環(huán)對(duì)數(shù)字信號(hào)處理至關(guān)重要,因?yàn)樾盘?hào)處理算法是重復(fù)的。一個(gè)好的DSP將支持具有專用內(nèi)部硬件的零開銷循環(huán)。也就是說(shuō),芯片將監(jiān)視循環(huán)條件和終止以與所有其他操作并行決定 - 是否將程序計(jì)數(shù)器或分支遞增而沒有循環(huán)時(shí)間損失到循環(huán)的頂部。另一方面,RISC處理器必須在每個(gè)循環(huán)結(jié)束時(shí)進(jìn)行測(cè)試和分支,每個(gè)循環(huán)和每個(gè)循環(huán)至少花費(fèi)額外的周期。嵌套循環(huán)在信號(hào)處理算法中也很常見; DSP循環(huán)硬件應(yīng)支持至少四級(jí)嵌套循環(huán)的深度。 RISC處理器尚未發(fā)展以支持這些基本的信號(hào)處理需求。
條件執(zhí)行:數(shù)據(jù)相關(guān)執(zhí)行對(duì)于信號(hào)處理非常重要。因此,高級(jí)DSP(如ADSP-2100系列和ADSP-2106x SHARC浮點(diǎn)系列)支持大多數(shù)基本指令的條件執(zhí)行:在單條指令中,處理器測(cè)試條件代碼,如果為真,則在同一循環(huán)中執(zhí)行操作。這可以對(duì)計(jì)算密集型算法產(chǎn)生巨大影響。英特爾在i860上發(fā)現(xiàn)了這個(gè)問題,并添加了一個(gè)圖形單元來(lái)處理高性能Z緩沖所需的條件存儲(chǔ)操作。
接口:DSP在真實(shí)世界的信號(hào)上運(yùn)行來(lái)自模數(shù)轉(zhuǎn)換器,他們將結(jié)果發(fā)送到D / A轉(zhuǎn)換器。出于這個(gè)原因,DSP通常包含用于這些設(shè)備的廉價(jià)接口的串行端口。高級(jí)DSP添加硬件以提高操作效率,例如雙緩沖和自動(dòng)緩沖。由于這些輸入/輸出信號(hào)可能來(lái)自非線性編解碼器,因此高級(jí)DSP可能具有用于零開銷A律和μ律壓縮擴(kuò)展的專用硬件。此外,串行端口可能具有簡(jiǎn)化與T1和CEPT數(shù)據(jù)傳輸線接口的功能。
SHARC串行端口旨在通過(guò)靈活的硬件最大化吞吐量,同時(shí)調(diào)整到各種信號(hào)類型。它們的功能包括:每個(gè)串行端口可以自動(dòng)接收和/或發(fā)送整個(gè)數(shù)據(jù)塊,獨(dú)立發(fā)送和接收 - 每個(gè)都帶有數(shù)據(jù)緩沖寄存器以及移位寄存器,用于TDM的多通道模式。
編程注意事項(xiàng):有一次,DSP和RISC之間的顯著差異在于它們的編程模型。 DSP本質(zhì)上是性能驅(qū)動(dòng)的,因此DSP的編程主要是用匯編語(yǔ)言完成的,以便從處理器中獲得最佳性能。這對(duì)于定點(diǎn)DSP來(lái)說(shuō)通常仍然如此,但使用ADSP-2100系列直觀的代數(shù)匯編語(yǔ)言則更容易實(shí)現(xiàn)(圖3)。在不犧牲性能的情況下,它改善了易用性問題,使許多程序員更喜歡C等高級(jí)語(yǔ)言。
另一方面,浮點(diǎn)DSP更多用高級(jí)語(yǔ)言有效編程。浮點(diǎn)計(jì)算避免使用C中不存在的小數(shù)數(shù)據(jù)類型。此外,體系結(jié)構(gòu)決策可能會(huì)影響編譯器效率。例如,ADSP-2106x SHARC系列的大型統(tǒng)一地址空間使編譯器的內(nèi)存分配更加容易。此外,它們大而靈活的寄存器文件提高了效率。
我們的產(chǎn)品戰(zhàn)略的核心是提供工具和DSP內(nèi)核,使我們能夠高效地編程高級(jí)別的固定和浮點(diǎn)DSP語(yǔ)言。這是ADSP-21csp背后的驅(qū)動(dòng)力,ADSP-21csp是一系列新的并發(fā)信號(hào)處理器。盡管如此,雖然使用高級(jí)語(yǔ)言,DSP程序員必須能夠在語(yǔ)言級(jí)別下降(盡量減少痛苦),以提高時(shí)間關(guān)鍵程序的性能。
DSP設(shè)計(jì)越來(lái)越多地按照以下順序進(jìn)行編程:首先,用高級(jí)語(yǔ)言編寫和調(diào)試軟件原型。該原型通常可以產(chǎn)生足夠的性能。然而,更一般地,需要提高性能,因此高級(jí)代碼在模擬中被直方圖化以找到需要最多執(zhí)行時(shí)間的部分。然后使用匯編語(yǔ)言對(duì)關(guān)鍵部分進(jìn)行手工編碼。迭代直方圖和手動(dòng)編碼過(guò)程,直到滿足性能目標(biāo)。
雖然DSP和RISC之間的差異很多,但這兩種架構(gòu)往往會(huì)聚集在編程領(lǐng)域,這是由時(shí)間驅(qū)動(dòng)的融合 - 推向市場(chǎng)以及DSP在應(yīng)用中的不斷發(fā)展的作用。熟悉快速開發(fā)工作C程序的程序員可以使用它們更快地將產(chǎn)品推向市場(chǎng)。同時(shí),DSP采用更多系統(tǒng)管理功能,例如用戶界面或系統(tǒng)控制,并且需要提供高級(jí)語(yǔ)言效率,以便與之前分配這些控制任務(wù)的μC和RISC處理器競(jìng)爭(zhēng)。
-
dsp
+關(guān)注
關(guān)注
554文章
8059瀏覽量
350627 -
嵌入式
+關(guān)注
關(guān)注
5094文章
19189瀏覽量
307943
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
什么是嵌入式系統(tǒng)?
嵌入式開發(fā)中DSP與FPGA的關(guān)系是什么
微處理器與DSP器件相結(jié)合的嵌入式系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
用嵌入式技術(shù)設(shè)計(jì)專用DSP系統(tǒng)研究
DSP嵌入式系統(tǒng)人機(jī)接口設(shè)計(jì)
![<b class='flag-5'>DSP</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>人機(jī)接口設(shè)計(jì)](https://file1.elecfans.com//web2/M00/A5/69/wKgZomUMOFGAbC-jAABEFO8rQQA669.jpg)
嵌入式處理系統(tǒng)
![<b class='flag-5'>嵌入式</b><b class='flag-5'>處理系統(tǒng)</b>](https://file.elecfans.com/web2/M00/48/D9/pYYBAGKhtCiACHTDAAAHyHZyoU8920.jpg)
語(yǔ)音信號(hào)去噪和編碼系統(tǒng)設(shè)計(jì),DSP嵌入式系統(tǒng)開發(fā)典型案例
![語(yǔ)音<b class='flag-5'>信號(hào)</b>去噪和編碼<b class='flag-5'>系統(tǒng)</b>設(shè)計(jì),<b class='flag-5'>DSP</b><b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>開發(fā)典型案例](https://file.elecfans.com/web2/M00/4A/12/pYYBAGKhvJOAGp1eAAAbws_k0TM687.png)
集成DSP與微處理器內(nèi)核的嵌入式系統(tǒng)應(yīng)用分析
![集成<b class='flag-5'>DSP</b>與微<b class='flag-5'>處理</b>器內(nèi)核的<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>應(yīng)用分析](https://file.elecfans.com/web2/M00/4A/1A/pYYBAGKhvJiAe44VAABToN7UU0Y822.png)
以嵌入式DSP模塊和FPGA構(gòu)架為基礎(chǔ)的提高無(wú)線信號(hào)處理性能的子系統(tǒng)設(shè)計(jì)
![以<b class='flag-5'>嵌入式</b><b class='flag-5'>DSP</b>模塊和FPGA構(gòu)架為基礎(chǔ)的提高無(wú)線<b class='flag-5'>信號(hào)</b><b class='flag-5'>處理</b>性能的子<b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)](https://file1.elecfans.com//web2/M00/A6/F1/wKgZomUMQWSAIgAdAAAUEjcFUgY606.jpg)
淺析DSP嵌入式系統(tǒng)的應(yīng)用特性
ADSP-2199x系列:用于嵌入式控制和信號(hào)處理應(yīng)用的混合信號(hào)DSP產(chǎn)品亮點(diǎn)
![ADSP-2199x系列:用于<b class='flag-5'>嵌入式</b>控制和<b class='flag-5'>信號(hào)</b><b class='flag-5'>處理</b>應(yīng)用的混合<b class='flag-5'>信號(hào)</b><b class='flag-5'>DSP</b>產(chǎn)品亮點(diǎn)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
DSP在嵌入式系統(tǒng)中的應(yīng)用實(shí)例
![<b class='flag-5'>DSP</b>在<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>中</b>的應(yīng)用實(shí)例](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
DSP與MCU在嵌入式系統(tǒng)中的應(yīng)用
![<b class='flag-5'>DSP</b>與MCU在<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>中</b>的應(yīng)用](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論