h1_key

當(dāng)前位置:首頁 >新聞資訊 > 行業(yè)資訊>一文秒懂DSP、MCU、MPU之間的區(qū)別和作用
一文秒懂DSP、MCU、MPU之間的區(qū)別和作用
2022-06-17 467次

  CPU(Central Processing Unit,中央處理器)發(fā)展出來三個(gè)分枝,一個(gè)是DSP(Digital Signal Processing/Processor,數(shù)字信號(hào)處理),另外兩個(gè)是MCU(Micro Control Unit,微控制器單元)和MPU(Micro Processor Unit,微處理器單元)。

IC.jpg

  MCU集成了片上外圍器件;MPU不帶外圍器件(例如存儲(chǔ)器陣列),是高度集成的通用結(jié)構(gòu)的處理器,是去除了集成外設(shè)的MCU;DSP運(yùn)算能力強(qiáng),擅長很多的重復(fù)數(shù)據(jù)運(yùn)算,而MCU則適合不同信息源的多種數(shù)據(jù)的處理診斷和運(yùn)算,側(cè)重于控制,速度并不如DSP。

MCU區(qū)別于DSP的最大特點(diǎn)在于它的通用性,反應(yīng)在指令集和尋址模式中。DSP與MCU的結(jié)合是DSC,它終將取代這兩種芯片。

 

  1對密集的乘法運(yùn)算的支持

  GPP不是設(shè)計(jì)來做密集乘法任務(wù)的,即使是一些現(xiàn)代的GPP,也要求多個(gè)指令周期來做一次乘法,而DSP處理器使用專門的硬件來實(shí)現(xiàn)單周期乘法。

DSP處理器還增加了累加器寄存器來處理多個(gè)乘積的和,累加器寄存器通常比其他寄存器寬,增加稱為結(jié)果bits的額外bits來避免溢出。同時(shí),為了充分體現(xiàn)專門的乘法-累加硬件的好處,幾乎所有的DSP的指令集都包含有顯式的MAC指令。

 

  2存儲(chǔ)器結(jié)構(gòu)

  傳統(tǒng)上,GPP使用馮·諾依曼存儲(chǔ)器結(jié)構(gòu),這種結(jié)構(gòu)中只有一個(gè)存儲(chǔ)器空間通過一組總線(一個(gè)地址總線和一個(gè)數(shù)據(jù)總線)連接到處理器核。通常,做一次乘法會(huì)發(fā)生4次存儲(chǔ)器訪問,用掉至少四個(gè)指令周期。

  大多數(shù)DSP采用了哈佛結(jié)構(gòu),將存儲(chǔ)器空間劃分成兩個(gè),分別存儲(chǔ)程序和數(shù)據(jù),它們有兩組總線連接到處理器核,允許同時(shí)對它們進(jìn)行訪問。這種安排將處理器存儲(chǔ)器的帶寬加倍,更重要的是同時(shí)為處理器核提供數(shù)據(jù)與指令。在這種布局下,DSP得以實(shí)現(xiàn)單周期的MAC指令。

  典型的高性能GPP實(shí)際上已包含兩個(gè)片內(nèi)高速緩存,一個(gè)是數(shù)據(jù),一個(gè)是指令,它們直接連接到處理器核,以加快運(yùn)行時(shí)的訪問速度。從物理上說,這種片內(nèi)的雙存儲(chǔ)器和總線的結(jié)構(gòu)幾乎與哈佛結(jié)構(gòu)的一樣了,然而從邏輯上說,兩者還是有重要的區(qū)別。

  GPP使用控制邏輯來決定哪些數(shù)據(jù)和指令字存儲(chǔ)在片內(nèi)的高速緩存里,其程序員并不加以指定(也可能根本不知道),與此相反,DSP使用多個(gè)片內(nèi) 存儲(chǔ)器和多組總線來保證每個(gè)指令周期內(nèi)存儲(chǔ)器的多次訪問。在使用DSP時(shí),程序員要明確地控制哪些數(shù)據(jù)和指令要存儲(chǔ)在片內(nèi)存儲(chǔ)器中,程序員在寫程序時(shí),必 須保證處理器能夠有效地使用其雙總線。

