I-Cache和D-cache


兩者的區別:
一方面是cache的行為。Icache大多都是順序取指,碰到分支指令也會跳轉,而Dcache訪問的模式變化比較大.也就是前者所說的pattern的問題.指令只有讀和refill沒有寫,而數據有讀也有寫.最重要的是馮氏的結構是指令和數據分離.I和D在一起只有相互干擾.
另一個方面就是,物理設計上考慮:
一個union的cache,同時需要數據和指令的訪問,端口上是很難實現的。
所以一般在流水線的主干上,都是采用分離的icache和dcache.
非主干的L2 cache,從容量的角度考慮采用union的方式.

出於對簡化設計的考慮,也為了提高系統的性能,本次設計采用了指令Cache(以下簡稱為ICache)和數據Cache (以下簡稱為DCache)分開的方式。在ICache中存儲有微處理器需要的指令,在微處理器的取指階段,通過程序計數器PC提供給ICache的地址,微處理器可以獲取需要的指令。而DCache則是作為一個數據的存儲,並提供對於Load/Store指令所要操作地址的數據,它地址則來自於ALU運算的結果。

ICache和微處理器的接口以及ICache和L2 ICache的接口都是單向的。DCache和微處理器的接口以及DCache和L2 Cache的接口是雙向的。這樣處理的原因在於ICache存儲的是指令,不需要更改所存儲的數據的值。而DCache中存儲的是數據,其值會根據指令操作的不同而改變。比如:在運行Store指令的時候會對DCache中相應地址進行寫入數據的操作。


免責聲明!

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



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