91视频免费?看_蜜芽MY188精品TV在线观看_国产免费无遮挡在线观看视频_深夜国产_亚洲精品欧洲精品_欧美黑人粗暴多交

微軟公司宣布不再支持你正在使用的 IE瀏覽器,這會嚴重影響瀏覽網頁,請使用微軟最新的Edge瀏覽器
廠商專區
產品/技術
應用分類

你知道嗎? ARM當中的第三種內存方式

2016-06-16 09:43 來源:電源網綜合 編輯:鈴鐺

在學習ARM的過程中,相信大家都接觸過RAM和動態RAM。但是對于ARM的來說,還有第三種內存形式,那就是TCM緊歐合內存。TCM能夠為ARM提供強力的支持,起到與cache相同的作用。但是TCM卻擁有cache所不具備的優點,那就是對于程序代碼的控制函數的精確擺放。在本文中,小編將為大家介紹TCM的相關知識。

TCM是一個固定大小的RAM,緊密地耦合至處理器內核,提供與cache相當的性能,相比于cache的優點是,程序代碼可以精確地控制什么函數或代碼放在哪兒(RAM里)。當然TCM永遠不會被踢出主存儲器,因此,他會有一個被用戶預設的性能,而不是像cache那樣是統計特性的性能提高。

TCM對于以下幾種情況的代碼是非常有用、也是需要的:可預見的實時處理(中斷處理)、時間可預見(加密算法)、避免cache分析(加密算法)、或者只是要求高性能的代碼(編解碼功能)。隨著cache大小的增加以及總線性能的規模,TCM將會變得越來越不重要,但是他為設計者提供了一個權衡的機會。

那么應該在哪種情況中使用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;

這里需要大家注意的是,ARM內存當中的TCM區域寄存器配置得出的多個TCM模塊是不能相交的。如果出現相交的情況則有可能發生不受開發者控制的情況出現。

標簽: ARM ARM內存

聲明:本內容為作者獨立觀點,不代表電源網。本網站原創內容,如需轉載,請注明出處;本網站轉載的內容(文章、圖片、視頻)等資料版權歸原作者所有。如我們采用了您不宜公開的文章或圖片,未能及時和您確認,避免給雙方造成不必要的經濟損失,請電郵聯系我們,以便迅速采取適當處理措施;歡迎投稿,郵箱∶editor@netbroad.com。

相關閱讀

微信關注
技術專題 更多>>
技術專題之EMC
技術專題之PCB

頭條推薦

電子行業原創技術內容推薦
客服熱線
服務時間:周一至周五9:00-18:00
微信關注
獲取一手干貨分享
免費技術研討會
editor@netbroad.com
400-003-2006
主站蜘蛛池模板: 乳山市| 水富县| 东阳市| 淳安县| 阿坝县| 栾城县| 辽宁省| 孟连| 靖安县| 建平县| 元谋县| 锡林浩特市| 嘉义县| 浦东新区| 黔南| 宾川县| 呈贡县| 宜良县| 安溪县| 读书| 黎川县| 彝良县| 庆城县| 沾化县| 内丘县| 义乌市| 龙海市| 武宁县| 萍乡市| 湖南省| 云浮市| 都昌县| 辽宁省| 思茅市| 防城港市| 苍梧县| 准格尔旗| 全州县| 旬阳县| 于都县| 桂东县|