最小化ARM Cortex-M CPU功耗的方法與技巧
舉個(gè)例子,即使在廣受歡迎的ARM Cortex-M類的MCU中指令緩沖的運(yùn)行方法也有不同。采用簡單指令緩沖的MCU,例如來自Silicon Labs的EFM32產(chǎn)品,可以存儲(chǔ)128x32(512 bytes)的目前大多數(shù)當(dāng)前執(zhí)行指令(通過邏輯判斷請(qǐng)求的指令地址是否在緩沖中)。EFM32參考手冊(cè)指出典型應(yīng)用在這個(gè)緩沖中將有超過70%的命中率,這意味著極少的Flash存取、更快的代碼執(zhí)行速度和更低的整體功耗。相比之下,采用64x128位分支緩沖器的ARM MCU能夠存儲(chǔ)最初的幾條指令(取決于16位或32位指令混合,每個(gè)分支最多為8條指令,最少為4條指令)。因此,分支緩沖實(shí)現(xiàn)能夠在1個(gè)時(shí)鐘周期內(nèi)為命中緩沖的任何分支或跳轉(zhuǎn)填充流水線,從而消除了任何CPU時(shí)鐘周期延遲或浪費(fèi)。兩種緩沖技術(shù)與同類型沒有緩沖特性的CPU相比,都提供了相當(dāng)大的性能改善和功耗減少。
本文引用地址:http://www.ex-cimer.com/article/273202.htm4 M0+內(nèi)核探究
對(duì)功耗敏感型應(yīng)用來說每個(gè)nano-watt都很重要,Cortex-M0+內(nèi)核是一個(gè)極好的選擇。M0+基于Von-Neumann架構(gòu)(而Cortex-M3和Cortex-M4內(nèi)核是Harvard結(jié)構(gòu)),這意味著它具有更少的門電路數(shù)量實(shí)現(xiàn)更低的整體功耗,并且僅僅損失極小的性能(Cortex-M0+的0.93DMIPS/MHz對(duì)比Cortex-M3/M4的1.25DMIPS/MHz)。它也使用Thumb-2指令集的更小子集(如圖3所示)。幾乎所有的指令都有16位的操作碼(52x16位操作碼和7x32位操作碼;數(shù)據(jù)操作都是32位的),這使得它可以實(shí)現(xiàn)一些令人感興趣的功能選項(xiàng)以降低CPU功耗。
節(jié)能性功能選項(xiàng)首要措施就是減少Flash存儲(chǔ)訪問次數(shù)。一個(gè)主要的16位指令集意味著你可以交替時(shí)鐘周期訪問Flash存儲(chǔ)器(如圖4所示),并且可以在每一次Flash存儲(chǔ)訪問中為流水線獲取兩條指令。假設(shè)你在存儲(chǔ)器中有兩條指令并對(duì)齊成一個(gè)32位字;在指令沒有對(duì)齊的情況下,Cortex-M0+將禁止剩余的一半總線以節(jié)省每一點(diǎn)能耗。
存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理
評(píng)論