<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 32位處理器推動多媒體的發(fā)展

          32位處理器推動多媒體的發(fā)展

          作者:David Katz Rick GentileADI公司Blackfin處理器應用組 時間:2005-04-07 來源: 收藏

          2005年2月A
           

          本文引用地址:http://www.ex-cimer.com/article/4896.htm

              隨著嵌入式系統(tǒng)朝著越來越復雜的方向快速發(fā)展,設計工程師必須面對如何選擇處理器的新挑戰(zhàn)。在許多先進的應用中,靈活、低成本的8位和16位微控制器(MCU)正在逐漸地被32位的系統(tǒng)芯片(SOC)所取代。當然,8位和16位處理器在嵌入式系統(tǒng)中仍然保持其應有的地位。但是,發(fā)展32位處理器的理由很多,如考慮系統(tǒng)成本、產(chǎn)品可擴縮性和性能要求等,這僅是幾個例子。下面我們以多媒體市場為背景來討論轉(zhuǎn)向32位MCU的主要原因。
              要了解為什么32位MCU在多媒體領域中如此流行,首先要考慮到8位MCU不具備保證多媒體系統(tǒng)進行實時操作所需的帶寬和計算能力。16位MCU畢竟能提高速度和性能,另外,它們還比8位 MCU消耗更低的待機電流并且通常能提供更大的片內(nèi)存儲器。
          一個很明顯的問題是,為什么不轉(zhuǎn)向16位MCU?答案很簡單。采用32位MCU系統(tǒng)的實際成本與當前可提供的許多16位MCU解決方案相當,但性能卻比16 位 MCU提高很多。下面簡要指出造成這種成本相近的幾種原因。

          制造工藝
              隨著半導體制造工藝幾何尺寸不斷縮小,32位MCU結(jié)構(gòu)變得越來越便宜。芯片幾何尺寸減小,引起管芯尺寸變小,從而使每個圓片上可提供更多的管芯。這直接降低了每顆芯片的成本。另外,隨著32位MCU的制造工藝減小到0.18μm或0.13μm (而8位MCU一般為0.25μm工藝),能夠提高運行速度。例如,大多數(shù)8位和16位MCU的正常工作速度低于100MHz,而0.13μm工藝的32位MCU能夠比這個速度高出許多倍。
              有兩個主要原因可以解釋為何以較小的工藝尺寸設計8位MCU是不經(jīng)濟有效的。首先,由于8位MCU帶寬總體來說不夠高,因此工藝尺寸減小所帶來的任何速度提高都是無用的。第二,通常8位MCU的價格目標為2美元左右,這個價格太低,無法支持某些更小工藝尺寸的實現(xiàn)。
              更小工藝尺寸雖然不適合8位MCU的價格目標,但對32位MCU來說卻是個優(yōu)勢,因為減小其工藝尺寸能給適合SOC的一組外圍電路留出余量。更重要的是,大約為5美元的價格與16位MCU的價格相當,但性能卻產(chǎn)生了飛躍。

          編程模式
              另外一個與價格有關的考慮是32位MPU結(jié)構(gòu)的編程模式。由于增加了處理器的數(shù)據(jù)總線位數(shù),還增加了一個由32位數(shù)據(jù)寄存器和地址寄存器組成的寄存器文件,所以大大提高了編譯器的支持能力。另外,32位MCU通常均支持16位和32位操作碼,從而增強了指令集結(jié)構(gòu)的靈活性,提高了代碼密度,并且使許多操作在單個內(nèi)核時鐘周期內(nèi)就可完成。
          以上兩個特點都減少了對手工編制匯編代碼的依賴性,因此程序設計師主要使用諸如C語言的高級語言進行編程?;贑語言的編程模式直接降低了開發(fā)和維護成本。32位MPU能夠?qū)⒐粳F(xiàn)有的應用轉(zhuǎn)變成以前從未想到的MCU環(huán)境。

          擴展的外圍支持
              如前所述,MCU在多媒體系統(tǒng)中通常起到系統(tǒng)控制器的作用。它們不適合用于大量的數(shù)據(jù)處理,這是數(shù)字信號處理器(DSP)做的工作。實際上,MCU控制DSP的運行,并且管理人機界面、操作系統(tǒng)和與其它系統(tǒng)組成的連接。
              正是這種與外圍電路的連接推動了32位MCU的發(fā)展,許多廣泛應用的外圍電路(高速USB2.0、PCI等等)都支持高速率數(shù)據(jù)傳送,但是用8位或16位MCU很難或無法處理這些數(shù)據(jù)流。例如,在網(wǎng)絡連通領域中,如果數(shù)據(jù)寄存器最大長度為8位或16位,則無法支持全套的網(wǎng)絡協(xié)議。
              8位和16位MCU的根本問題在于,以其有限的處理能力和很小的存儲器尋址范圍無法支持高速運行。有些8位MCU只有幾個數(shù)據(jù)寄存器,沒有單獨的累加器。提供完整的寄存器文件非常重要,因為它不需要在存儲器和累加器之間頻繁地傳送數(shù)據(jù)。另外,利用多個32位數(shù)據(jù)地址產(chǎn)生寄存器,能夠使性能得到極大地提高。32位MCU的這些特點帶來更密集的編譯碼、更寬的連續(xù)帶寬、以及如前所述的更靈活的編程模式。
              作為一種與32位MCU競爭的一種自然“策略”,16位MCU供應商一直試圖擴展16位MCU的內(nèi)部數(shù)據(jù)位數(shù),以達到不增加解決方案的最終成本而提高運行速度的目的。這種方法可以起一些作用,但無法彌補性能的根本差距。

          32位MCU系統(tǒng)的發(fā)展趨勢
              與32位MCU平行發(fā)展的一個趨勢是將多種DSP功能集成在單芯片上。盡管當前的大多數(shù)多媒體設計中使用一個MCU來控制一個DSP,但出于成本、尺寸和功耗的考慮,開發(fā)商一直試圖將這種功能性集成到單芯片上。另外提高32位MCU的時鐘速度,這有助于推動這一趨勢:時鐘速度越高意味著為完成信號處理提供更多的余量。
              然而,MCU本身不適合有效的信號處理。因此,制造商一直試圖采用一些技術來彌補這一不足。
              一種方法是采用多芯片模塊(MCM),即將DSP和MCU組合在單個封裝內(nèi)。這種方法的不足是,設計工程師必須按"50/50"的時間比例分配控制功能和處理功能;例如,一旦DSP超出時間,MCU將不能完成計算任務。另外,由于DSP內(nèi)核和MCU內(nèi)核相互獨立,需要兩套開發(fā)工具。
              另外一種方法是使MCU具備DSP功能。這種方法只適合直接的信號處理應用。MCU的時鐘速度和計算結(jié)構(gòu)本質(zhì)上不適合大量的數(shù)據(jù)計算。有些MCU試圖通過增加一個DSP的乘法累加器(MAC)來補償這種不足。但這種方法仍缺乏更先進應用所需要基本的“自下而上 ”結(jié)構(gòu)設計 。
              最后一種方法是將MCU和DSP功能集成到單個處理器中,這些處理器采用了統(tǒng)一的結(jié)構(gòu),它不僅適于數(shù)字計算,而且也適于控制任務。這就是ADI公司Blackfin處理器系列的設計思想,即同時具備16位DSP和32位MCU的功能。通過平衡執(zhí)行控制任務和復雜運算能力的需求,這種方法根據(jù)系統(tǒng)實時處理的需要可以實施100%的控制或100%的計算。
              今后,32位MCU將繼續(xù)以低價格提供更高的處理速度和更多的功能。SOC技術將繼續(xù)把MCU功能和統(tǒng)一的連通性及強大的計算能力同時集成在一起,從而實現(xiàn)真正的單片解決方案。很明顯,這些32位SOC已經(jīng)對多媒體領域提出它們的要求,并且其變革這些市場的能力日趨明朗。各種MCU的比較如圖1所示,圖1示出了支持多媒體應用的一般發(fā)展趨勢,SOC具有集成的32位MCU高性能,適合多媒體應用。低性能的8位和16位MCU適合控制應用。


          圖1



          關鍵詞:

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();