前言
文档中有关于芯片的介绍,其中一部分是最高运行频率2GHz,32KB L1 I-cache和32KB L1 D-cache ,L2 cache 512K。
L1 Cache 表示一级缓存和L2 Cache 表示2级缓存是知道的,但是I-Cache和D-Cache就傻傻分不清了。
因此参考网上文章,摘抄部分内容于此。
正文
什么是CPU缓存
CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小的,但是交换速度却比内存要快得多。
CPU缓存的作用
解决CPU运算速度与内存读写速度不匹配的问题。
I-Cache和D-Cache的区别
- ICache中存储有微处理器需要的指令,在微处理器的取指阶段,通过程序计数器PC提供给ICache的地址,微处理器可以获取需要的指令。
- DCache则是作为一个数据的存储,并提供对于Load/Store指令所要操作地址的数据,它地址则来自于ALU运算的结果。
除了命令意义不同,具体从下面两个方面来回答
cache的行为
- I-cache大多都是顺序取指,碰到分支指令也会跳转;而D-cache访问的模式变化比较大。
- 指令只有读和refill,没有写;而数据有读也有写。
- 最重要的是冯氏的结构是指令和数据分离。I和D在一起只有相互干扰。
物理设计
一个union的主cache,同时需要数据和指令的访问,端口上是很难实现的。所以一般在流水线的主干上,都是采用分离的icache和dcache。
非主干的L2 cache,从容量的角度考虑采用union的方式。
参考文章
© 版权声明