为了能够以更快的速度从存储器中取出指令,首先要保证存储器的读延时足够小。不同存储器类型有不同的延迟,片外的DDR存储器或闪存可能需要几十个时钟周期的延迟,片上SRAM也可能需要几个时钟周期的延迟。
为了能够使处理器核以最快的速度取值,通常使用指令紧耦合存储器(Instruction Tightly Coupled Memory,ITCM)和指令缓存(Instruction Cache)。
指令紧耦合存储器是指配置一段较小容量(一般几兆字节)的存储器(通常使用SRAM),用于存储指令,且在物理上离处理器核很近而专属于处理器核,因此能够实现很小的访问延迟(通常一个时钟周期)。
ITCM优点:实现非常简单,容易理解,且能保证实时性。
ITCM缺点:由于使用地址区间寻址,因此无法像缓存(cache)那样映射无限大的存储器空间。同时,为了保证足够小的访问延迟,无法将容量做到很大(否则无法在一个时钟周期访问SRAM或芯片无法容纳过大SRAM),因此ITCM只能用于存放容量大小有限的关键指令。
指令缓存是指利用软件程序的时间局部性和空间局部性,将容量巨大的外部指令存储器空间动态映射到容量有限的指令缓存中,将访问缓存存在着相当大的不确定性。一旦缓存不命中(cache miss),就需要从外部的存储器中存取数据,这会造成较长的延迟。在实时性要求高的场景中,处理器必须能够实时响应。如果使用了缓存,则无法保证这一点。
大多数极低功耗处理器应用于实时性较高的场景,因此通常使用延迟确定的ITCM。
此外,缓存几乎是处理器微架构中最复杂的部分之一。