加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

處理器史話 | DSP獨(dú)霸一方,靠得就是這些強(qiáng)大的算法

2017/02/25
17
閱讀需 56 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

?

說(shuō)到專用處理器,我們不得不講一講 DSP,它強(qiáng)大的計(jì)算能力曾經(jīng)一度讓通用 MCU 望塵莫及。

數(shù)字信號(hào)處理器(Digital Signal Processor,DSPs),由大規(guī)模或超大規(guī)模集成電路心片組成的,用來(lái)完成某種信號(hào)處理任務(wù)的處理器。是進(jìn)行數(shù)字信號(hào)處理的專用芯片,是伴隨著微電子學(xué)、數(shù)字信號(hào)處理技術(shù)、計(jì)算機(jī)技術(shù)的發(fā)展而產(chǎn)生的新器件。隨著集成電路技術(shù)和數(shù)字信號(hào)處理算法的發(fā)展,數(shù)字信號(hào)處理器的實(shí)現(xiàn)方法也在不斷變化,處理功能不斷提高和擴(kuò)大。


(1) DSP 芯片的特點(diǎn)
DSP 芯片的內(nèi)部采用程序和數(shù)據(jù)分開(kāi)的哈佛結(jié)構(gòu),具有專門的硬件乘法器,廣泛采用流水線操作,提供特殊的 DSP 指令,可以用來(lái)快速的實(shí)現(xiàn)各種數(shù)字信號(hào)處理算法根據(jù)數(shù)字信號(hào)處理的要求,DSP 芯片一般具有如下的一些主要特點(diǎn):

  • 在一個(gè)指令周期內(nèi)可完成一次乘法和一次加法。
  • 程序和數(shù)據(jù)空間分開(kāi),可以同時(shí)訪問(wèn)指令和數(shù)據(jù)。
  • 片內(nèi)具有快速 RAM,通??赏ㄟ^(guò)獨(dú)立的數(shù)據(jù)總線在兩塊中同時(shí)訪問(wèn)。
  • 具有低開(kāi)銷或無(wú)開(kāi)銷循環(huán)及跳轉(zhuǎn)的硬件支持。
  • 快速的中斷處理和硬件 I/O 支持。
  • 具有在單周期內(nèi)操作的多個(gè)硬件地址產(chǎn)生器。
  • 可以并行執(zhí)行多個(gè)操作。
  • 支持流水線操作,取指、譯碼和執(zhí)行等操作可以重疊執(zhí)行。

通用微處理器相比,諸如 Pentium 或 PowerPC 的通用處理器(GPPs),DSP 處理器有很大的區(qū)別,這些區(qū)別產(chǎn)生于 DSPs 的結(jié)構(gòu)和指令是專門針對(duì)信號(hào)處理而設(shè)計(jì)和開(kāi)發(fā)的,它具有以下特點(diǎn)。


DSPs 的特點(diǎn)信息表

特點(diǎn)概述

詳細(xì)描述

硬件乘法累加操作(MACs)

  • 為了有效完成諸如信號(hào)濾波的乘法累加運(yùn)算,處理器必需進(jìn)行有效的乘法操作。
  • GPPs 起初并不是為繁重的乘法操作設(shè)計(jì)的,把 DSPs 同早期的 GPPs 區(qū)別開(kāi)來(lái)的第一個(gè)重大技術(shù)改進(jìn)就是添加了能夠進(jìn)行單周期乘法操作的專門硬件和明確的 MAC 指令。

哈佛結(jié)構(gòu)

  • DSPs 一般使用哈佛結(jié)構(gòu)。在哈佛結(jié)構(gòu)中,有兩個(gè)存儲(chǔ)空間:程序存儲(chǔ)空間和數(shù)據(jù)存儲(chǔ)空間。處理器內(nèi)核通過(guò)兩套總線與這些存儲(chǔ)空間相連,允許對(duì)存儲(chǔ)器同時(shí)進(jìn)行兩訪問(wèn),這種安排使處理器的帶寬加倍。

