資料介紹
ARM的ram包括靜態ram,動態ram, TCM---緊耦合內存(TCM: Tightly Coup ledMemories)。
TCM是一個固定大小的RAM,緊密地耦合至處理器內核,提供與cache相當的性能,相比于cache的優點是,程序代碼可以精確地控制什么函數或代碼放在哪兒(RAM里)。當然TCM永遠不會被踢出主存儲器,因此,他會有一個被用戶預設的性能,而不是象cache那樣是統計特性的性能提高。
TCM對于以下幾種情況的代碼是非常有用、也是需要的:可預見的實時處理(中斷處理)、時間可預見(加密算法)、避免cache分析(加密算法)、或者只是要求高性能的代碼(編解碼功能)。隨著cache大小的增加以及總線性能的規模,TCM將會變得越來越不重要,但是他提供了一個讓你權衡的機會
那么,哪一個更好呢?他取決于你的應用。Cache是一個通用目的的加速器,他會加速你的所有代碼,而不依賴于存儲方式。TCM只會加速你有意放入TCM的代碼,其余的其他代碼只能通過cache加速。Cache是一個通用目的解決方案,TCM在某些特殊情況下是非常有用的。假如你不認為需要 TCM的話,那么你可能就不需要了,轉而加大你的cache,從而加速運行于內核上的所有軟件代碼.
緊致內存是指片上快速存儲區,與片上緩存具有同等的性能,但因為程序可完全控制緊致內存,因而比統計復用的緩存有更好的可預測性。這是ARM5TE引入的特性,目的是通過這一快速的存儲區,一方面提高某些關鍵代碼(如中斷處理函數)的性能,另方面使存儲訪問延遲保持一致,這是實時性應用所要求的。ARM6對TCM操作做了進一步的規范。
TCM的應用領域:可預測的實時處理(中斷處理)、避免緩存分析(加密算法)、或單純的性能提高(處理器側編解碼)等。
如同緩存的哈佛結構,指令TCM和數據TCM是分開的。TCM有兩種使用方式:作為快緩存使用,和作為本地內存使用。
本地內存
這時,TCM被用作更快速的內存,如同一般的RAM。因為指令段有時也是數據訪問的對象,指令TCM實際上是指令數據一體化TCM。對TCM寫操作后和后續對此寫操作的依賴指令之間必須跟一個阻塞操作。
快緩存(smartcache)
TCM可以配置成當作外部RAM的緩存使用,對應的外部RAM也要設置可緩存標志。如果被緩存的外部RAM可以由多處理器共享,那么TCM是否與共享數據保持一致并沒有規定,而由具體實現廠家決定。
TCM與緩存的內容不會自動保持一致,這意味著TCM映射到的內存區域必須是不緩存的區域。如果一個地址同時落在緩存和TCM內,那么訪問這一地址的結果是不能預測的。另一個限制是各個TCM必須要配置成不相交的。
TCM的配置
通過CP15的0、1、9號寄存器進行:
0號寄存器
讀CP15的0號寄存器,opcode2為2:
MRC p15, 0, Rd, C0, C0, 2
返回TCM狀態寄存器的內容,其中,16-18位代表數據TCM個數,0-3代表指令TCM個數。
1號寄存器
ARM6之前,1號寄存器的16位和18位用于使能數據TCM和指令TCM(ARM946,ARM966),ARM6因為可以使用9號寄存器控制每一塊TCM的使能狀態,所以1號寄存器的這兩個位就過時了,應該置1。
9號寄存器
每個TCM都有一個TCM區域寄存器,設置這個寄存器就可以設置TCM的基址和大小。在設置TCM區域寄存器前,需要設置TCM選擇寄存器。
下面是訪問這些相關寄存器的指令:
ARM Instruction TCM Region Register
MRC/MCR P15, 0, Rd, C9, C1, 0 Data TCM Region Register
MRC/MCR P15, 0, Rd, C9, C1, 1 Instruction/Unified TCM Region Register
MRC/MCR P15, 0, Rd, C9, C2, 0 TCM Selection Register
TCM區域寄存器的結構:
Base Address (Physical Address)[31-12] SBZ/UNP[11-7] Size[6-2] SC[1] En[0]
其中:
En位是使能位,置1時使能此TCM;
SC位置位表示此TCM被用作快緩存(smartcache),清零表示本地內存;
Size字段是只讀的,含義如下:
Size Memory Size Memory
filed size field size
0b00000 0K 0b01101 4M
0b00011 4K 0b01110 8M
0b00100 8K 0b01111 16M
0b00101 16K 0b10000 32M
0b00110 32K 0b10001 64M
0b00111 64K 0b10010 128M
0b01000 128K 0b10011 256M
0b01001 256K 0b10100 512M
0b01010 512K 0b10101 1G
0b01011 1M 0b10110 2G
0b01100 2M 0b10111 4G
注意TCM區域寄存器配置出來的各個TCM塊不能相交,否則后果不可預測
(mbbeetchina)
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- ARM筆記:內核物理內存映射區的虛擬內存資料下載
- CPU是怎樣訪問內存的?資料下載
- 技術原理解讀:小波變換資料下載
- 單片機音樂程序的設計原理解析資料下載
- 用電容,來理解電感資料下載
- 差分線的那些概念該如何理解資料下載
- PCB 指南:快速理解高速layout設計資料下載
- 單片機=CPU、內存、外圍功能...如何理解資料下載
- 理解堆和棧的區別(STM32)資料下載
- 磁滯損耗如何理解呢?資料下載
- 純干貨,PSI 原理解析與應用資料下載
- 如何讓ARM代碼執行速度更快?資料下載
- 理解廣義的EEPROM和Flash資料下載
- 基于ARM的伺服轉臺控制系統設計論文資料下載 3次下載
- 改進的高選擇壓力緊致遺傳算法
- 內存共享原理解析 980次閱讀
- 深入理解Linux RCU:從硬件說起之內存屏障 671次閱讀
- 虛擬內存的基本概念 1296次閱讀
- C語言內存問題如何解決 366次閱讀
- ARM SMMU Data structures概述 873次閱讀
- 圖騰柱TCM控制方式的特性 2244次閱讀
- 簡化TCM的控制 2061次閱讀
- 一文搞懂物理內存組織的體系結構與內存模型 2126次閱讀
- 如何使用TCM實現逆變器的ZVS工作 4365次閱讀
- 內存就是插在或固化在主板上的內存條嗎?程序空間還有什么理解? 1.4w次閱讀
- 程序員對內存的清晰理解 3952次閱讀
- 如何理解ARM異常、中斷和向量表 4168次閱讀
- 一文解析STM32內存管理和堆棧的認知與理解 1.7w次閱讀
- 基于ARM處理器的高效異常處理解決方案 1286次閱讀
- ARM緊致內存TCM的解釋 7855次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多