找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4376|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

STM32F7有別于其它相同內(nèi)核的MCU的幾個特性

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:98618 發(fā)表于 2016-6-4 17:49 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
    對于微處理界第一顆基于ARM? Cortex?-M7內(nèi)核的高性能微控制器STM32F7系列,相信很多人對它不陌生了。比如STM32F7系列微控制器采用90nm工藝,工作頻率高達(dá)216MHz,采用6級超標(biāo)量流水線,帶浮點單元,測試分?jǐn)?shù)高達(dá)1000CoreMarks,性能提升的同時保持高能效,與STM32F4系列管腳高度兼容等等。

       一般來講,基于ARM? Cortex?-M7內(nèi)核的微控制器大多具有類似的處理器配置選項。通常包括:
一個64AXI系統(tǒng)總線接口
一個指令和數(shù)據(jù)高速緩存
64位指令緊耦合存儲器(ITCM
32位數(shù)據(jù)緊耦合存儲器(DTCM

         不過,本文從應(yīng)用開發(fā)的層面?zhèn)戎亟榻BSTM32F7系列有別于其它使用Cortex-M7內(nèi)核的MCU的幾個特性。
         首先,第一個重要區(qū)別在于STM32F7器件同時具有ITCM接口和AXI接口連接到片內(nèi)閃存,如圖1所示。




圖1:基于ARMCortex-M7內(nèi)核的系統(tǒng)級芯片的框圖

    ITCMAXI雙接口的存在使得執(zhí)行代碼具備更大的靈活性。此外,STM32F7還有一個稱為自適應(yīng)實時加速器(ARTAccelerator?)的內(nèi)置閃存加速器,從而實現(xiàn)閃存零等待執(zhí)行。使用TCM接口和ART加速器能能實現(xiàn)與帶緩存AXI接口相似的性能。同時用戶代碼也不會有高速緩存失效或高速緩存維護(hù)操作的麻煩。

    利用ARTAccelerator加速引擎和高達(dá)16kBL1緩存,STM32F7 MCU可實現(xiàn)ARM Cortex-M7的最佳性能。不管是從片內(nèi)閃存還是外部存儲器執(zhí)行代碼,在216MHz下均可達(dá)到1082 CoreMark/462 DMIPS

         第二個重大區(qū)別在于內(nèi)部SRAM分布在幾個模塊中,以降低動態(tài)功耗,并允許從各個總線主機同時訪問不同的SRAM模塊,以優(yōu)化帶寬和延遲。
         此架構(gòu)的一個典型應(yīng)用實例就是人機界面,在人機界面中,音頻和圖形數(shù)據(jù)與系統(tǒng)RAM之間的傳輸必須同時進(jìn)行。

         第三個就是它的高級浮點單元。STM32F7系列器件具有一個高性能的單或雙精度浮點單元(FPU),支持所有ARM單或雙數(shù)據(jù)處理指令和數(shù)據(jù)類型。FPU在需要浮點數(shù)學(xué)精度的許多應(yīng)用中提供了優(yōu)勢,包括環(huán)路控制、音頻處理、音頻解碼和數(shù)字濾波等。
當(dāng)然它還有個額外優(yōu)勢,那就是將某些功能的執(zhí)行或處理從CPU分流到FPU,使CPU用于其他任務(wù)。它支持雙精度,因此更易于使用雙精度浮點指令的基于PC的數(shù)學(xué)軟件。

         第四,STM32F7MCU最有特色的設(shè)計之一是它們的智能系統(tǒng)架構(gòu),它使用兩個子系統(tǒng),如圖2所示:

2STM32F7微控制器的總線矩陣

        AXI-to-multi-AHB橋?qū)?/font>AXI4協(xié)議轉(zhuǎn)換成AHB-Lite協(xié)議
         multi-AHB總線矩陣管理主機之間的訪問仲
         該仲裁使用循環(huán)調(diào)度算法保障主機對從機的訪問,即使多個高速外設(shè)同時工作,也能實現(xiàn)同時訪問并高效運行。

         最后,不得不提它的L1高速緩存。STM32F7嵌入了指令和數(shù)據(jù)高速緩存,當(dāng)從片上或片外存儲器讀取代碼和數(shù)據(jù)時可彌補插入等待的時間,從而提高性能。當(dāng)然,如果出現(xiàn)高速緩存失效和高速緩存行填充,此時讀取高速緩存將無法保證數(shù)據(jù)的確定性。
         
         由于可緩存存儲器不僅可以被CPU訪問,也可以被其他主機訪問(如DM),因此需要軟件維護(hù)操作。比如,訪問物理存儲器時,主機可能會讀出過期的數(shù)據(jù),而更新的數(shù)據(jù)在CPU高速緩存中已經(jīng)有效可用了。

        為了避免這個問題,開發(fā)者編寫用戶代碼時可以采取以下措施:
    當(dāng)CPU以外的主機要對可緩存存儲器進(jìn)行訪問操作之前,建議先進(jìn)行高速緩存清除操作。這是為了確保CPU的最新數(shù)據(jù)被寫回到物理存儲器。
       當(dāng)CPU以外的主機對可緩存的存儲器更新數(shù)據(jù)后,在對該位置進(jìn)行讀操作之前,CPU應(yīng)該使高速緩存失效。這是為了確保從物理存儲器的直接讀取。
    有時可以考慮無高速緩存操作。當(dāng)一個可被緩存的存儲器被其它主機頻繁訪問時,可以配置該存儲器的不可緩存屬性從而防止數(shù)據(jù)的不一致問題發(fā)生。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表