零消耗循環(huán)控制

  • 零消耗循環(huán)是指處理器不用花時(shí)間測(cè)試循環(huán)計(jì)數(shù)器的值就能執(zhí)行一組指令的循環(huán),硬件完成循環(huán)跳轉(zhuǎn)和循環(huán)計(jì)數(shù)器的衰減。
  • DSP 算法的共同特征:大部分處理時(shí)間花在執(zhí)行包含在相對(duì)小循環(huán)內(nèi)的少量指令上。因此,大部分 DSP 處理器具有零消耗循環(huán)控制的專門硬件。有些 DSPs 還通過(guò)一條指令的超高速緩存實(shí)現(xiàn)高速的單指令循環(huán)。

特殊尋址模式

  • DSPs 經(jīng)常包含有專門的地址產(chǎn)生器,它能產(chǎn)生信號(hào)處理算法需要的特殊尋址,如循環(huán)尋址和位翻轉(zhuǎn)尋址。
  • 循環(huán)尋址對(duì)應(yīng)于流水 FIR 濾波算法,位翻轉(zhuǎn)尋址對(duì)應(yīng)于 FFT 算法。

執(zhí)行時(shí)間的可預(yù)測(cè)性

  • 大多數(shù) DSP 應(yīng)用都具有硬性實(shí)時(shí)要求,在每種情況下所有處理工作都必須在指定時(shí)間內(nèi)完成。這種實(shí)時(shí)限制要求程序設(shè)計(jì)者確定每個(gè)樣本究竟需要多少時(shí)間或者在最壞情況下至少用去多少時(shí)間。
  • DSPs 執(zhí)行程序的進(jìn)程對(duì)程序員來(lái)說(shuō)是透明的,因此很容易預(yù)測(cè)處理每項(xiàng)工作的執(zhí)行時(shí)間。

具有豐富的外設(shè)

(2) DSP 芯片的分類
DSP 芯片可以按照下列三種方式進(jìn)行分類,如下圖所示。


DSP 分類圖


各類型 DSP 芯片的描述

類型

描述

代表性芯片

工作時(shí)鐘型

  • 如果在某時(shí)鐘頻率范圍內(nèi)的任何時(shí)鐘頻率上,DSP 芯片都能正常工作,除計(jì)算速度有變化外,沒(méi)有性能的下降。
  • 這類 DSP 芯片一般稱為靜態(tài) DSP 芯片。
  • OKI 電氣公司的 DSP 芯片
  • TI 公司的 TMS320C2XX 系列芯片

指令型

  • 如果有兩種或兩種以上的 DSP 芯片,它們的指令集和相應(yīng)的機(jī)器代碼機(jī)管腳結(jié)構(gòu)相互兼容。
  • 這類 DSP 芯片稱為一致性 DSP 芯片。
  • TI 公司的 TMS320C54X

定點(diǎn) DSP 芯片

  • 絕大多數(shù)的 DSP 處理器使用定點(diǎn)算法,數(shù)字表示為整數(shù)或 -1.0 到+1.0 之間的小數(shù)形式。
  • 有些處理器采用浮點(diǎn)算法,數(shù)據(jù)表示成尾數(shù)加指數(shù)的形式:尾數(shù)×2 指數(shù)。
  • TI:TMS320C1X/C2X、TMS320C2XX/C5X、TMS320C54X/C62XX 系列
  • AD:ADSP21XX 系列
  • AT&T:DSP16/16A
  • Motolora:MC56000

浮點(diǎn) DSP 芯片

  • 浮點(diǎn)算法是一種較復(fù)雜的常規(guī)算法,利用浮點(diǎn)數(shù)據(jù)可以實(shí)現(xiàn)大的數(shù)據(jù)動(dòng)態(tài)范圍(這個(gè)動(dòng)態(tài)范圍可以用最大和最小數(shù)的比值來(lái)表示)。
  • TI:TMS320C3X/C4X/C8X
  • AD:ADSP21XXX 系列
  • Motolora:MC96002
  • AT&T 公司的 DSP32/32C

