This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

如何判断cache L1p L1d 是否命中或者缺失miss



我看了一些cache的资料。很多都讲了当cache 命中hit或者缺失 miss时候,该怎么做的问题,但是,对于cache为什么会

miss以及如何判断cache 缺失miss还是命中hit的问题,很少有人提及,不知道有没有人能分享下,谢谢!

1.

cpu一上电,从第一条取指令开始的时候,所有cache中包括L1P cache  L1D cache和L2 cache中的内容是不是都是0?

2.

我怎么知道cpu要取的命令到底在哪里?是在L1p cache 中  还是在L2 cache中?还是在SDRAM或者DDR 主存中?

  • #1. Cache的工作原理不是按内容检索,而是按地址检索的。至于一上电Cache的内容是什么都没有关系,CPU没有访问物理内存之前,Cache中没有相应地址的记录,所以都是从物理内存取数据,而不是从Cache.

    #2. 这是由CPU自动完成的。如果取的命令在Cache中,CPU则从Cache中取,或者从物理内存取,并将同一个line取到Cache中。