ARM存儲器之:高速緩沖存儲器Cache
(2)寄存器c7
CP15中的寄存器c7主要用于控制Cache和寫(xiě)緩存。
注意 | c7有時(shí)也用于其他相似的功能,如果系統中存在預測緩存(prefetchbuffers)和分支目標(branchtarget)Cache,c7也將負責對它們進(jìn)行控制。 |
c7是一個(gè)只寫(xiě)存儲器,可以使用協(xié)處理器指令MCR對其進(jìn)行操作。如果程序中包含讀c7的操作,那么指令的結果不可預知。
使用MCR指令寫(xiě)該寄存器的命令格式如下所示。
MCRP15,0,Rd>,c7>,CRm>,opcode2>
其中,CRm和opcode2的不同組合,決定指令執行的不同操作。具體組合與操作的對應關(guān)系見(jiàn)表15.15。
表15.15 CRm與opcode2不同組合與操作的應用關(guān)系
CRm | Opcode2 | 含義 | 數據 |
c0 | 4 | 等待中斷 | 0(SBZ,shouldbezero) |
c5 | 0 | 使整個(gè)指令Cache無(wú)效 | 0 |
c5 | 1 | 使指令Cache中某行無(wú)效 | 虛擬地址 |
c5 | 2 | 使指令Cache中某行無(wú)效 | 組號/索引 |
c5 | 4 | 清空預取緩存區 | 0 |
c5 | 6 | 清空整個(gè)分支目標Cache | 0 |
c5 | 7 | 清空分支目標Cache中的某入口項 | 生產(chǎn)商定義 |
c6 | 0 | 使整個(gè)數據Cache無(wú)效 | 0 |
續表
CRm | Opcode2 | 含義 | 數據 |
c6 | 1 | 使數據Cache中的某行無(wú)效 | 虛擬地址 |
c6 | 2 | 使數據Cache中的某行無(wú)效 | 組號/索引 |
c7 | 0 | 使整個(gè)統一Cache無(wú)效 哈佛結構中,使整個(gè)數據Cache和指令Cache無(wú)效 | 0 |
c7 | 1 | 使統一Cache中某行無(wú)效 | 虛擬地址 |
c7 | 2 | 使統一Cache中某行無(wú)效 | 組號/索引 |
c8 | 2 | 等待中斷 | 0 |
c10 | 1 | 清理數據Cache行 | 虛擬地址 |
c10 | 2 | 清理數據Cache行 | 組號/索引 |
c10 | 4 | 清除寫(xiě)緩存區 | 0 |
c11 | 1 | 清理統一Cache行 | 虛擬地址 |
c11 | 2 | 清理統一Cache行 | 組號/索引 |
c13 | 1 | 預取指令Cache中的某行 | 虛擬地址 |
c14 | 1 | 清理并使數據Cache中的某行無(wú)效 | 虛擬地址 |
c14 | 2 | 清理并使數據Cache中的某行無(wú)效 | 組號/索引 |
c15 | 1 | 清理并使統一Cache中的某行無(wú)效 | 虛擬地址 |
c15 | 2 | 清理并使統一Cache中的某行無(wú)效 | 組號/索引 |
(3)寄存器c9
將Cache進(jìn)入存儲系統的注意目的是要提高系統的平均訪(fǎng)問(wèn)速度。但Cache是一把雙刃劍,在某些情況下,可能使系統的性能更遭。下面列出了3種使Cache性能明顯下降的原因。
①Cache訪(fǎng)問(wèn)未命中,處理器轉向主存尋址數據,這期間的延時(shí)對系統性能影響很大。
②在回寫(xiě)型Cache中,如果Cache中的數據所在地址被存儲管理單元重新定位(即Cache中存儲的為虛地址數據),那么數據回寫(xiě)的操作延時(shí)很大。
③當處理器需要一個(gè)字節數據,而此數據恰好不在Cache中,那么Cache的替換策略就會(huì )將整個(gè)Cache行換進(jìn),增加了系統不必要的開(kāi)銷(xiāo)。
存儲器相關(guān)文章:存儲器原理
評論