通用型

  • 通用型 DSP 芯片適合普通的 DSP 應(yīng)用
  • TI 公司的一系列 DSP 芯片

專用型

  • 為特定的 DSP 運(yùn)算而設(shè)計(jì)的,更適合特殊的運(yùn)算

?

?


上表為各類 DSP 的基本描述,關(guān)于 DSP 的類型,補(bǔ)充如下內(nèi)容:


關(guān)于浮點(diǎn) DSP。


浮點(diǎn) DSP 在應(yīng)用中,設(shè)計(jì)工程師不用關(guān)心動(dòng)態(tài)范圍和精度一類的問(wèn)題。浮點(diǎn) DSP 比定點(diǎn) DSP 更容易編程,但是成本和功耗高。由于成本和功耗的原因,一般批量產(chǎn)品選用定點(diǎn) DSP。編程和算法設(shè)計(jì)人員通過(guò)分析或仿真來(lái)確定所需要的動(dòng)態(tài)范圍和精度。如果要求易于開(kāi)發(fā),而且動(dòng)態(tài)范圍很寬、精度很高,可以考慮采用浮點(diǎn) DSP。


也可以在采用定點(diǎn) DSP 的條件下由軟件實(shí)現(xiàn)浮點(diǎn)計(jì)算,但是這樣的軟件程序會(huì)占用大量處理器時(shí)間,因而很少使用。有效的辦法是“塊浮點(diǎn)”,利用該方法將具有相同指數(shù),而尾數(shù)不同的一組數(shù)據(jù)作為數(shù)據(jù)塊進(jìn)行處理?!皦K浮點(diǎn)”處理通常用軟件來(lái)實(shí)現(xiàn)。


不同浮點(diǎn) DSP 芯片所采用的浮點(diǎn)格式不完全一樣,有的 DSP 芯片采用自定義的浮點(diǎn)格式,如 TMS320C3X,而有的 DSP 芯片則采用 IEEE 的標(biāo)準(zhǔn)浮點(diǎn)格式,如 Motorola 公司的 MC96002、FUJITSU 公司的 MB86232 和 ZORAN 公司的 ZR35325 等。


專用 DSP 芯片是為特定的 DSP 運(yùn)算而設(shè)計(jì)的,更適合特殊的運(yùn)算。


專用 DSP 芯片特點(diǎn)

?

說(shuō)明

優(yōu)點(diǎn)

  1. 大規(guī)模集成性
  2. 穩(wěn)定性好,精度高
  3. 可編程
  4. 高速性能
  5. 可嵌入性
  6. 接口和集成方便

缺點(diǎn)

  1. 成本較高
  2. 高頻時(shí)鐘的高頻干擾
  3. 功率消耗較大等

應(yīng)用

  1. 信號(hào)處理
  2. 圖像處理
  3. 儀器
  4. 聲音語(yǔ)言
  5. 控制
  6. 軍事
  7. 通訊
  8. 醫(yī)療
  9. 家用電器
DSP 其它結(jié)構(gòu)


增強(qiáng)型 DSP
以前,DSP 處理器使用復(fù)雜的、混合的指令集,使編程者可以把多個(gè)操作編碼在一條指令中。傳統(tǒng)上 DSP 處理器在一條指令周期只發(fā)射并執(zhí)行一條指令。這種單流、復(fù)雜指令的方法使得 DSP 處理器獲得很強(qiáng)大的性能而無(wú)需大量的內(nèi)存。在保持 DSP 結(jié)構(gòu)和上述指令集不變的情況下,要提高每個(gè)指令的工作量,其中的一個(gè)辦法是用額外的執(zhí)行單元和增加數(shù)據(jù)通路。例如,一些高端的 DSP 有兩個(gè)乘法器,而不是一個(gè)。


