近期,靈動(dòng)微電子發(fā)布了靈動(dòng)“星”平臺(tái),其全新高性能 MM32F5 微控制器系列。該系列在內(nèi)核、總線和外設(shè)配置等多個(gè)方面進(jìn)行了創(chuàng)新,內(nèi)核上更是首次搭載了 Armv8-M 架構(gòu)的 “星辰” STAR-MC1 處理器,因此一經(jīng)發(fā)布就獲得了大量用戶和媒體的關(guān)注。
很多用戶會(huì)咨詢“星辰”處理器相關(guān)的問題,特別是“星辰”處理器是什么樣的內(nèi)核?相較于 Arm Cortex-M 系列內(nèi)核又有什么差別?這里,為了讓大家對(duì)“星辰”處理器有一個(gè)快速的了解,并解答上述的這些問題,本文對(duì)“星辰”處理器的主要特色做一個(gè)梳理。
“星辰”處理器是什么?
如果用一句話介紹“星辰”處理器,那就是:安謀科技設(shè)計(jì)的一款基于 Armv8-M 架構(gòu)的嵌入式處理器。這里,安謀科技是中國(guó)最大的芯片設(shè)計(jì) IP 開發(fā)與服務(wù)供應(yīng)商,而靈動(dòng)微電子則是從安謀科技獲得了該處理器的正規(guī)使用授權(quán),并于 MM32F5 系列中首次搭載了該處理器。
“星辰”處理器的幾大特點(diǎn)如下:
采用最先進(jìn)的Armv8-M架構(gòu)
處理器是基于指令集架構(gòu)設(shè)計(jì)實(shí)現(xiàn)的運(yùn)算和控制單元,而 Arm 處理器的指令集架構(gòu)自誕生以來也在不斷的更新?lián)Q代,目前市面上較為常見的 Arm MCU 架構(gòu)包括 Armv6-M、Armv7-M和 Armv8-M 架構(gòu),其中,Armv6-M 架構(gòu)的典型處理器有 Cortex-M0 和 Cortex-M0+,Armv7-M 架構(gòu)的典型處理器有 Cortex-M3、Cortex-M4 和 Cortex-M7,而 Armv8-M 架構(gòu)的典型處理器則有 Cortex-M23、Cortex-M33、Cortex-M55 和 “星辰”STAR-MC1。
經(jīng)常關(guān)注 MCU 前沿動(dòng)態(tài)的話一定會(huì)有所了解,近幾年來國(guó)際上最主要的幾家 MCU 大廠的新產(chǎn)品已經(jīng)逐漸從 Armv7-M 架構(gòu)過度到了 Armv8-M 架構(gòu),如ST、NXP、Renesas等。那么 Armv8-M 架構(gòu)相較于 Armv7-M 架構(gòu),究竟有哪些優(yōu)勢(shì)?
性能提升
Armv8-M 架構(gòu)優(yōu)化了指令集和流水線設(shè)計(jì),其同級(jí)別產(chǎn)品的性能相較于 Armv7-M架構(gòu)普遍提高20% 以上。
更安全
Armv8-M 架構(gòu)引入了 TrustZone 技術(shù),并強(qiáng)化了內(nèi)存保護(hù)單元(MPU),讓代碼運(yùn)行在更安全的環(huán)境中。
可擴(kuò)展
Armv8-M 架構(gòu)引入了協(xié)處理器接口,允許 MCU 產(chǎn)商自己開發(fā)協(xié)處理器和自定義指令,相較于傳統(tǒng)的基于地址映射和中斷的協(xié)處理器可大幅提升執(zhí)行效率。特別是Armv8.1-M架構(gòu),還預(yù)留了用戶自定義指令的接口。
集成 DSP 和 FPU
彌補(bǔ)了 Cortex-M3 的短板,DSP 性能相較于 Cortex-M3 提升10倍。
集成內(nèi)存子系統(tǒng)
在計(jì)算機(jī)體系結(jié)構(gòu)中,除了處理器內(nèi)核的設(shè)計(jì)外(指令集、流水線、ALU等等),存儲(chǔ)架構(gòu)的設(shè)計(jì)也是重要的一環(huán)。在特定應(yīng)用場(chǎng)景下,高效率的存儲(chǔ)訪問對(duì)系統(tǒng)整體性能所帶來的提升效果可能比提高內(nèi)核性能本身還要來得明顯。而提升存儲(chǔ)訪問效率的方法往往有兩個(gè):
層次化設(shè)計(jì)(Memory Hierarchy)
小知識(shí)
層次化設(shè)計(jì)的核心是緩存(Cache)。在嵌入式系統(tǒng)中,處理器運(yùn)行速度遠(yuǎn)快于 Flash 的運(yùn)行速度(典型值是 2:1 到16:1), 而處理器要從 Flash 中獲取執(zhí)行代碼,如果 Flash 速度不做優(yōu)化的話,可以說處理器跑的再快也會(huì)受到 Flash 讀取速度瓶頸的制約。而最有效的解決方法就是在處理器和 Flash 之間加入緩存,這里的緩存可能是多層的,一般把靠近處理器一端的緩存叫做一級(jí)緩存(Level 1或簡(jiǎn)寫為 L1),而靠近 Flash 一端的緩存叫做二級(jí)緩存(Level 2 或簡(jiǎn)寫為 L2),一般情況下,因 L2 緩存和 CPU 之間還間隔了一個(gè)總線矩陣,因此 L1 緩存的效率往往高于 L2 緩存。
增加并行訪問路徑提高吞吐率
小知識(shí)
一般而言,越高性能的內(nèi)核,其并行訪問通路越多,多條通路可并發(fā)訪問,因此系統(tǒng)吞吐率可以成倍增長(zhǎng)。如Cortex-M0 和 Cortex-M0+ 僅有一條系統(tǒng)總線,指令和數(shù)據(jù)均通過一條總線訪問;Cortex-M3 和 M4 中將指令和數(shù)據(jù)進(jìn)行了區(qū)分,可以在取指的同時(shí)獲取數(shù)據(jù);Cortex-M7 則進(jìn)一步引入了指令緊耦合 RAM (以下簡(jiǎn)稱 ITCM)總線和數(shù)據(jù)緊耦合 RAM(以下簡(jiǎn)稱 DTCM)總線,以及引入了獨(dú)立外設(shè)總線(AHBP)。
而“星辰“ 處理器所集成的內(nèi)存子系統(tǒng)同時(shí)采用了上述的兩種技術(shù)。
首先,“星辰”處理器配置了 L1 指令和數(shù)據(jù)緩存,該緩存和內(nèi)存緊耦合,可以用來加速任何指令和數(shù)據(jù)總線上的訪問,這里包括內(nèi)置 Flash 和 SRAM中的指令和數(shù)據(jù),以及外置 Flash 、TF 卡、外置 RAM的指令和數(shù)據(jù)等。
同時(shí),“星辰”處理器也引入了獨(dú)立的 ITCM 接口和 DTCM 接口,用于訪問與處理器緊耦合的指令和數(shù)據(jù) RAM,處理器對(duì)于 TCM 的訪問完全可以和指令和數(shù)據(jù)總線的訪問并行執(zhí)行。而且,當(dāng) CPU 不訪問 TCM 時(shí),TCM 也可以被 DMA 等外設(shè)通過獨(dú)立的 TCM總線(AHBT)訪問。
在 Armv7-M 架構(gòu)處理器中,內(nèi)存子系統(tǒng)僅在最高性能的 Cortex-M7 上才有配置?!靶浅健碧幚砥髋鋫渖蟽?nèi)存子系統(tǒng)可以大幅提高系統(tǒng)吞吐率。
本土團(tuán)隊(duì)打造
在目前的國(guó)際形勢(shì)下,國(guó)外對(duì)出口到我國(guó)的關(guān)鍵技術(shù)的管制風(fēng)險(xiǎn)一直沒有緩解,而不斷出現(xiàn)的國(guó)際紛爭(zhēng)更是加劇了這種風(fēng)險(xiǎn)的可能性。如何應(yīng)對(duì)隨時(shí)可能加碼的出口管制風(fēng)險(xiǎn),做到在核心技術(shù)上不被“卡脖子”,關(guān)乎國(guó)產(chǎn)半導(dǎo)體的命脈,是所有國(guó)內(nèi)半導(dǎo)體人需要共同面對(duì)和思考的問題。
“打鐵還需自身硬”,應(yīng)對(duì)出口管制和貿(mào)易戰(zhàn)的風(fēng)險(xiǎn),打造完全自主可控的本土半導(dǎo)體供應(yīng)鏈?zhǔn)潜匾摹6鴵?jù)安謀科技介紹,“星辰”STAR-MC1 處理器由安謀科技本土團(tuán)隊(duì)設(shè)計(jì)打造,本土技術(shù)的占比高于90%,因此,真正意義上做到了自主可控。
總結(jié)而言,“星辰”STAR-MC1 處理器是一款采用了先進(jìn)架構(gòu)、優(yōu)化了總線和存儲(chǔ)配置、且完全自主可控的高性能處理器。
看似很厲害,跑個(gè)分?
基于上述的介紹, 大家可能還是沒辦法直觀的感受到 “星辰”處理器的強(qiáng)大,那下面就以國(guó)際通用的 CoreMark 跑分結(jié)果來進(jìn)行說明。
下圖列舉了 “星辰”STAR-MC1 處理器的標(biāo)稱 CoreMark 跑分和同級(jí)別 Cortex-M 內(nèi)核的比較??梢钥吹?,STAR-MC1的跑分為 4.02 CoreMark/MHz,其相較于 Cortex-M3 提升了 20%,相較于 Cortex-M4 提升了 17%。因此,從核心性能而言,STAR-MC1 是一款介于 Cortex-M4 到 Cortex-M7 之間的處理器。
需要說明的是,這里的跑分?jǐn)?shù)值是各處理器的理論極限值,該理論極限值一般可通過把 CoreMark 代碼放在零延遲 RAM 中執(zhí)行而獲得。而在實(shí)際應(yīng)用中,用戶的程序往往是從 Flash 中執(zhí)行,如果存儲(chǔ)層次設(shè)計(jì)不好,其所獲得的 CoreMark 跑分結(jié)果將大打折扣。
而得益于 STAR-MC1 出色的內(nèi)存子系統(tǒng)設(shè)計(jì),保證了其 Flash 跑分結(jié)果和理論極限值幾乎沒有差別。
根據(jù) MM32F5270 芯片上的實(shí)際測(cè)試結(jié)果,當(dāng) L1 緩存打開時(shí),從Flash 中執(zhí)行 CoreMark 的跑分結(jié)果是 3.97 CoreMark/MHz,該數(shù)值達(dá)到了理論極限值的 99%。因此,當(dāng)用戶在 Flash 中執(zhí)行程序的時(shí)候,依然可以獲得相較于 Cortex-M3 和 Cortex-M4 的理論極限值約 20% 的性能提升。
同樣因?yàn)?STAR-MC1 出色的內(nèi)存子系統(tǒng)設(shè)計(jì),在 Flash 執(zhí)行代碼的前提下,搭載 STAR-MC1 并開啟了內(nèi)存子系統(tǒng)的 MM32F5 系列相較于搭載了 Cortex-M3 或 Cortex-M4 的芯片而言,能夠更接近其理論極限值。因此,如果以 Flash 中實(shí)際運(yùn)行的結(jié)果來對(duì)比 STAR-MC1 和市面上的 Cortex-M3 和 Cortex-M4 芯片,STAR-MC1 將帶來 30%~50% 的性能提升。
C代碼兼容M3和M4
綜合以上 “星辰” STAR-MC1 處理器的介紹,可以說 STAR-MC1 是 Cortex-M3 和 Cortex-M4 的理想升級(jí)選擇。
那么,假如用戶從上述 Armv7-M 處理器切換到 Armv8-M 架構(gòu)的 STAR-MC1 處理器時(shí),是否很難移植呢?當(dāng)然不是!
STAR-MC1 和 Cortex-M3 和 Cortex-M4 都是基于 Arm指令集架構(gòu)的處理器,因此,其兼容性還是很高的,但由于底層指令集架構(gòu)由 Armv7-M 過渡到了 Armv8-M ,因此,其無法做到完全的二進(jìn)制兼容,但STAR-MC1 實(shí)現(xiàn)了從 Cortex-M3 和 Cortex-M4 移植時(shí)的 C 代碼兼容。因此,假如用戶的代碼是基于 C 語言編寫,則完全不用擔(dān)心兼容性。
完善的生態(tài)支持
很多用戶會(huì)咨詢 STAR-MC1 的工具支持狀況、是否支持 KEIL等問題。這個(gè)大家也可以完全放心,STAR-MC1 作為一款通用的嵌入式處理器,其目前已經(jīng)獲得了非常完整的生態(tài)體系支持。
下圖列舉了 STAR-MC1 截止目前的生態(tài)工具支持情況,可以看到,STAR-MC1 在工具鏈、編譯器、操作系統(tǒng)和仿真器方面都獲得了主流工具的支持:
工具鏈
在工具鏈方面,STAR-MC1 已經(jīng)獲得了 Arm DS、Keil、IAR、SEGGER Embedded Studio、Lauterbach TRACE32 等主流 IDE 的支持。
編譯器
在編譯器方面,STAR-MC1 已經(jīng)獲得了 GCC、Arm Compiler、IAR Compiler、SEGGER Compiler 等主流編譯器的支持。
仿真器
在仿真器方面,STAR-MC1 已經(jīng)獲得了 ULINKPRO、ULINK2、DSTEAM、SEGGER J-Link Base/Plus、J-Link Ultra/Pro 的支持。
操作系統(tǒng)
在操作系統(tǒng)方面,STAR-MC1 更是已經(jīng)獲得了 MbedOS、freeRTOS、Zephyr、OpenHarmony 的支持。
小結(jié)
“星辰”STAR-MC1 處理器是一款 Armv8-M 架構(gòu)的高性能嵌入式處理器,由安謀科技本土團(tuán)隊(duì)打造,集成了出色的內(nèi)存子系統(tǒng),并獲得了完整的生態(tài)支持,是升級(jí) Cortex-M3 和 Cortex-M4 內(nèi)核的理想選擇!
未完待續(xù)!本文是 MM32F5 漫談系列的開篇,后續(xù)將為大家持續(xù)更新,旨在分享 MM32F5 系列中所包含的那些有趣的技術(shù),敬請(qǐng)期待!
-
處理器
+關(guān)注
關(guān)注
68文章
19032瀏覽量
228448 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6603瀏覽量
123021 -
代碼
+關(guān)注
關(guān)注
30文章
4694瀏覽量
68078 -
靈動(dòng)微電子
+關(guān)注
關(guān)注
7文章
118瀏覽量
19610 -
靈動(dòng)微
+關(guān)注
關(guān)注
3文章
174瀏覽量
22632 -
MM32
+關(guān)注
關(guān)注
1文章
106瀏覽量
721
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論