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

評論