MMU、Icache、Dcache


http://blog.csdn.net/iodoo/article/details/8954014

i-cache(instruction cache)是指令高速緩沖存儲器。 Cache存儲體:存放由主存調入的指令與數據塊.

dcache(data cache):數據高速緩沖存儲器

CACHE:Cache是一種特殊的存儲器,它由Cache 存儲部件和Cache控制部件組成。Cache 存儲部件一般采用與CPU同類型的半導體存儲器件,存取速度比內存快幾倍甚至十幾倍。而Cache 控制器部件包括主存地址寄存器、Cache 地址寄存器,主存—Cache地址變換部件及替換控制部件等。

MMU 負責地址映射,將CPU中虛擬地址VA映射到物理地址PA,CPU 啟動時,默認是不開啟MMU的,因此,需要有一段代碼來開啟MMU。

這段代碼有個條件是,所處的地址,虛擬地址必須等於物理地址。否則,映射之后,PC 中的地址會當做虛擬地址處理,尋址就會讀取到其他不確定地方的數據。


與在匯編的層面來看,地址就是存儲地址,不會當做數據;而C語言中的變量地址,則會當做數據;這一點編譯器會自動處理而不用關心。


單核處理器,使用Dcache 只存在一個問題,即與 DMA 會數據不一致的問題。

CPU 讀取 RAM 數據,如果 Dcache 命中,則讀取 Dcache 中的值,未命中則讀取 RAM 中的值。寫數據時,有兩種方式: write through 和 write back。

write through 方式:CPU 將數據同時寫回到 Dcache 和 RAM 中,這個過程與不開 Dcache 消耗的時間一樣。

write back 方式: CPU 將數據寫到 Dcache 中,並將該數值標志為 dirty, 當 Dcache 釋放該數據時,將值寫回到 RAM 中。這個過程是比較快捷的。


DMA 通常負責外設與 RAM 的通信,是不經過 CPU 的。

當 DMA 修改 RAM 中的數據時,CPU 是不知道的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM