Caching 指令缓存是否存储操作码?

Caching 指令缓存是否存储操作码?,caching,memory-management,cpu-architecture,processor,Caching,Memory Management,Cpu Architecture,Processor,我试图计算指令缓存命中率。我已经在模拟器中模拟了一个缓存,并将其与PC一起输入。我想知道是否需要报告命中率,即在缓存中找到的PC数量,或者找到的PC数量以及它们的操作码字段是否匹配 这些问题可以追溯到指令缓存用途的本质。指令缓存是否用于检索操作码?正如我们在分支目标缓冲区(BTB)中存储分支目标一样。在BTB的情况下,一旦PC命中并且目标匹配,我们计算命中率。(更详细地说:一旦分支预测器正确预测并执行分支)我想知道指令缓存是否也存在这样的问题 您混淆了分支预测器和缓存的概念。分支预测因子用于预测

我试图计算指令缓存命中率。我已经在模拟器中模拟了一个缓存,并将其与PC一起输入。我想知道是否需要报告命中率,即在缓存中找到的PC数量,或者找到的PC数量以及它们的操作码字段是否匹配


这些问题可以追溯到指令缓存用途的本质。指令缓存是否用于检索操作码?正如我们在分支目标缓冲区(BTB)中存储分支目标一样。在BTB的情况下,一旦PC命中并且目标匹配,我们计算命中率。(更详细地说:一旦分支预测器正确预测并执行分支)我想知道指令缓存是否也存在这样的问题

您混淆了分支预测器和缓存的概念。分支预测因子用于预测分支的结果。如果预测将执行分支,则从BTAC(分支目标地址缓存)执行下一台PC。当计算实际的分支目标和方向时,命中信息会稍后出现。这是比较分支的预测方向和结果与实际结果的地方。如果他们都匹配,你就会成功

另一方面,缓存用于存储数据,以便CPU快速访问数据。因此,您不需要比较“操作码”来获得成功

尽管您仍然需要存储操作码,以便在点击时检索它们。要获得缓存命中,您只需要从有效缓存线获取标记,并将其与当前标记进行比较。这里的标签只不过是PC的一些部分,具体取决于您的缓存实现