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