把使用這種方法的 DSP 稱作增強(qiáng)型 DSP,因?yàn)樗鼈兊慕Y(jié)構(gòu)與前一代的 DSP 相似,但性能在增加執(zhí)行單元后大大增強(qiáng)了。當(dāng)然,指令集必須也同時(shí)增強(qiáng),這樣編程者才能在一條指令中指定更多的并行操作,以利用額外的硬件。


增強(qiáng)型 DSPs 的優(yōu)點(diǎn)是兼容性好,而且與較早的 DSP 具有相似的成本和功耗。缺點(diǎn)是結(jié)構(gòu)復(fù)雜、指令復(fù)雜,進(jìn)一步發(fā)展有限。典型的產(chǎn)品如:朗訊公司的 DSP16000,ADI 的 ADSP2116x


?VLIW(Very Long Instruction Word,超長(zhǎng)指令字)結(jié)構(gòu)
如前所述,傳統(tǒng)上的 DSP 處理器使用復(fù)雜的混合指令,并在一條指令循環(huán)中只流出和執(zhí)行一條指令。然而,最近有些 DSP 采用一種更 RISC 化的指令集,并且在一條指令周期執(zhí)行多條指令,使用大的統(tǒng)一的寄存器堆。例如:Siemems 的 Carmel、Philips 的 TriMedia 和 TI 的 TMS320C62XX 處理器族都使用了 VLIW 結(jié)構(gòu)。


VLIW 結(jié)構(gòu)一種非常長(zhǎng)的指令組合,它把許多條指令連在一起,增加了運(yùn)算的速度。例如:C62xx 處理器每次取一個(gè) 256 位的指令包,把包解析為 8 個(gè) 32 位的指令,然后把它們引到其 8 個(gè)獨(dú)立的執(zhí)行單元。在最好的情況下,C62xx 同時(shí)執(zhí)行 8 個(gè)指令,在這種情況下達(dá)到了極高的 MIPS 率(如 1600MIPS)。


VLIW 結(jié)構(gòu)的優(yōu)點(diǎn)是高性能、結(jié)構(gòu)規(guī)整。缺點(diǎn)是高功耗、代碼膨脹-需要寬的程序存儲(chǔ)器、新的編程 / 編譯困難。

?


超標(biāo)量體系結(jié)構(gòu)(Superscalar Architectures)
如 VLIW 處理器一樣,超標(biāo)量體系結(jié)構(gòu)并行地流出和執(zhí)行多個(gè)指令。但跟 VLIW 處理器不同的是,超標(biāo)量體系結(jié)構(gòu)不清楚指定需要并行處理的指令,而是使用動(dòng)態(tài)指令規(guī)劃,根據(jù)處理器可用的資源,數(shù)據(jù)依賴性和其他的因素來(lái)決定哪些指令要被同時(shí)執(zhí)行。超標(biāo)量體系結(jié)構(gòu)已經(jīng)長(zhǎng)期用于高性能的通用處理器中,如 Pentium 和 PowerPC。


ZSP 公司開(kāi)發(fā)出第一個(gè)商業(yè)的超標(biāo)量體系結(jié)構(gòu)的 DSPZSP164xx。超標(biāo)量結(jié)構(gòu)的優(yōu)點(diǎn)是性能有大的跨越、結(jié)構(gòu)規(guī)整、代碼寬度沒(méi)有明顯增長(zhǎng)。缺點(diǎn)是非常高的功耗、指令的動(dòng)態(tài)安排使代碼優(yōu)化困難。


芯原股份有限公司的 ZSP 系列
SIMD(Single Intructionstream Multiple Datastream, 單指令多數(shù)據(jù)流)結(jié)構(gòu)
SIMD 處理器把輸入的長(zhǎng)的數(shù)據(jù)分解為多個(gè)較短的數(shù)據(jù),然后由單指令并行地操作,從而提高處理海量、可分解數(shù)據(jù)的能力。該技術(shù)能大幅度地提高在多媒體和信號(hào)處理中大量使用的一些矢量操作的計(jì)算速度,如坐標(biāo)變換和旋轉(zhuǎn)。


