閃存現(xiàn)在完全支配微控制器(MCU),但隨著處理器已經(jīng)發(fā)展到32位架構(gòu)并且外設(shè)變得更加強大,內(nèi)存考慮變得更加復(fù)雜。很容易忘記奇特外設(shè)中的內(nèi)存,使MCU更像是片上系統(tǒng)(SoC),包括先進的電機控制,圖形用戶界面(GUI)和網(wǎng)絡(luò)。
仍然,F(xiàn)lash和其他內(nèi)存類型的細節(jié)值得注意,以確保所選MCU具有符合系統(tǒng)需求的內(nèi)存。在MCU中以更高的速度快速增加ARM?Cortex?-M處理器架構(gòu)的使用也可以更加仔細地檢查內(nèi)存支持。供應(yīng)商采用不同的方法來處理片上存儲器選項,這可能會使MCU選擇平衡。
如今在大型MCU上可以使用多達一兆字節(jié)的閃存。隨著MCU發(fā)現(xiàn)新應(yīng)用程序并采用新功能,程序存儲,數(shù)據(jù)表和暫存器RAM的比例發(fā)生了變化。高端MCU可能采用高級語言(HLL)編程,運行實時操作系統(tǒng)(RTOS),并利用現(xiàn)成的堆棧和軟件包。每個因素都會影響內(nèi)存需求和使用。
通常用于MCU的閃存具有訪問時間,可以跟上25到50 MHz的處理器時鐘。當(dāng)高性能處理器內(nèi)核的時鐘頻率超過200 MHz時,填補耗時耗力的等待狀態(tài)可能存在巨大差距。多個片上總線和特殊路由機制對于緩解某些繁忙微控制器中的流量問題非常有用。
ARM處理器內(nèi)核架構(gòu)具有非常好的代碼密度,因為其緊湊的Thumb2?指令只需要16位來存儲指令而不是預(yù)期的32位。 ARM Cortex-M0,Cortex-M3和Cortex-M4內(nèi)核在眾多廠商的微控制器中很受歡迎,這里將研究一些內(nèi)存選擇。
恩智浦半導(dǎo)體LPC4000 - 實時輔助數(shù)據(jù)處理
恩智浦半導(dǎo)體在基于ARM的微控制器方面取得了成功,因為很久以前ARM7TDMI?內(nèi)核適用于MCU。恩智浦在其產(chǎn)品組合上市后迅速將Cortex-M內(nèi)核添加到其產(chǎn)品組合中,并且一直是將Cortex-M3,Cortex-M0和Cortex -M4集成到一端的高速MCU的領(lǐng)導(dǎo)者之一,同時推動價格降低另一個。恩智浦是第一批進入超寬閃存組織以緩沖后續(xù)存儲器位置以確??捎眯远鵁o延遲的公司之一。
恩智浦最新的MCU系列LPC4000(見圖1)引起了人們的興趣,原因有兩個,例如包含Cortex-M4,它具有數(shù)字信號處理(DSP),單指令多數(shù)據(jù)(SIMD) ,以及可選的浮點指令 - 以及每個指令上的單獨Cortex-M0處理器內(nèi)核。為了保持Cortex-M4足夠快,并保持低功耗,恩智浦將片上閃存擴展到256位寬,這是業(yè)界最廣泛的。
圖1:恩智浦LPC4000架構(gòu)(恩智浦提供)。
恩智浦使用相當(dāng)簡單的緩沖系統(tǒng)來保存32行最近的Flash存儲器訪問,為最近提取的指令提供即時可用性。與使用更奇特的方案相比,這提供了更一致的執(zhí)行性能。一些緩存替換算法可以對編譯器生成的代碼起作用,并且可能更難以模擬和調(diào)試。恩智浦發(fā)現(xiàn),他們的Flash執(zhí)行可以在RAM的5%的性能范圍內(nèi)運行,在當(dāng)前的90納米工藝中運行高達150 MHz。
兩個Flash存儲區(qū)提供隔離和分區(qū),當(dāng)應(yīng)用程序繼續(xù)從另一個存儲區(qū)運行時,重新刷新一個存儲區(qū)時也能提供絕對的信心。
LPC4000具有高達1 MB的閃存,片上有高達264 KB的SRAM - 程序與數(shù)據(jù)存儲器的比例為4:1。如果需要,可以直接從大部分RAM執(zhí)行指令,無需等待狀態(tài) - 這是最快的確定性實時處理的理想選擇,無需擔(dān)心代碼在細粒度級別反彈??梢允褂酶鞣NSRAM模塊,因此不同的例程和輸入/輸出(I/O)不會爭用總線時間。
LPC4000易于使用廉價的外部閃存,用于擴展程序空間,代碼將首先復(fù)制到SRAM中以便最快地執(zhí)行,甚至是用于顯示屏的大型圖形圖像。隨時可用的閃存帶有串行外設(shè)接口(SPI)端口,包括四SPI閃存,實際上可以直接映射到處理器的正常存儲空間,程序員不必考慮它是片上還是連接串行片外。 SPI閃存接口(SPIFI)為外部閃存提供四個通道,并允許Flash中的圖像以高達40 MBps的速度直接DMA到LCD控制器。
Cortex-M0有自己的8 KB程序存儲器,并通過共享存儲器將消息傳遞給更大的兄弟Cortex-M4。
這一系列的MCU還包括32 KB ROM,其中包含軟件驅(qū)動程序,啟動代碼和其他一些代碼,以減輕系統(tǒng)設(shè)計人員編寫此代碼的麻煩,并為更多特定于應(yīng)用程序的例程留下更多珍貴的Flash。 ROM執(zhí)行的速度和功率效率自然也比Flash好。某些MCU提供了一個執(zhí)行可靠的固定時間DIVIDE操作的庫。
恩智浦早期版本的ARM Cortex MCU可能采用更大的180 nm或140 nm工藝節(jié)點,大多數(shù)采用128位寬閃存,而不是剛剛描述的256位架構(gòu)。所有的閃存都是由恩智浦專門為MCU開發(fā)的,它內(nèi)置單錯誤糾正/雙錯誤檢測,具有更好的閃存完整性和監(jiān)控功能。恩智浦擁有廣泛的基于ARM的MCU,其中包含Cortex-M0,Cortex-M3和Cortex-M4,最小的只適用于16引腳封裝,售價僅為8位MCU的預(yù)期。
STMicroelectronics STM32 - 快速,巧妙的存儲器
STMicroelectronics是另一家公司,在將早期的ARM7?和ARM9?內(nèi)核與32位MCU配合使用后,很快就采用了STM32產(chǎn)品線,在微控制器中采用了ARM Cortex-M3。意法半導(dǎo)體最新的STM32F4系列(見圖2)可以在90納米工藝中將Cortex-M4推向168 MHz,同時在芯片上提供高達1 MB的閃存和192 KB的RAM。
圖2:STMicroelectronics STM32F4架構(gòu)(由STMicroelectronics提供)。
為了獲得這種性能,意法半導(dǎo)體開發(fā)了自適應(yīng)實時存儲加速器(ART Accelerator?)。這是一個類似于微處理器系統(tǒng)的緩存控制器,可根據(jù)從Flash執(zhí)行的程序的需求進行定制。 Flash由128位組織,因此單個讀取包含4個32位指令,其中Thumb2指令可以是6到8個實際指令。
ART加速器使用預(yù)取隊列和64項分支緩存來緩解由于分支,子程序調(diào)用甚至可能是系統(tǒng)調(diào)用或中斷而導(dǎo)致的指令流更改延遲。如果重定向的程序計數(shù)器想要最近獲取的位置,則目標可能仍然駐留在分支高速緩存中,在這種情況下,它可以立即加載到預(yù)取隊列中以便執(zhí)行,從而節(jié)省了周期。片上邏輯的更智能(自適應(yīng))高速緩存管理應(yīng)該比簡單的方法產(chǎn)生更積極的結(jié)果(更高的比特率)。
為了減輕數(shù)據(jù)訪問(例如數(shù)據(jù)查找表或圖像數(shù)據(jù))上的Flash停頓,ART加速器有8個128位緩沖區(qū)。引用位置對于數(shù)據(jù)來說相當(dāng)差,但是可以通過基于對程序中使用數(shù)據(jù)的詳細了解巧妙地安排數(shù)據(jù)來改進數(shù)據(jù)。這類似于裝配中的手工編碼。
意法半導(dǎo)體(STMicroelectronics)認為,閃存執(zhí)行速度高達168 MHz,在零等待狀態(tài)存儲器執(zhí)行的2.5%范圍內(nèi)。它將CoreMark?基準測試作為其效率和速度的證明,盡管編譯器的有效性和設(shè)置也會影響這些結(jié)果。首先,168 MHz STM32F4 MCU比這一類中的任何其他MCU快得多地執(zhí)行例程,并顯示出頻率上的線性。其次,“Coremarks/MHz”(每個時鐘周期完成的有效工作)是最高的之一。
STM32F4上的實時時鐘模塊包括一個4 KB電池備份SRAM,用于在極低功耗條件下保存變量和狀態(tài)信息。更為獨特的是,528字節(jié)的一次性可編程ROM可用于序列號,MAC地址,加密密鑰,校準設(shè)置以及每個裝運單獨的其他數(shù)據(jù)的存儲。
STMicroelectronics還采用7級ARM高速總線(AHB)矩陣,允許在ARM處理器,通用DMA,與USB或網(wǎng)絡(luò)控制器相關(guān)的DMA等主機之間同時進行數(shù)據(jù)傳輸,以及眾多的從屬設(shè)備。外圍設(shè)備和記憶。
STMicroelectronics擁有眾多ARM Cortex-M0和原始Cortex-M3的MCU配置,從低成本,輕載控制器到具有復(fù)雜外設(shè)的快速時鐘設(shè)備。他們還有一個低功率線路。意法半導(dǎo)體聲稱基于Cortex-M的MCU累計出貨量占市場份額的45%,因此其中許多產(chǎn)品已被使用。
飛思卡爾半導(dǎo)體Kinetis - 靈活的存儲器
飛思卡爾半導(dǎo)體基于ARM處理器的主要微控制器需要一段時間才能開始,盡管它已經(jīng)銷售了基于Power Architecture?及其專有ColdFire?架構(gòu)的32位MCU數(shù)十年。飛思卡爾憑借其增強的功能快速推出ARM Cortex-M4內(nèi)核,相當(dāng)不錯地填補了其新的Kinetis?產(chǎn)品系列(參見圖3)。
圖3:飛思卡爾Kinetis架構(gòu)(飛思卡爾提供)。
從小型K10到今天的全口徑K70,片上閃存的容量從32 KB到1 MB,根據(jù)芯片的不同,從32位到128位寬。閃存在90 nm工藝節(jié)點上制造,根據(jù)電壓響應(yīng)約30 ns,但Kinetis MCU運行速度高達100 MHz,速度提高了一倍。飛思卡爾的薄膜存儲(TFS)閃存可以在低至1.71伏的電壓下讀取,擦除和寫入,這很不錯,因為它在兩個幾乎耗費1.5伏的AA電池的限制范圍內(nèi)(一旦達到0.9伏特,它們會迅速降級) )。
Kinetis MCU有自己的指令和數(shù)據(jù)緩存來幫助克服Flash讀取延遲,并且它們也可以解決片外存儲器問題。這足以使Kinetis MCU看起來像Kinetis的額定速度一樣高效。內(nèi)存保護單元可幫助操作系統(tǒng)使一個任務(wù)的程序無法進入另一個任務(wù)的內(nèi)存空間。
主閃存補充了飛思卡爾稱之為FlexMemory的東西,F(xiàn)lexMemory是一種特殊的Flash,也可以作為E2PROM運行。程序員決定使用多少作為程序Flash,余額用作E2 - 最多16 KB。作為E2運行的部分自動啟動特殊邏輯,執(zhí)行耗損均衡和寫入算法,以獲得更多FlexFlash專用的100萬次可能達到1000萬次耐久性循環(huán)。
與其他供應(yīng)商的情況一樣,飛思卡爾利用縱橫開關(guān)讓總線主控制器同時訪問主閃存,F(xiàn)lexFlash,SRAM和各種外設(shè),以保持數(shù)據(jù)的最佳移動。
德州儀器Stellaris - 固件包括
Stellaris?微控制器是第一批使用新型ARM Cortex-M3架構(gòu)的產(chǎn)品,它們由領(lǐng)先的合作伙伴Luminary Micro開發(fā),現(xiàn)由德州儀器公司所有。 Stellaris擁有豐富的MCU系列,可滿足從電機控制到網(wǎng)絡(luò)和用戶界面的各種應(yīng)用需求。
德州儀器(TI)以80 MHz的速度運行,具有高達512 KB的錯誤檢查閃存,高達96 KB的數(shù)據(jù)RAM,有些還有自己的2 KB傳統(tǒng)E2PROM片內(nèi)。 Stellaris的閃存可以執(zhí)行高達50 MHz的單周期讀取,超過此速率,預(yù)取緩沖區(qū)的效果通過讀取每次讀取64位和引入推測分支來最小化延遲。
雖然ROM目前在大多數(shù)MCU上似乎已經(jīng)消失,但許多基于Stellaris LM3S和Cortex-M4的LM4F MCU(見圖4)特別使用了緊湊型ROM來存儲一些基本且經(jīng)常訪問的代碼供所有應(yīng)用程序使用。這些驅(qū)動程序和例程稱為StellarisWare?,包括外設(shè)驅(qū)動程序庫,引導(dǎo)加載程序和向量表,搶占式實時調(diào)度程序SafeRTOS?,循環(huán)冗余校驗(CRC)錯誤檢測操作以及用于高級加密的加密表標準(AES)功能。將這些有用的功能和數(shù)據(jù)放入快速,廉價的ROM(適當(dāng)時)中可以釋放大量的Flash,這些Flash可以更好地用于增強終端設(shè)備的自定義代碼。
圖4:德州儀器Stellaris LM4F架構(gòu)(德州儀器公司提供)。
記住你的應(yīng)用程序 - 內(nèi)存可能會讓它變得更好
每個應(yīng)用程序的需求都是不同的,選擇微控制器時需要考慮很多因素。此處已經(jīng)回顧了許多與各種供應(yīng)商的高端MCU相關(guān)的閃存,SRAM,ROM和專用存儲器功能。雖然沒有任何一個部件可能具有適合您應(yīng)用的理想功能,但現(xiàn)在許多存儲器選項應(yīng)該更清晰。
-
微控制器
+關(guān)注
關(guān)注
48文章
7952瀏覽量
155016 -
soc
+關(guān)注
關(guān)注
38文章
4387瀏覽量
222739 -
內(nèi)存
+關(guān)注
關(guān)注
8文章
3124瀏覽量
75264
發(fā)布評論請先 登錄
電線/開關(guān)/插座/斷路器的選擇及注意事項
中央控制系統(tǒng)的選擇注意事項
濕度傳感器的選擇方法及使用注意事項
rtu控制器設(shè)參方法和注意事項
將安全微控制器與EPROM/ROM配合使用
選擇微控制器的幾個步驟和注意事項
MPPT控制器的安裝方法與注意事項
AN-400:選擇DSP處理器的注意事項--為什么選擇ADSP-2181

評論