一TCM是什么?
隨著單片機(MCU)在各種應用中的使用越來越廣泛,對其性能和響應速度的要求也越來越高。為了滿足這種需求,MCU的主時鐘頻率往往會不斷提高,以提升系統(tǒng)的處理能力和性能。然而,隨著主時鐘頻率的增加,訪問外部存儲器(如閃存、RAM)所需的訪問時間也要求相應減少,這可能會成為系統(tǒng)性能的瓶頸之一。在這種情況下,使用TCM(Tightly-Coupled Memory)成為了一種解決方案。
Tightly Coupled Memory(TCM)緊耦合內(nèi)存是通過專用的接口直接連接到處理器的存儲器區(qū)域,它提供單周期訪問,避免其他存儲器可能存在的仲裁延時和延遲。
RA8x1 Cortex-M85內(nèi)核有2種TCM類型:Instruction TCM (ITCM) 指令TCM和Data TCM (DTCM) 數(shù)據(jù)TCM。
RA8x1有64KB ITCM和64KB DTCM。
ECC保護(代碼生成和糾正邏輯)。
RA8x1支持ITCM和DTCM ECC功能,可以通過OFS2.INITECCEN設置來啟用和禁用。
RA8x1 CPU方框圖
TCM具有以下優(yōu)點:
低延遲訪問:TCM與處理器核心之間的直接連接消除了訪問延遲,使得數(shù)據(jù)和指令能夠更快速地被處理器訪問,從而提高了系統(tǒng)的響應速度。
高帶寬:TCM通常具有更高的帶寬,可以支持處理器對數(shù)據(jù)和指令的高速讀寫,提升了系統(tǒng)的整體性能。
節(jié)省功耗:由于TCM與處理器核心直接連接,不需要通過總線進行數(shù)據(jù)傳輸,因此可以降低功耗。此外,由于訪問延遲較低,處理器可以更快地完成任務并進入休眠模式,進一步降低功耗。
提高實時性能:對于需要實時響應的應用程序,TCM的低延遲和高帶寬特性使得處理器能夠更快地訪問關(guān)鍵數(shù)據(jù)和指令,從而提高了系統(tǒng)的實時性能。
增強安全性:TCM可以用于存儲敏感數(shù)據(jù)和關(guān)鍵代碼,通過與處理器核心的緊密耦合,可以降低數(shù)據(jù)泄露和惡意攻擊的風險,提高系統(tǒng)的安全性。
減少對外部存儲器的依賴:TCM可以用于存儲頻繁訪問的數(shù)據(jù)和指令,減少了對外部存儲器的訪問次數(shù),降低了總體的訪問延遲和功耗。這對于一些資源有限的嵌入式系統(tǒng)尤為重要。
增強可靠性:TCM的直接連接和高速訪問特性可以提高系統(tǒng)的可靠性,減少因外部存儲器或總線故障而導致的系統(tǒng)性能下降或故障。
因此,TCM適用于許多不同的應用和場景,特別是對于需要高性能、低延遲和實時響應的應用,其優(yōu)勢更加突出。以下是一些適合使用TCM的應用和場景:
實時控制系統(tǒng):對于需要快速響應的實時控制系統(tǒng),如工業(yè)機器人、航空航天控制系統(tǒng)、醫(yī)療設備等,TCM可以提供所需的低延遲和高帶寬,確保系統(tǒng)能夠及時、準確地響應各種控制指令。
信號處理應用:TCM對于需要大量數(shù)據(jù)處理和信號處理的應用非常適用,例如無線通信系統(tǒng)、雷達系統(tǒng)、圖像處理系統(tǒng)等。通過將頻繁訪問的數(shù)據(jù)和指令存儲在TCM中,可以提高系統(tǒng)的處理速度和效率。
物聯(lián)網(wǎng)設備:隨著物聯(lián)網(wǎng)設備的普及,對于需要在資源有限的設備上實現(xiàn)高性能和實時響應的應用,TCM可以幫助提高系統(tǒng)的性能和能效,同時減少對外部存儲器和網(wǎng)絡帶寬的依賴。
高性能計算:在需要進行復雜計算和大規(guī)模數(shù)據(jù)處理的高性能計算應用中,TCM可以提供更快速和可靠的數(shù)據(jù)訪問,從而提高系統(tǒng)的計算性能和吞吐量。
二RA8x1系列MCU如何將通過FSP將代碼/數(shù)據(jù)放置到TCM中?
瑞薩電子靈活配置軟件包(FSP)是用于嵌入式系統(tǒng)設計的高質(zhì)量增強型軟件包,支持瑞薩電子RA產(chǎn)品家族ARM微控制器,提供用戶友好的界面且可靈活擴展,確保從入門級到高性能的整個RA微控制器的軟件兼容性。FSP包括高性能、低內(nèi)存占用的業(yè)界一流的HAL驅(qū)動程序。還包含集成了Azure RTOS和FreeRTOS的中間件協(xié)議棧,能夠簡化通信和安全等復雜模塊的實現(xiàn)。e2 studio IDE提供了對圖形化配置工具和智能代碼生成器的支持,從而使編程和調(diào)試變得更加輕松快捷。
瑞薩FSP鏈接腳本提供TCM內(nèi)存區(qū)域段定義
memory_region.ld中的內(nèi)存大小定義:
點擊可查看大圖
內(nèi)存區(qū)域定義:
點擊可查看大圖
如下原型定義可用于將用戶代碼/數(shù)據(jù)放置到TCM中。在啟動過程中,.itcm_data和.dtcm_data區(qū)域?qū)⑼ㄟ^閃存中存儲的初始化代碼進行數(shù)據(jù)初始化。.dtcm_bss區(qū)域已初始化為零。
點擊可查看大圖
FSP中的ITCM段定義:
點擊可查看大圖
FSP中的DTCM段定義:
點擊可查看大圖
三TCM例子分析
下圖是一個RA8x1 MCU實際使用TCM的例子,它使用了ITCM和DTCM。圖片中的右邊為RA8x1 MCU的系統(tǒng)地址空間。
點擊可查看大圖
具體分析過程為:
1紫色的代碼“uint16_t i;”全局變量,它運行的時候,分配的地址是在從0x2200_0000開始的On-chip SRAM中。
2紅色的代碼“BSP_PLACE_IN_SECTION(“.dtcm_data”)uint8x16_t rega_8, regb_8, regc_8, regd_8;”,全局變量,但是由于這些變量前面添加了BSP_PLACE_IN_SECTION(“.dtcm_data”),這表示將這些變量放置到DTCM中,它運行的時候,分配的地址是在從0x2000_0000開始的DTCM中。
3青色的代碼“void hal_entry(void)”,它是函數(shù),運行的時候,分配的地址是在從0x0200_0000開始的On-chip flash中。
4深綠色的代碼“void helium_test(void)”,它是函數(shù),但是由于這些變量前面添加了BSP_PLACE_IN_SECTION(“.itcm_data”),這意味著,該代碼運行的時候,分配的地址是從0x0000_0000開始的ITCM中。
下圖是上面描述的代碼在e2 studio中使用了LLVM工具鏈編譯并仿真運行的截圖,可以發(fā)現(xiàn)右邊表達式窗口中的i,rega_8, regb_8, regc_8, regd_8,helium_test,hal_entry這些代碼或者變量的地址和剛剛分析的結(jié)果是相符的。
點擊可查看大圖
需要技術(shù)支持?
如您在使用瑞薩MCU/MPU產(chǎn)品中有任何問題,進入瑞薩技術(shù)論壇尋找答案或獲取在線技術(shù)支持。
-
處理器
+關(guān)注
關(guān)注
68文章
19044瀏覽量
228489 -
單片機
+關(guān)注
關(guān)注
6026文章
44456瀏覽量
630999 -
mcu
+關(guān)注
關(guān)注
146文章
16804瀏覽量
349383 -
TCM
+關(guān)注
關(guān)注
0文章
31瀏覽量
12760
原文標題:RA8x1 TCM使用指南
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論