通用處理器 SIMD 增強(qiáng)的兩個(gè)例子是 Pentium 的 MMX 擴(kuò)展和 PowerPC 族的 AltiVec 擴(kuò)展。SIMD 在一些高性能的 DSP 處理器中也有應(yīng)用。例如,DSP16000 在其數(shù)據(jù)路中支持有限的 SIMD 風(fēng)格的操作,而 AnalogDevices 最近推出了有名的 SHARC 的新一代 DSP 處理器,進(jìn)行了 SIMD 能力的擴(kuò)展。


SIMD 結(jié)構(gòu)由于使總線、數(shù)據(jù)通道等資源充分使用,并無(wú)需改變信號(hào)處理(含圖象、語(yǔ)音)算法的基本結(jié)構(gòu),因此 SIMD 結(jié)構(gòu)使用越來(lái)越普遍。SIMD 結(jié)構(gòu)遇到的問(wèn)題是算法、數(shù)據(jù)結(jié)構(gòu)必須滿足數(shù)據(jù)并行處理的要求,為了加速,循環(huán)常常需要被拆開(kāi),處理數(shù)據(jù)需要重新安排調(diào)整。通常 SIMD 僅支持定點(diǎn)運(yùn)算。


DSP/ 微控制器的混合結(jié)構(gòu)
許多的應(yīng)用需要以控制為主的軟件和 DSP 軟件的混合。
一個(gè)明顯的例子是數(shù)字蜂窩電話,因?yàn)槠渲杏斜O(jiān)控和語(yǔ)音處理的工作。一般地,微處理器在控制上能提供良好的性能而在 DSP 性能上則很糟,專用的 DSP 處理器的特性則剛好相反。因此,有一些微處理器產(chǎn)商開(kāi)始提供 DSP 增強(qiáng)版本的微處理器。用單處理器完成兩種軟件的任務(wù)是很有吸引力的,因?yàn)槠淇梢詽撛诘靥峁┖?jiǎn)化設(shè)計(jì),節(jié)省版面空間,降低總功耗,降低系統(tǒng)成本等。


隨著對(duì) DSP 能力需求的提高,DSP 處理器結(jié)構(gòu)正在進(jìn)行新的和革新的設(shè)計(jì),DSP、MCU、CPU 的結(jié)構(gòu)優(yōu)點(diǎn)相互借用。


(4) DSP 的應(yīng)用
DSP 廣泛的應(yīng)用于通信與信息系統(tǒng)、信號(hào)與信息處理、自動(dòng)控制、雷達(dá)、軍事、航空航天、醫(yī)療、家用電器等許多領(lǐng)域。以往是采用通用的微處理器來(lái)完成大量數(shù)字信號(hào)處理運(yùn)算,速度較慢,難以滿足實(shí)際需要;而同時(shí)使用位片式微處理器和快速并聯(lián)乘法器,曾經(jīng)是實(shí)現(xiàn)數(shù)字信號(hào)處理的有效途徑,但此方法器件較多,邏輯設(shè)計(jì)和程序設(shè)計(jì)復(fù)雜,耗電較大,價(jià)格昂貴。