此外,DSP處理器幾乎都不具備數(shù)據(jù)高速緩存。這是因?yàn)镈SP的典型數(shù)據(jù)是數(shù)據(jù)流。也就是說,DSP處理器對每個(gè)數(shù)據(jù)樣本做計(jì)算后,就丟棄了,幾乎不再重復(fù)使用。

 

  3零開銷循環(huán)

  如果了解到DSP算法的一個(gè)共同的特點(diǎn),即大多數(shù)的處理時(shí)間是花在執(zhí)行較小的循環(huán)上,也就容易理解,為什么大多數(shù)的DSP都有專門的硬件,用于零開銷循環(huán)。

  所謂零開銷循環(huán)是指處理器在執(zhí)行循環(huán)時(shí),不用花時(shí)間去檢查循環(huán)計(jì)數(shù)器的值、條件轉(zhuǎn)移到循環(huán)的頂部、將循環(huán)計(jì)數(shù)器減1。與此相反,GPP的循環(huán)使用軟件來實(shí)現(xiàn):某些高性能的GPP使用轉(zhuǎn)移預(yù)報(bào)硬件,幾乎達(dá)到與硬件支持的零開銷循環(huán)同樣的效果。

  4定點(diǎn)計(jì)算持

  大多數(shù)DSP使用定點(diǎn)計(jì)算,而不是使用浮點(diǎn)。雖然DSP的應(yīng)用必須十分注意數(shù)字的精確,用浮點(diǎn)來做應(yīng)該容易的多,但是對DSP來說,廉價(jià)也是非常重要的。

定點(diǎn)機(jī)器比起相應(yīng)的浮點(diǎn)機(jī)器來要便宜(而且更快)。為了不使用浮點(diǎn)機(jī)器而又保證數(shù)字的準(zhǔn)確,DSP處理器在指令集和硬件方面都支持飽和計(jì)算、舍入和移位。

 

  5專門的尋址方式

DSP處理器往往都支持專門的尋址模式,它們對通常的信號(hào)處理操作和算法是很有用的。例如,模塊(循環(huán))尋址(對實(shí)現(xiàn)數(shù)字濾波器延時(shí)線很有用)、位倒序?qū)ぶ?對FFT很有用)。這些非常專門的尋址模式在GPP中是不常使用的,只有用軟件來實(shí)現(xiàn)。

 

  6執(zhí)行時(shí)間的預(yù)測

  大多數(shù)的DSP應(yīng)用(如蜂窩電話和調(diào)制解調(diào)器)都是嚴(yán)格的實(shí)時(shí)應(yīng)用,所有的處理必須在指定的時(shí)間內(nèi)完成。這就要求程序員準(zhǔn)確地確定每個(gè)樣本需要多少處理時(shí)間,或者至少要知道,在最壞的情況下需要多少時(shí)間。

  如果打算用低成本的GPP去完成實(shí)時(shí)信號(hào)處理的任務(wù),執(zhí)行時(shí)間的預(yù)測大概不會(huì)成為什么問題,應(yīng)為低成本GPP具有相對直接的結(jié)構(gòu),比較容易預(yù)測執(zhí)行時(shí)間。然而,大多數(shù)實(shí)時(shí)DSP應(yīng)用所要求的處理能力是低成本GPP所不能提供的。

  這時(shí)候,DSP對高性能GPP的優(yōu)勢在于,即便是使用了高速緩存的DSP,哪些指令會(huì)放進(jìn)去也是由程序員(而不是處理器)來決定的,因此很容易判斷指令是從高速緩存還是從存儲(chǔ)器中讀取。

DSP一般不使用動(dòng)態(tài)特性,如轉(zhuǎn)移預(yù)測和推理執(zhí)行等。因此,由一段給定的代碼來預(yù)測所要求的執(zhí)行時(shí)間是完全直截了當(dāng)?shù)?。從而使程序員得以確定芯片的性能限制。

 

  7定點(diǎn)DSP指令集

  定點(diǎn)DSP指令集是按兩個(gè)目標(biāo)來設(shè)計(jì)的:使處理器能夠在每個(gè)指令周期內(nèi)完成多個(gè)操作,從而提高每個(gè)指令周期的計(jì)算效率。將存貯DSP程序的存儲(chǔ)器空間減到最小(由于存儲(chǔ)器對整個(gè)系統(tǒng)的成本影響甚大,該問題在對成本敏感的DSP應(yīng)用中尤為重要)。

  為了實(shí)現(xiàn)這些目標(biāo),DSP處理器的指令集通常都允許程序員在一個(gè)指令內(nèi)說明若干個(gè)并行的操作。例如,在一條指令包含了MAC操作,即同時(shí)的一個(gè)或兩個(gè)數(shù)據(jù)移動(dòng)。在典型的例子里,一條指令就包含了計(jì)算FIR濾波器的一節(jié)所需要的所有操作。這種高效率付出的代價(jià)是,其指令集既不直觀,也不容易使用(與GPP的指令集相比)。

  GPP的程序通常并不在意處理器的指令集是否容易使用,因?yàn)樗麄円话闶褂孟驝或C++等高級(jí)語言。而對于DSP的程序員來說,不幸的是主要的DSP應(yīng)用程序都是用匯編語言寫的(至少部分是匯編語言優(yōu)化的)。

  這里有兩個(gè)理由:首先,大多數(shù)廣泛使用的高級(jí)語言,例如C,并不適合于描述典型的DSP算法。其次, DSP結(jié)構(gòu)的復(fù)雜性,如多存儲(chǔ)器空間、多總線、不規(guī)則的指令集、高度專門化的硬件等,使得難于為其編寫高效率的編譯器。

