亚洲av综合在线观看|中文字幕乱码亚洲无线码|蜜桃AV鲁一鲁一鲁一鲁樱花影院|中文字幕2019年最好看电视剧|精品人妻av一区|91精品国产青草综合久久不卡|亚洲国产一二三精品无码|无码成人一区二区三区入厕偷拍

知道解決
對(duì)ARM緊致內(nèi)存TCM的理解
瀏覽214次2017-07-07 15:19

ARM的ram包括靜態(tài)ram,動(dòng)態(tài)ram, TCM---緊耦合內(nèi)存(TCM: Tightly Coup ledMemories)。

TCM是一個(gè)固定大小的RAM,緊密地耦合至處理器內(nèi)核,提供與cache相當(dāng)?shù)男阅?,相比于cache的優(yōu)點(diǎn)是,程序代碼可以精確地控制什么函數(shù)或代碼放在哪兒(RAM里)。當(dāng)然TCM永遠(yuǎn)不會(huì)被踢出主存儲(chǔ)器,因此,他會(huì)有一個(gè)被用戶(hù)預(yù)設(shè)的性能,而不是象cache那樣是統(tǒng)計(jì)特性的性能提高。

TCM對(duì)于以下幾種情況的代碼是非常有用、也是需要的:可預(yù)見(jiàn)的實(shí)時(shí)處理(中斷處理)、時(shí)間可預(yù)見(jiàn)(加密算法)、避免cache分析(加密算法)、或者只是要求高性能的代碼(編解碼功能)。隨著cache大小的增加以及總線性能的規(guī)模,TCM將會(huì)變得越來(lái)越不重要,但是他提供了一個(gè)讓你權(quán)衡的機(jī)會(huì)

那么,哪一個(gè)更好呢?他取決于你的應(yīng)用。Cache是一個(gè)通用目的的加速器,他會(huì)加速你的所有代碼,而不依賴(lài)于存儲(chǔ)方式。TCM只會(huì)加速你有意放入TCM的代碼,其余的其他代碼只能通過(guò)cache加速。Cache是一個(gè)通用目的解決方案,TCM在某些特殊情況下是非常有用的。假如你不認(rèn)為需要 TCM的話(huà),那么你可能就不需要了,轉(zhuǎn)而加大你的cache,從而加速運(yùn)行于內(nèi)核上的所有軟件代碼.

緊致內(nèi)存是指片上快速存儲(chǔ)區(qū),與片上緩存具有同等的性能,但因?yàn)槌绦蚩赏耆刂凭o致內(nèi)存,因而比統(tǒng)計(jì)復(fù)用的緩存有更好的可預(yù)測(cè)性。這是ARM5TE引入的特性,目的是通過(guò)這一快速的存儲(chǔ)區(qū),一方面提高某些關(guān)鍵代碼(如中斷處理函數(shù))的性能,另方面使存儲(chǔ)訪問(wèn)延遲保持一致,這是實(shí)時(shí)性應(yīng)用所要求的。ARM6對(duì)TCM操作做了進(jìn)一步的規(guī)范。

TCM的應(yīng)用領(lǐng)域:可預(yù)測(cè)的實(shí)時(shí)處理(中斷處理)、避免緩存分析(加密算法)、或單純的性能提高(處理器側(cè)編解碼)等。

如同緩存的哈佛結(jié)構(gòu),指令TCM和數(shù)據(jù)TCM是分開(kāi)的。TCM有兩種使用方式:作為快緩存使用,和作為本地內(nèi)存使用。

本地內(nèi)存

這時(shí),TCM被用作更快速的內(nèi)存,如同一般的RAM。因?yàn)橹噶疃斡袝r(shí)也是數(shù)據(jù)訪問(wèn)的對(duì)象,指令TCM實(shí)際上是指令數(shù)據(jù)一體化TCM。對(duì)TCM寫(xiě)操作后和后續(xù)對(duì)此寫(xiě)操作的依賴(lài)指令之間必須跟一個(gè)阻塞操作。

快緩存(smartcache)

TCM可以配置成當(dāng)作外部RAM的緩存使用,對(duì)應(yīng)的外部RAM也要設(shè)置可緩存標(biāo)志。如果被緩存的外部RAM可以由多處理器共享,那么TCM是否與共享數(shù)據(jù)保持一致并沒(méi)有規(guī)定,而由具體實(shí)現(xiàn)廠家決定。

TCM與緩存的內(nèi)容不會(huì)自動(dòng)保持一致,這意味著TCM映射到的內(nèi)存區(qū)域必須是不緩存的區(qū)域。如果一個(gè)地址同時(shí)落在緩存和TCM內(nèi),那么訪問(wèn)這一地址的結(jié)果是不能預(yù)測(cè)的。另一個(gè)限制是各個(gè)TCM必須要配置成不相交的。

TCM的配置

通過(guò)CP15的0、1、9號(hào)寄存器進(jìn)行:

0號(hào)寄存器

讀CP15的0號(hào)寄存器,opcode2為2:

MRC p15, 0, Rd, C0, C0, 2

返回TCM狀態(tài)寄存器的內(nèi)容,其中,16-18位代表數(shù)據(jù)TCM個(gè)數(shù),0-3代表指令TCM個(gè)數(shù)。

1號(hào)寄存器

ARM6之前,1號(hào)寄存器的16位和18位用于使能數(shù)據(jù)TCM和指令TCM(ARM946,ARM966),ARM6因?yàn)榭梢允褂?號(hào)寄存器控制每一塊TCM的使能狀態(tài),所以1號(hào)寄存器的這兩個(gè)位就過(guò)時(shí)了,應(yīng)該置1。

9號(hào)寄存器

每個(gè)TCM都有一個(gè)TCM區(qū)域寄存器,設(shè)置這個(gè)寄存器就可以設(shè)置TCM的基址和大小。在設(shè)置TCM區(qū)域寄存器前,需要設(shè)置TCM選擇寄存器。

下面是訪問(wèn)這些相關(guān)寄存器的指令:

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區(qū)域寄存器的結(jié)構(gòu):

base Address (Physical Address)[31-12] SBZ/UNP[11-7] Size[6-2] SC[1] En[0]

其中:

En位是使能位,置1時(shí)使能此TCM;

SC位置位表示此TCM被用作快緩存(smartcache),清零表示本地內(nèi)存;

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區(qū)域寄存器配置出來(lái)的各個(gè)TCM塊不能相交,否則后果不可預(yù)測(cè)

右側(cè)廣告
關(guān)于我們 | 廣告服務(wù) | 會(huì)員服務(wù) | 隱私申明 | 友情鏈接 | 聯(lián)系我們 | 法律顧問(wèn) | 網(wǎng)站地圖 | 百方網(wǎng)信用評(píng)價(jià)制度 (c)2008-2025 BYF All Rights Reserved
網(wǎng)絡(luò)標(biāo)識(shí)
可信網(wǎng)站識(shí)