標(biāo)題:
STM32F7有別于其它相同內(nèi)核的MCU的幾個(gè)特性
[打印本頁]
作者:
taoran
時(shí)間:
2016-6-4 17:49
標(biāo)題:
STM32F7有別于其它相同內(nèi)核的MCU的幾個(gè)特性
對(duì)于微處理界第一顆基于
ARM? Cortex?-M7
內(nèi)核的高性能微控制器
STM32F7
系列,相信很多人對(duì)它不陌生了。比如
STM32F7
系列微控制器采用
90nm
工藝,工作頻率高達(dá)
216MHz
,采用
6
級(jí)超標(biāo)量流水線,帶浮點(diǎn)單元,測(cè)試分?jǐn)?shù)高達(dá)
1000CoreMarks
,性能提升的同時(shí)保持高能效,與
STM32F4
系列管腳高度兼容等等。
一般來講,基于
ARM? Cortex?-M7
內(nèi)核的微控制器大多具有類似的處理器配置選項(xiàng)。通常包括:
一個(gè)
64
位
AXI
系統(tǒng)總線接口
一個(gè)指令和數(shù)據(jù)高速緩存
64
位指令緊耦合存儲(chǔ)器(
ITCM
)
雙
32
位數(shù)據(jù)緊耦合存儲(chǔ)器(
DTCM
)
不過,本文從應(yīng)用開發(fā)的層面?zhèn)戎亟榻B
STM32F7
系列有別于其它使用
Cortex-M7
內(nèi)核的
MCU
的幾個(gè)特性。
首先,第一個(gè)重要區(qū)別在于
STM32F7
器件同時(shí)具有
ITCM
接口和
AXI
接口連接到片內(nèi)閃存,如圖
1
所示。
圖1:基于ARMCortex-M7內(nèi)核的系統(tǒng)級(jí)芯片的框圖
ITCM
和
AXI
雙接口的存在使得
執(zhí)行代碼具備更大的靈活性。此外,
STM32F7
還有一個(gè)稱為自適應(yīng)實(shí)時(shí)加速器(
ART
Accelerator
?)的內(nèi)置閃存加速器,從而實(shí)現(xiàn)閃存零等待執(zhí)行。使用
TCM
接口和
ART
加速器能能實(shí)現(xiàn)與帶緩存
AXI
接口相似的性能。同時(shí)用戶代碼也不會(huì)有高速緩存失效或高速緩存維護(hù)操作的麻煩。
利用
ARTAccelerator
加速引擎和高達(dá)
16kB
的
L1
緩存,
STM32F7 MCU
可實(shí)現(xiàn)
ARM Cortex-M7
的最佳性能。不管是從片內(nèi)閃存還是外部存儲(chǔ)器執(zhí)行代碼,在
216MHz
下均可達(dá)到
1082 CoreMark/462 DMIPS
。
第二個(gè)重大區(qū)別在于內(nèi)部
SRAM
分布在幾個(gè)模塊中,以降低動(dòng)態(tài)功耗,并允許從各個(gè)總線主機(jī)同時(shí)訪問不同的
SRAM
模塊,以優(yōu)化帶寬和延遲。
此架構(gòu)的一個(gè)典型應(yīng)用實(shí)例就是人機(jī)界面,在人機(jī)界面中,音頻和圖形數(shù)據(jù)與系統(tǒng)
RAM
之間的傳輸必須同時(shí)進(jìn)行。
第三個(gè)就是它的高級(jí)浮點(diǎn)單元。
STM32F7
系列器件具有一個(gè)高性能的單或雙精度浮點(diǎn)單元(
FPU
),支持所有
ARM
單或雙數(shù)據(jù)處理指令和數(shù)據(jù)類型。
FPU
在需要浮點(diǎn)數(shù)學(xué)精度的許多應(yīng)用中提供了優(yōu)勢(shì),包括環(huán)路控制、音頻處理、音頻解碼和數(shù)字濾波等。
當(dāng)然它還有個(gè)額外優(yōu)勢(shì),那就是將某些功能的執(zhí)行或處理從
CPU
分流到
FPU
,使
CPU
用于其他任務(wù)。它支持雙精度,因此更易于使用雙精度浮點(diǎn)指令的基于
PC
的數(shù)學(xué)軟件。
第四,STM32F7MCU最有特色的設(shè)計(jì)之一是它們的智能系統(tǒng)架構(gòu),它使用兩個(gè)子系統(tǒng),如圖2所示:
圖
2
:
STM32F7
微控制器的總線矩陣
AXI-to-multi-AHB
橋?qū)?/font>
AXI4
協(xié)議轉(zhuǎn)換成
AHB-
Lite
協(xié)議
multi-AHB
總線矩陣管理主機(jī)之間的訪問仲
裁
該仲裁使用循環(huán)調(diào)度算法保障主機(jī)對(duì)從機(jī)的訪問,即使多個(gè)高速外設(shè)同時(shí)工作,也能實(shí)現(xiàn)同時(shí)訪問并高效運(yùn)行。
最后,不得不提它的
L1
高速緩存。
STM32F7
嵌入了指令和數(shù)據(jù)高速緩存,當(dāng)從片上或片外存儲(chǔ)器讀取代碼和數(shù)據(jù)時(shí)可彌補(bǔ)插入等待的時(shí)間,從而提高性能。當(dāng)然,如果出現(xiàn)高速緩存失效和高速緩存行填充,此時(shí)讀取高速緩存將無法保證數(shù)據(jù)的確定性。
由于可緩存存儲(chǔ)器不僅可以被
CPU
訪問,也可以被其他主機(jī)訪問(如
DM
),因此需要軟件維護(hù)操作。比如,訪問物理存儲(chǔ)器時(shí),主機(jī)可能會(huì)讀出過期的數(shù)據(jù),而更新的數(shù)據(jù)在
CPU
高速緩存中已經(jīng)有效可用了。
為了避免這個(gè)問題,開發(fā)者編寫用戶代碼時(shí)可以采取以下措施:
當(dāng)
CPU
以外的主機(jī)要對(duì)可緩存存儲(chǔ)器進(jìn)行訪問操作之前,建議先進(jìn)行高速緩存清除操作。這是為了確保
CPU
的最新數(shù)據(jù)被寫回到物理存儲(chǔ)器。
當(dāng)
CPU
以外的主機(jī)對(duì)可緩存的存儲(chǔ)器更新數(shù)據(jù)后,在對(duì)該位置進(jìn)行讀操作之前,
CPU
應(yīng)該使高速緩存失效。這是為了確保從物理存儲(chǔ)器的直接讀取。
有時(shí)可以考慮無高速緩存操作。當(dāng)一個(gè)可被緩存的存儲(chǔ)器被其它主機(jī)頻繁訪問時(shí),可以配置該存儲(chǔ)器的不可緩存屬性從而防止數(shù)據(jù)的不一致問題發(fā)生。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1