即便用編譯器將C源代碼編譯成為DSP的匯編代碼,優(yōu)化的任務(wù)仍然很重。典型的DSP應(yīng)用都具有大量計(jì)算的要求,并有嚴(yán)格的開銷限制,使得程序的優(yōu)化必不可少(至少是對程序的最關(guān)鍵部分)。因此,考慮選用DSP的一個(gè)關(guān)鍵因素是,是否存在足夠的能夠較好地適應(yīng)DSP處理器指令集的程序員。

 

  8開發(fā)工具的要求

  因?yàn)?/font>DSP應(yīng)用要求高度優(yōu)化的代碼,大多數(shù)DSP廠商都提供一些開發(fā)工具,以幫助程序員完成其優(yōu)化工作。例如,大多數(shù)廠商都提供處理器的仿真工具,以準(zhǔn)確地仿真每個(gè)指令周期內(nèi)處理器的活動(dòng)。無論對于確保實(shí)時(shí)操作還是代碼的優(yōu)化,這些都是很有用的工具。

  GPP廠商通常并不提供這樣的工具,主要是因?yàn)镚PP程序員通常并不需要詳細(xì)到這一層的信息。GPP缺乏精確到指令周期的仿真工具,是DSP應(yīng)用開發(fā)者所面臨的的大問題:由于幾乎不可能預(yù)測高性能GPP對于給定任務(wù)所需要的周期數(shù),從而無法說明如何去改善代碼的性能。

  • 一文讀懂DRAM(動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)工作原理、分類、主要廠商
  • DRAM是一種易失性半導(dǎo)體存儲(chǔ)器,用于計(jì)算機(jī)和其他數(shù)字設(shè)備作為主內(nèi)存。它的名字“動(dòng)態(tài)”源于需要周期性刷新存儲(chǔ)的數(shù)據(jù)。
    2025-06-19 122次
  • 一文讀懂FPGA的工作原理、關(guān)鍵參數(shù)、品牌、運(yùn)用
  • FPGA代表Field-Programmable Gate Array,中文譯為現(xiàn)場可編程門陣列。它是一種非常特殊的半導(dǎo)體集成電路芯片。與 CPU、GPU 或?qū)S眉呻娐沸酒诔鰪S時(shí)功能就固定不同,F(xiàn)PGA的硬件邏輯功能在制造完成后,可以由用戶在現(xiàn)場(Field)根據(jù)需要進(jìn)行編程(Programmable)來定義。 它本質(zhì)上是由大量可配置邏輯塊、可編程互連資源和豐富的輸入/輸出單元組成的陣列(Array)。
    2025-06-05 107次
  • 一文讀懂ADC(模數(shù)轉(zhuǎn)換器)與DAC(數(shù)模轉(zhuǎn)換器)類型、應(yīng)用
  • ADC(模數(shù)轉(zhuǎn)換器)與DAC(數(shù)模轉(zhuǎn)換器)芯片是連接模擬世界與數(shù)字系統(tǒng)的核心元器件,廣泛應(yīng)用于通信、工業(yè)控制、醫(yī)療設(shè)備、消費(fèi)電子等領(lǐng)域。以下是它們的核心技術(shù)原理、類型及市場應(yīng)用解析:
    2025-05-21 79次
  • 一文讀懂GNSS模組產(chǎn)品分類、品牌、運(yùn)用
  • 全球?qū)Ш叫l(wèi)星系統(tǒng)(GNSS,Global Navigation Satellite System)是一種通過衛(wèi)星信號(hào)提供地理定位、導(dǎo)航和時(shí)間同步服務(wù)的技術(shù)。常見的GNSS包括美國的GPS、俄羅斯的GLONASS、歐盟的伽利略(Galileo)和中國的北斗(BDS)。以下從產(chǎn)品、品牌和應(yīng)用領(lǐng)域三個(gè)方面進(jìn)行介紹:
    2025-04-28 209次
  • 一文讀懂什么是MEMS壓力傳感器?
  • MEMS壓力傳感器是一種基于微機(jī)電系統(tǒng)(Micro-Electro-Mechanical Systems, MEMS)技術(shù)制造的微型傳感器,主要用于測量氣體或液體的壓力。憑借其小型化、高靈敏度和低成本等優(yōu)勢,MEMS壓力傳感器被廣泛應(yīng)用于汽車、醫(yī)療、工業(yè)、消費(fèi)電子和航空航天等領(lǐng)域。
    2025-04-17 165次
    10s
    溫馨提示:
    訂單商品問題請移至我的售后服務(wù)提交售后申請,其他需投訴問題可移至我的投訴提交,我們將在第一時(shí)間給您答復(fù)