如何將DSP和MCU兩者完美結(jié)合
按照傳統(tǒng)方式,嵌入式應(yīng)用中的數(shù)字信號(hào)處理器(DSP)相對于主微控制器(MCU)起從屬作用。在這些應(yīng)用中,MCU用作系統(tǒng)控制器,而大量的數(shù)據(jù)處理留給DSP。例如,在音頻或視頻處理應(yīng)用中有可能需要人機(jī)界面管理,或者是整個(gè)系統(tǒng)的控制。
設(shè)計(jì)方案選擇
為完成這些任務(wù),有幾種系統(tǒng)設(shè)計(jì)方案選擇。第一種方案將DSP和MCU芯片組合在印制電路板(PCB)上。這種方案成本高并且占用面積大,但是可適當(dāng)?shù)卣{(diào)整每個(gè)芯片的尺寸以最大限度地滿足系統(tǒng)需要。
第二種方案是一種將DSP和MCU組合在單個(gè)封裝內(nèi)的多芯片模塊(MCM)。這種方案的局限性是,設(shè)計(jì)工程師必須按“50/50”的時(shí)間比例分配給控制和DSP功能;例如,一旦DSP超出時(shí)間,MCU將不能完成計(jì)算任務(wù)。像第一種方案選擇一樣,當(dāng)DSP和MCU內(nèi)核獨(dú)立存在時(shí),需要兩套開發(fā)工具。
第三種方案是將DSP功能合并到一個(gè)MCU中。這種方案只適合于直接的信號(hào)處理應(yīng)用。MCU的時(shí)鐘頻率和計(jì)算體系結(jié)構(gòu)根本上不太適合大量的數(shù)字處理。有些MCU試圖通過增加一個(gè)乘法和累加器(MAC)(DSP的一個(gè)特點(diǎn))來補(bǔ)償上述不足。但是這種方案仍然缺乏高級(jí)應(yīng)用所需要的基本的“由下至上 ”的體系結(jié)構(gòu)設(shè)計(jì) 。
最近,已經(jīng)出現(xiàn)第四種方案它是將MCU的功能合并到一個(gè)DSP中。這類方案的一個(gè)例子是美國模擬器件公司(Anolog Device Inc.,簡稱ADI)的Blackfin™ 處理器系列。這些新型處理器具有統(tǒng)一的經(jīng)過優(yōu)化的體系結(jié)構(gòu),不僅適于數(shù)據(jù)計(jì)算,而且也適于有關(guān)的控制任務(wù)。通過平衡執(zhí)行控制任務(wù)與復(fù)雜計(jì)算的要求,這種方案可以根據(jù)系統(tǒng)實(shí)時(shí)處理的需要,完成100%的控制或者100%的計(jì)算任務(wù)。完成所有這一切任務(wù)不需要在DSP模式和MCU模式之間的模式轉(zhuǎn)換。
(translation of graphics)
System Control Blocks=系統(tǒng)控制單元
Emulator & Test Control=仿真器和測試控制
Voltage Regulation=穩(wěn)壓電源
Event Controller=事件控制器
Clock(PLL)=時(shí)鐘
鎖相環(huán)(PLL)
Memory DMA=存儲(chǔ)器
直接存儲(chǔ)器存?。―MA)
Watchdog Timer=監(jiān)視定時(shí)器
Real Time Clock=實(shí)時(shí)時(shí)鐘
Core=內(nèi)核
48 KB Instruction SRAM/Cache=48 KB指令
靜態(tài)存儲(chǔ)器(SRAM)
和高速緩存
32 KB Instruction ROM=32 KB指令
只讀存儲(chǔ)器(ROM)
32 KB Data SRAM/Cache=32 KB數(shù)據(jù)
靜態(tài)存儲(chǔ)器(SRAM)
和高速緩存
4 KB Scratchpad RAM=4 KB
高速暫存
隨機(jī)存儲(chǔ)器(RAM)
System Interface Unit=系統(tǒng)接口單元
External Memory Interface=外部存儲(chǔ)器接口
High Speed I/O=高速I/O端口
Parallel Peripheral Interface/GPIO=并行外圍接口(PPI)
和通用輸入輸出接口(GPIO)
UART=通用異步收發(fā)器
SPI=串行外圍接口(SPI)
Hi-speed Serial Ports=高速串行端口
PCI/USB=可編程通信接口(PCI)和通用串行總線(USB)
Timers 0/1/2=定時(shí)器0,1,2
Peripheral Blocks=外圍設(shè)備單元
一類新型的DSP也提供一套R(shí)ISC指令系統(tǒng)集、存儲(chǔ)器管理單元、事件控制器和多種外設(shè)以便在一顆單芯片內(nèi)提供大量計(jì)算和高效系統(tǒng)控制功能。
DSP與MCU比較
首先讓我們回顧一下DSP和MCU的典型功能。DSP主要是在一單個(gè)時(shí)鐘周期內(nèi)盡可能完成多個(gè)MAC(乘法和累加)操作。為了這一點(diǎn),指令的操作代碼通常是可變的超長的指令字(VLIW)。DSP也適于工作在緊密、高效的環(huán)路中。另外,為了達(dá)到性能指標(biāo)通常需要編寫優(yōu)化的匯編代碼。由于DSP的算法程序一般裝在小容量、短等待時(shí)間的內(nèi)置存儲(chǔ)器中,所以代碼密度通常不是大問題。
像DSP主要用于完成計(jì)算一樣,MCU主要用于完成控制功能。同樣地,典型的MCU應(yīng)用包括許多條件操作,在程序流程中頻繁地跳轉(zhuǎn)。通常使用C或者C++語言編寫程序。代碼密度極為重要,并且根據(jù)編譯代碼的長度來評(píng)估算法。存儲(chǔ)器系統(tǒng)是基于高速緩存從而允許該系統(tǒng)設(shè)計(jì)工程師用較長等待時(shí)間從較大的存儲(chǔ)器中調(diào)用較大程序。利用基于高速緩存系統(tǒng),程序員不需要考慮如何以及何時(shí)將指令輸入到內(nèi)核去執(zhí)行。
統(tǒng)一的DSP和MCU兼?zhèn)鋬烧叩膬?yōu)點(diǎn)。它的指令集由16 bit,32 bit和64 bit操作碼組成,但是由于最常用的指令采用16 bit編碼,所以編譯代碼密度大小與那些流行的MCU相同。另外,它包括一個(gè)存儲(chǔ)器保護(hù)功能以及指令高速緩存和數(shù)據(jù)高速緩存,作為整個(gè)存儲(chǔ)器管理單元(MMU)的一部分。此外,容易提供一套完整的C/C++開發(fā)工具,提供可選匯編語言或者全部匯編語言適合算法優(yōu)化的編程。
支持RTOS
系統(tǒng)控制的一個(gè)重要方面是任務(wù)管理。實(shí)時(shí)操作系統(tǒng)(RTOS)逐漸地用于控制復(fù)雜系統(tǒng)中多種正在進(jìn)行的和同時(shí)發(fā)生的任務(wù)。通過提供對任務(wù)調(diào)度與管理的支持,RTOS簡化了編程模式,這通常是由MCU控制的,由于普通的DSP不具備支持RTOS需要的所有功能以便有效地控制。
然而,統(tǒng)一的DSP和MCU促進(jìn)了RTOS幾個(gè)重要功能的發(fā)展。第一個(gè)是限制訪問功能以保護(hù)或者保留存儲(chǔ)單元。第二個(gè)是配備單獨(dú)的堆棧和幀指針以減少操作系統(tǒng)(OS)請求以及中斷和異常處理所需的等待時(shí)間。第三個(gè)是具備單獨(dú)的用戶操作模式和管理員操作模式。過去,DSP按照等效于管理員操作模式工作,從而允許在任何時(shí)間完全訪問所有的系統(tǒng)資源。然而MCU提供類似的在用戶操作模式,它允許在OS的頂層運(yùn)行應(yīng)用軟件?,F(xiàn)在,在一個(gè)統(tǒng)一的體系結(jié)構(gòu)下提供兩種操作模式,因?yàn)樵鰪?qiáng)的DSP系統(tǒng)能夠限制用戶應(yīng)用軟件僅通過OS訪問系統(tǒng)資源。
評(píng)論