前言

文档中有关于芯片的介绍,其中一部分是最高运行频率2GHz,32KB L1 I-cache和32KB L1 D-cache ,L2 cache 512K。

L1 Cache 表示一级缓存和L2 Cache 表示2级缓存是知道的,但是I-CacheD-Cache就傻傻分不清了。

因此参考网上文章,摘抄部分内容于此。

正文

什么是CPU缓存

CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小的,但是交换速度却比内存要快得多。

CPU缓存的作用

解决CPU运算速度与内存读写速度不匹配的问题。

I-Cache和D-Cache的区别

  1. ICache中存储有微处理器需要的指令,在微处理器的取指阶段,通过程序计数器PC提供给ICache的地址,微处理器可以获取需要的指令。
  2. DCache则是作为一个数据的存储,并提供对于Load/Store指令所要操作地址的数据,它地址则来自于ALU运算的结果。

除了命令意义不同,具体从下面两个方面来回答

cache的行为
  1. I-cache大多都是顺序取指,碰到分支指令也会跳转;而D-cache访问的模式变化比较大。
  2. 指令只有读和refill,没有写;而数据有读也有写。
  3. 最重要的是冯氏的结构是指令和数据分离。I和D在一起只有相互干扰。
物理设计

一个union的主cache,同时需要数据和指令的访问,端口上是很难实现的。所以一般在流水线的主干上,都是采用分离的icache和dcache。

非主干的L2 cache,从容量的角度考虑采用union的方式。

参考文章

  1. I-Cache与D-Cache的区别
  2. cache为什么分为i-cache和d-cache以及Cache的层次设计
  3. I-CACHE和D-CACHE

相关文章

暂无评论

none
暂无评论...