什么是ICACHE?
icache是一种用于缓存指令的存储器,其目的是提高CPU执行指令的效率。
在计算机系统中,icache(指令缓存)是处理器核心内部的一个关键组件,它专门用来存储最近使用过的指令。当CPU需要执行一个指令时,会首先检查i-cache中是否已经缓存了该指令。如果所需的指令已在i-cache中(这种情况称为缓存命中),CPU可以直接从i-cache中快速读取指令,无需等待从主内存中获取,这显著提高了指令的访问速度并提升了程序的执行效率。
此外,由于指令通常不会被修改,iCache在硬件设计上可以设为只读的,这样也降低了硬件设计成本。同时,现代计算机系统一般会有多个级别的缓存,如L1 iCache、L2 Cache和L3 Cache,其中L1分为数据缓存(dCache)和指令缓存(iCache),分别存储数据和指令,以实现更高效的存取操作。
STM32中iCache的1-way和2-ways区别
1-way iCache:
这种组织方式意味着每个缓存行只能存储一个指令地址标签。当CPU需要读取指令时,它会检查iCache中的地址标签来确定请求的指令是否在缓存中。如果找到了(称为缓存命中),则直接从iCache中读取指令;如果没有找到(称为缓存未命中),则需要从内存中加载指令,并将其存入iCache中。
2-ways iCache:
这种组织方式允许每个缓存行存储两个指令地址标签。这意味着iCache可以在相同的缓存行中存储两个不同地址的指令。当CPU请求一个指令时,它会检查两个地址标签来确定哪个与请求的指令地址匹配。这增加了缓存命中的可能性,因为有两个不同的指令可供选择。