現(xiàn)代MCU具有各種存儲元件,了解其組織,性能限制和功耗對于有效實(shí)施應(yīng)用程序至關(guān)重要。特別是,用于代碼存儲的片上閃存的特性,用于數(shù)據(jù)存儲的片上SRAM的組織以及片外存儲器的訪問特性將對整體處理效率產(chǎn)生巨大影響。讓我們分析一下這些關(guān)鍵的存儲器元件,以便更好地了解如何最有效地使用它們來最大限度地提高性能,降低功耗并優(yōu)化系統(tǒng)成本。
片上閃存
片上閃存可能是最關(guān)鍵的任何應(yīng)用程序中的內(nèi)存元素,因?yàn)樗ǔJ翘幚砥鞯乃兄噶畹脑?。如果沒有有效地獲取指令,則整體MCU性能將受到影響。向CPU提供指令有兩種不同的方法。在一種方法中,存儲器根據(jù)需要快速操作以匹配CPU的指令周期。例如,瑞薩RX600群使用先進(jìn)的閃存技術(shù),提供對指令存儲器的高性能零等待狀態(tài)訪問。這種方法可以簡化CPU架構(gòu)和確定性時(shí)序。
訪問閃存通常使用雙端口方式進(jìn)行CPU訪問,通過高速總線進(jìn)行讀取操作和更慢訪問,使用閃存控制器進(jìn)行寫入操作。 RX600的閃存接口如圖1所示。請注意,閃存進(jìn)一步分為數(shù)據(jù)閃存部分,用于存儲經(jīng)常修改的非易失性信息,以及指令部分,通常被視為讀取僅存儲器(ROM),即使它使用Flash技術(shù),并且可以在制造期間或通過系統(tǒng)更新由用戶多次重新編程。閃存控制單元(FCU)是一個(gè)獨(dú)立的專用處理器,可管理閃存寫入并具有自己的RAM和固件存儲器塊。 CPU可以啟動FCU操作;這是使用圖1頂部所示的外設(shè)總線實(shí)現(xiàn)的。
圖1:瑞薩RX600 MCU的閃存接口(由Renesas提供)。
另一種架構(gòu)使用比CPU時(shí)鐘慢的指令存儲器,可能需要插入等待狀態(tài)。這可以顯著降低處理性能,因此通常在CPU和較慢的指令和數(shù)據(jù)存儲器塊之間插入高速緩沖存儲器。高速緩存存儲最近的存儲器訪問,并且如果再次需要相同的指令或數(shù)據(jù)元素,則可以在不必訪問較慢的主存儲器塊的情況下使用它。 Atmel SAM9G MCU的數(shù)據(jù)和指令高速緩沖存儲器的組織如圖2所示.16 KB存儲器提供快速的本地存儲,減少了CPU通過多路復(fù)用訪問大型Flash ROM或SRAM塊所需的次數(shù)。層AHB矩陣。請注意,使用本地高速緩存存儲器的能力也減少了總線矩陣流量,因此DMA或外設(shè)訪問將具有額外的總線帶寬。
圖2:Atmel的SAM9G MCU的高速緩存存儲器接口。
如果高速緩存存儲器是高效的,整個(gè)“內(nèi)部循環(huán)”可以適應(yīng)高速緩存,這可能導(dǎo)致應(yīng)用程序的最關(guān)鍵部分幾乎為零等待狀態(tài)性能。注意,在該方法中執(zhí)行定時(shí)可能更難以估計(jì),因?yàn)楦咚倬彺妗拔疵小睂?dǎo)致意外的處理減速。另外,如果一個(gè)小的內(nèi)部循環(huán)不可用,或者數(shù)據(jù)的組織方式使得緩存算法所依賴的“位置”被違反,則處理可能變得非常低效。然而,一般而言,由于大多數(shù)算法的局部特性,緩存算法已被證明可以提高效率。
更復(fù)雜的緩存架構(gòu)
高帶寬計(jì)算密集型MCU,如德州儀器面向DSP的TMS320DM814x視頻處理器,高速緩沖存儲器系統(tǒng)可以具有額外的復(fù)雜程度。 TMS320DM814x的處理器到存儲器接口(圖3)具有三種不同級別的存儲器層次結(jié)構(gòu)。最接近處理器的是兩個(gè)1級(L1)高速緩存存儲器,一個(gè)用于指令,一個(gè)用于數(shù)據(jù)。當(dāng)所需數(shù)據(jù)不在L1高速緩存中時(shí),向2級(L2)存儲器發(fā)出請求。 L2存儲器是多端口存儲器,具有多個(gè)存儲區(qū)以進(jìn)一步組織數(shù)據(jù)。帶寬管理用于每個(gè)高速緩存控制器,以管理存儲器訪問的優(yōu)先級,以保持?jǐn)?shù)據(jù)順暢地流入和流出處理器。最多可提供9個(gè)優(yōu)先級,如果低優(yōu)先級訪問被阻止時(shí)間過長(超過Max_Wait周期),則可以優(yōu)先考慮優(yōu)先級。
這種多級內(nèi)存架構(gòu)在高帶寬時(shí)并不少見是必需的,包含優(yōu)先級和其他高級管理功能對于減輕優(yōu)化帶寬的負(fù)擔(dān)至關(guān)重要。嘗試識別包含高效緩存,智能帶寬管理功能和多個(gè)內(nèi)存端口的MCU,以自動優(yōu)化內(nèi)存帶寬。
圖3:德州儀器的TMS320DM814x DSP內(nèi)存接口架構(gòu)(圖片提供)德州儀器(TI))。片上SRAM
需要了解片上SRAM的組織,以便在應(yīng)用中組織數(shù)據(jù)元素以獲得最佳效率。在許多情況下,MCU將SRAM組織成單獨(dú)的塊,可以由總線主機(jī)獨(dú)立訪問以重疊并提高數(shù)據(jù)傳輸效率。恩智浦半導(dǎo)體LPC15xx MCU將SRAM分成三個(gè)不同的模塊,每個(gè)模塊通過多級AHB矩陣可用于處理器,USB或DMA主設(shè)備,如圖4頂部所示。圖中底部顯示了SRAM模塊的特性,如SRAM模塊的特性。作為大小,地址范圍,以及是否可以禁用它以節(jié)省每個(gè)LPC15xx系列成員的電源分配不同大小的SRAM模塊并不罕見,無論是從處理角度還是從功率角度來看,都可以幫助您以最有效的方式對設(shè)計(jì)進(jìn)行分區(qū)。讓我們更詳細(xì)地了解如何智能地將您的算法要求與SRAM塊組織相匹配,從而提高處理能力和功率效率。
圖4:通過AHB矩陣將NXP LPC15xx SRAM連接到總線主控器和SRAM模塊特性(恩智浦提供)。
提高處理效率
基于MCU的設(shè)計(jì)中最常見的效率改進(jìn)之一是使用DMA功能從CPU卸載簡單的數(shù)據(jù)傳輸功能。如果CPU可以進(jìn)入休眠模式或與數(shù)據(jù)傳輸并行處理,則整體效率得到提高。多個(gè)SRAM塊的存在可以成為支持無沖突并行操作的重要元素。此外,同樣具有多級總線接口的高級MCU,如NXP LPC15xx,可以提供對共享資源的優(yōu)先訪問,以自動提高處理效率。例如,如果算法必須通過USB接口接收數(shù)據(jù),則處理數(shù)據(jù),存儲數(shù)據(jù),當(dāng)有足夠的數(shù)據(jù)可用時(shí),通過另一個(gè)接口發(fā)送結(jié)果,各種數(shù)據(jù)緩沖區(qū)的位置對整體性能至關(guān)重要。最好將輸入和輸出緩沖區(qū)分成不同的SRAM塊,因此來自CPU,DMA和USB端口的主控請求不會同時(shí)嘗試訪問同一個(gè)塊。為主訪問建立正確的優(yōu)先級設(shè)置將有助于消除算法停頓。確保在數(shù)據(jù)處理中以更高的優(yōu)先級捕獲接收的數(shù)據(jù)對于消除數(shù)據(jù)接收錯(cuò)誤和冗長的重試周期至關(guān)重要。了解算法的數(shù)據(jù)流要求是有效利用內(nèi)存塊的關(guān)鍵要求。
如上圖4的下半部分所示,可以啟用或禁用某些NXP LPC15xx SRAM模塊以降低功耗。組織數(shù)據(jù)以利用這一點(diǎn)可以有助于實(shí)現(xiàn)積極的電力目標(biāo)。例如,許多算法在CPU計(jì)算期間使用數(shù)據(jù)緩沖區(qū)來存儲大數(shù)據(jù)。計(jì)算完成后,無需保存該數(shù)據(jù),并且可以禁用相關(guān)的存儲器塊以節(jié)省電量。如果SRAM存儲器塊在使用之前需要一些額外的時(shí)間來“喚醒”,則始終啟用的SRAM塊中的較小緩沖區(qū)可以存儲數(shù)據(jù),直到新啟用的塊準(zhǔn)備就緒。在某些情況下,需要進(jìn)行詳細(xì)的計(jì)算以確定這些電源管理技術(shù)可以產(chǎn)生的節(jié)能量(如果有的話);但是具有多個(gè)具有省電選項(xiàng)的SRAM模塊通??梢蕴岣吖β市?。
外部存儲器接口
訪問片外存儲器資源會增加顯著的延遲,因此尋找緩沖片內(nèi)數(shù)據(jù)和預(yù)取存儲器的機(jī)會從片外可以顯著提高整體帶寬。將片上存儲器緩沖器匹配到適當(dāng)?shù)钠蟂RAM塊是重要的考慮因素,并且可以被認(rèn)為是先前描述的技術(shù)的擴(kuò)展。但是,外部存儲器接口通常組合多種類型的訪問。了解如何在訪問多個(gè)外部存儲器時(shí)避免沖突同樣重要。例如,Atmel SAM9G上的外部存儲器接口(如圖5所示)支持組合的DDR,LPDDR和SDRAM控制器,靜態(tài)存儲器控制器和NAND閃存控制器。雙從屬接口連接到多級總線矩陣,以便在由不同總線主控器啟動時(shí)傳輸可以重疊。請注意,靜態(tài)存儲器控制器和NAND控制器共享一個(gè)公共從端口。嘗試重疊NAND和靜態(tài)存儲器訪問可能效率低于重疊DDR2和NAND訪問。同樣需要注意在內(nèi)部存儲器塊中分配數(shù)據(jù)以避免影響效率
圖5:Atmel SAM9G MCU上的外部存儲器接口(由Atmel提供)。許多存儲器接口子系統(tǒng)還提供緩存或本地存儲器緩沖區(qū)以減少訪問延遲。一些高級DDR控制器還可以自動優(yōu)先考慮訪問并組合操作,以利用DDR內(nèi)存架構(gòu)的塊性質(zhì)。如果外部存儲器流量是算法的重要組成部分,則必須檢查MCU上包含的存儲器控制器功能的詳細(xì)信息,以便更好地估計(jì)您可以預(yù)期的傳輸效率類型。
-
處理器
+關(guān)注
關(guān)注
68文章
19313瀏覽量
230057 -
mcu
+關(guān)注
關(guān)注
146文章
17171瀏覽量
351485 -
存儲器
+關(guān)注
關(guān)注
38文章
7496瀏覽量
163929
發(fā)布評論請先 登錄
相關(guān)推薦
評論