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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 8位還是32位,微處理器怎么選?

          8位還是32位,微處理器怎么選?

          作者: 時(shí)間:2018-07-24 來源:網(wǎng)絡(luò) 收藏

          另一個(gè)原因是ARM處理器比8051核心具有更多的自由使用堆疊。通常情況下,8051裝置針對每次函式呼叫僅在堆疊上儲存返回位址(2位元組),透過通常分配給堆疊的靜態(tài)變數(shù)處理大量的任務(wù)。在某些情況下,這會產(chǎn)生問題,因?yàn)檫@會造成函數(shù)預(yù)設(shè)不可重入。然而,這也意味著必須保留的堆疊空間很小,且完全可預(yù)測,這在RAM容量有限的MCU中至關(guān)重要。

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

          舉個(gè)簡單的例子,試驗(yàn)者設(shè)計(jì)了以下程式,然后測量funcB內(nèi)部的堆疊深度,發(fā)現(xiàn)M0+核心的堆疊用了四十八個(gè)位元組,而8051核心的堆疊僅用了十六個(gè)位元組。當(dāng)然,8051核心還靜態(tài)配置了八個(gè)位元組的RAM,總共用了二十四個(gè)位元組。在較大的系統(tǒng)中,這個(gè)差異顯得微不足道,但是在僅有256位元組的ARM的系統(tǒng)中,這就變得很重要。

          架構(gòu)細(xì)節(jié)之考量

          假設(shè)有基于ARM和基于8051的MCU各一個(gè),配有所需的周邊,那么對于較大的系統(tǒng)或需要重點(diǎn)考慮易用性的應(yīng)用來說,ARM裝置是更好的選擇。如果首要考量的是低成本/小尺寸,那么8051裝置將是更好的選擇。本文以下對于每種架構(gòu)更擅長的應(yīng)用進(jìn)行更詳細(xì)的分析,同時(shí)也劃分出一般原則。

          影響延時(shí)因素

          兩種架構(gòu)的中斷和函式呼叫延時(shí)存在很大差異,8051比ARM Cortex-M核心更快。

          此外,高階周邊匯流排(APB)配備的周邊也會影響延時(shí),這是因?yàn)橘Y料必須透過APB和AMBA高性能匯流排(AHB)傳輸。最后,當(dāng)使用高頻核心時(shí)脈時(shí),許多基于Cortex-M的MCU需要分配APB時(shí)脈,這也增加了周邊延時(shí)。

          試驗(yàn)者做了個(gè)簡單的實(shí)驗(yàn),實(shí)驗(yàn)中的中斷是透過I/O引腳觸發(fā)的。該中斷對引腳發(fā)出一些訊號,并根據(jù)引發(fā)中斷的引腳更新標(biāo)志,之后再量測其部分參數(shù)的變化。

          8051核心在中斷服務(wù)程式(ISR)進(jìn)入和退出時(shí)顯示出優(yōu)勢。但是,隨著中斷服務(wù)程式(ISR)越來越大和執(zhí)行時(shí)間的增加,這些延遲將變得微不足道。和既有原則一致,系統(tǒng)越大,8051的優(yōu)勢越小。此外,如果中斷服務(wù)程式(ISR)涉及到大量資料移轉(zhuǎn)或大于元的整數(shù)資料運(yùn)算,中斷服務(wù)程式(ISR)執(zhí)行時(shí)間的優(yōu)勢將轉(zhuǎn)向ARM核心。例如,一個(gè)采用新樣本更新16位元或元轉(zhuǎn)動(dòng)平均(Rolling Average)的ADC ISR可能在ARM裝置上執(zhí)行的更快。

          8051核心的基本功能是控制代碼,其中對于變數(shù)的存取是分散的,并且使用了許多控制邏輯(If、Case等)。8051核心在處理元資料時(shí)也是非常有效的,而ARM Cortex-M核心擅長資料處理和元運(yùn)算。此外,元資料通道使得ARM MCU復(fù)制大的資料更加有效,因?yàn)樗看慰梢砸苿?dòng)四個(gè)位元組,而8051每次僅能夠移動(dòng)一個(gè)位元組。因此,那些主要把資料從一個(gè)地方移到另一個(gè)地方(例如UART到CRC或者到USB)的資料流處理應(yīng)用更適合選擇基于ARM處理器的系統(tǒng)。

          來做個(gè)簡單的實(shí)驗(yàn)。試驗(yàn)者編譯以下兩種架構(gòu)的函數(shù)(公式1),變數(shù)大小為uint8_t、uint16_t和uint32_t。

          隨著資料量的增加,8051核心需要越來越多的代碼來完成這項(xiàng)工作,最終超過了ARM函數(shù)的大小。在16位元的情況下,代碼大小幾乎類似,在執(zhí)行速度上稍優(yōu)于32位元核心,因?yàn)橄嗤a通常需要更少周期。還有一點(diǎn)很重要:只有采用最佳化的ARM編譯代碼時(shí),這種比較才有效。未最佳化的代碼需要花費(fèi)幾倍長的時(shí)間。

          這并不意味著有大量資料移動(dòng)或32位元運(yùn)算的應(yīng)用不應(yīng)該選擇8051核心完成。

          在許多情況下,其它方面的考量將超過ARM核心的效率優(yōu)勢,或者說這種優(yōu)勢是無關(guān)緊要的。舉例來說,考慮使用UART到SPI橋接器時(shí),該應(yīng)用花費(fèi)大部分時(shí)間在周邊之間復(fù)制資料,而ARM核心會更高效地完成該任務(wù)。然而,這也是一個(gè)非常小的應(yīng)用,可能放入到一個(gè)僅有2KB儲存容量的晶片就足夠了。

          盡管8051核心效率較低,但它仍然有足夠的處理能力去處理該應(yīng)用中的高資料速率。對于ARM裝置來說,可用的額外周期可能處于空閑回圈或“等待中斷”(WFI),等待下一個(gè)可用的資料到來。在這種情況下,8051核心仍然最有意義,因?yàn)轭~外的CPU周期是微不足道的,而較小的Flash封裝會節(jié)約成本。如果使用者要利用額外的周期去做些有意義的工作,那么額外的效率將是至關(guān)重要的,且效率越高越可能越有利于ARM核心。這個(gè)例子說明,清楚被開發(fā)系統(tǒng)所關(guān)注的環(huán)境中的各種架構(gòu)優(yōu)勢是何等重要,而作出這個(gè)最佳的決定是簡單但卻重要的一步。

          指標(biāo)為8051特殊優(yōu)勢

          8051裝置不像ARM裝置般統(tǒng)一的儲存映射,而是對存取碼(Flash)、IDATA(內(nèi)部RAM)和XDATA(外部RAM)有不同的指令。為了產(chǎn)生高效的代碼,8051代碼的指標(biāo)會說明它指向什么空間。然而,在某些情況下,使用通用指標(biāo),可以指向任何空間,但是這種類型的指標(biāo)是低效的存取。例如,將指標(biāo)指向緩沖區(qū)并將該緩沖區(qū)資料輸出到UART的函數(shù)。如果指標(biāo)是XDATA指標(biāo),那么XDATA陣列能被發(fā)送到UART,但在代碼空間中的陣列,首先需要被復(fù)制到XDATA。通用指標(biāo)能同時(shí)指向代碼和XDATA空間,但速度較慢,并且需要更多的代碼來存取。

          專用區(qū)域指標(biāo)在大多情況下能發(fā)揮作用,但是通用指標(biāo)在編寫使用情況未知的可重用代碼時(shí)非常靈活。如果這種情況在應(yīng)用中很常見,那么8051就失去了其效率優(yōu)勢。

          仔細(xì)評估了解MCU使用優(yōu)勢

          本文已經(jīng)多次注意到,運(yùn)算傾向于選擇ARM,而控制傾向于選擇8051,但沒有應(yīng)用僅僅著眼于計(jì)算或控制,該怎樣才能定義各種應(yīng)用,并計(jì)算出它的合適范圍呢?

          本文考量一個(gè)由10%的32位元計(jì)算、25%的控制代碼和65%的一般代碼構(gòu)成的假定應(yīng)用時(shí),其不能明確的歸成8或32位元類別。這個(gè)應(yīng)用也更注重代碼空間而不是執(zhí)行速度,因?yàn)槠洳⒉恍枰锌捎玫倪\(yùn)算效能,并且必須為成本進(jìn)行最佳化。

          成本比應(yīng)用速度更為重要的事實(shí)在一般代碼情形下將為8051核心帶來些微優(yōu)勢。此外,8051核心在控制代碼中有中間等級的優(yōu)勢。ARM核心在32位元計(jì)算方面占上風(fēng),但是這并非是很多應(yīng)用所重視的。考量到所有這些因素,這個(gè)特殊的應(yīng)用選擇8051核心更加合適。

          如果做一個(gè)細(xì)微的改變,假設(shè)該應(yīng)用更關(guān)心執(zhí)行速度而非成本,那么通用代碼不會傾向于哪種架構(gòu),并且ARM核心在計(jì)算代碼中全面占有優(yōu)勢。在這種情況下,雖然有比計(jì)算更多的控制代碼,但是最后結(jié)果將相當(dāng)均衡。顯然,在這個(gè)過程中有很多的評估,但是分解應(yīng)用,然后評估每一元件的技術(shù)將能確保使用者了解,在哪種情況下哪種架構(gòu)有更顯著的優(yōu)勢。



          關(guān)鍵詞: 8位 32位 微處理器

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();