DSP 的出現(xiàn),很好的解決了上述問(wèn)題。DSP 可以快速的實(shí)現(xiàn)對(duì)信號(hào)的采集、變換、濾波、估值、增強(qiáng)、壓縮、識(shí)別等處理,以得到符合人們需要的信號(hào)形式。典型的應(yīng)用如下:

  • 語(yǔ)音處理:語(yǔ)音編碼、語(yǔ)音合成、語(yǔ)音識(shí)別、語(yǔ)音增強(qiáng)、語(yǔ)音郵件、語(yǔ)音儲(chǔ)存等。
  • 圖像 / 圖形:二維和三維圖形處理、圖像壓縮與傳輸、圖像識(shí)別、動(dòng)畫、機(jī)器人視覺(jué)、多媒體、電子地圖、圖像增強(qiáng)等。
  • 軍事;保密通信、雷達(dá)處理、聲吶處理、導(dǎo)航、全球定位、跳頻電臺(tái)、搜索和反搜索等。
  • 儀器儀表:頻譜分析、函數(shù)發(fā)生、數(shù)據(jù)采集、地震處理等。
  • 自動(dòng)控制:控制、深空作業(yè)、自動(dòng)駕駛、機(jī)器人控制、磁盤控制等。
  • 醫(yī)療:助聽(tīng)、超聲設(shè)備、診斷工具、病人監(jiān)護(hù)、心電圖等。
  • 家用電器:數(shù)字音響、數(shù)字電視、可視電話、音樂(lè)合成、音調(diào)控制、玩具與游戲等。
  • 生物醫(yī)學(xué)信號(hào)處理舉例:CT,計(jì)算機(jī) X 射線斷層攝影裝置。(其中發(fā)明頭顱 CT 英國(guó) EMI 公司的豪斯菲爾德獲諾貝爾獎(jiǎng)。)CAT,計(jì)算機(jī) X 射線空間重建裝置。出現(xiàn)全身掃描,心臟活動(dòng)立體圖形,腦腫瘤異物,人體軀干圖像重建。心電圖分析。

(5) DSP 發(fā)展趨勢(shì)
DSP 從 20 世紀(jì) 70 年代的專用信號(hào)處理器開(kāi)始,發(fā)展到今天的 VLSI 陣列處理器,其應(yīng)用領(lǐng)域已經(jīng)從最初的語(yǔ)音、聲納等低頻信號(hào)的處理發(fā)展到今天雷達(dá)、圖像等視頻大數(shù)據(jù)量的信號(hào)處理。由于浮點(diǎn)運(yùn)算和并行處理技術(shù)的利用,信號(hào)處理器理能力已得到極大的提高。DSP 還將繼續(xù)沿著提高處理速度和運(yùn)算精度兩個(gè)方向發(fā)展在體系結(jié)構(gòu)上數(shù)據(jù)流結(jié)構(gòu)以至人工神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)等將可能成為下一代數(shù)字信號(hào)處理器的基本結(jié)構(gòu)模式。


DSP 處理器存在兩種發(fā)展趨勢(shì):
一是 DSP 應(yīng)用越來(lái)越多,如手機(jī)和便攜式音頻播放器等。DSP 將集成更多功能,如 A/D 轉(zhuǎn)換、LCD 控制器等,系統(tǒng)成本和器件數(shù)將會(huì)大為降低。


另一個(gè)趨勢(shì)是將 DSP 作為 IP 出售,如:億恒科技公司的 Camel 和 TriCore 內(nèi)核。隨著 EDA 工具的不斷成熟,系統(tǒng)設(shè)計(jì)工程師將更容易地修改 DSP 內(nèi)核,加入用戶專用外圍電路以實(shí)現(xiàn)更專業(yè)化、更低成本的 DSP 解決方案。
?

與非網(wǎng)原創(chuàng)內(nèi)容,不經(jīng)允許,謝絕轉(zhuǎn)載!

本系列更多內(nèi)容,請(qǐng)參照:處理器史話匯總。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

1996畢業(yè)于華東理工大學(xué)自控系,同年7月進(jìn)入某大型國(guó)企擔(dān)任電氣員。2000年轉(zhuǎn)行從事硬件研發(fā)相關(guān)工作;后從事RFID相關(guān)產(chǎn)品的研發(fā)、設(shè)計(jì),曾參與中國(guó)自動(dòng)識(shí)別協(xié)會(huì)RFID行業(yè)標(biāo)準(zhǔn)的起草;歷任硬件工程師、主管設(shè)計(jì)師、項(xiàng)目經(jīng)理、部門經(jīng)理;2012年至今,就職于沈陽(yáng)工學(xué)院,擔(dān)任電子信息工程專業(yè)教師,研究方向:自動(dòng)識(shí)別技術(shù)。已經(jīng)出版教材《自動(dòng)識(shí)別技術(shù)概論》,職場(chǎng)故事《51的蛻變 》。