STM32中的ICACHE是什么有什么用?如何使用?

一、 什么是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请求一个指令时,它会检查两个地址标签来确定哪个与请求的指令地址匹配。这增加了缓存命中的可能性,因为有两个不同的指令可供选择。

三、如何使用?

1、打开CUBE

2、左侧选择栏点击iCache

在这里插入图片描述

3、使能选择1-way或者2-ways(到此iCache就配置完成了)

在这里插入图片描述

四、扩展(ICACHE的发展历史)

ICache(指令缓存)是计算机体系结构中的一个重要组成部分,它用于存储最近使用的指令,以减少CPU访问主存储器的次数,从而提高执行速度。下面简要概述ICache的发展历史:

早期计算机

  • 在早期的计算机体系结构中,由于存储器的速度相对较慢,而CPU的执行速度相对较快,这就导致了所谓的“存储墙”问题。
  • 为了解决这个问题,人们开始探索如何提高指令的访问速度。

ICache概念的引入

  • 20世纪70年代末到80年代初,随着微处理器技术的发展,指令缓存的概念开始出现。
  • 最初的ICache通常与数据缓存(DCache)合并在一起,形成统一的缓存(Unified Cache),因为当时的硬件成本较高,且技术限制较大。

ICache与DCache分离

  • 随着技术的进步,人们发现指令访问模式和数据访问模式存在差异,指令访问模式通常更为局部化。
  • 于是,为了进一步优化性能,指令缓存和数据缓存逐渐被分离出来,形成了独立的ICache和DCache。

多级缓存体系

  • 随着CPU和存储器之间性能差距的加大,多级缓存体系结构被引入,包括L1、L2甚至L3缓存。
  • L1 ICache是最接近CPU的缓存,提供了最快的访问速度。
  • 更高级别的缓存(如L2和L3)提供了更大的存储容量,但访问速度稍慢。

现代ICache技术

  • 现代ICache采用了各种先进的技术来提高性能,例如:
    • 预取技术:预测哪些指令可能会被CPU执行,并提前加载到缓存中。
    • 替换策略:当缓存满时,使用不同的算法(如LRU,Least Recently Used)来决定替换哪些旧的指令。
    • 分支预测:预测条件分支的执行路径,以便提前加载可能的指令。

ICache在现代处理器中的应用

  • 在现代处理器中,ICache的容量、组织方式(如直接映射、组相联、全相联)以及替换策略都得到了极大的优化。
  • 高端处理器中,ICache可能具有数Kib至数十Kib的容量,以适应复杂的指令集和多核架构。

具体实例

  • ARM处理器:在ARM架构中,ICache和DCache是常见的特性,用于提高指令和数据的访问速度。
  • 华为达芬奇架构:在华为的达芬奇架构中,指令经过ICache获取后,被分发到不同的处理单元进行运算,这显示了ICache在现代处理器中的重要角色。

发展趋势

  • 随着计算机体系结构的发展,ICache的设计也在不断进化,以适应新的指令集架构和多核处理器的需求。
  • 新兴的技术,如机器学习,也对ICache的设计提出了新的挑战和机遇。

结论

ICache的发展伴随着计算机体系结构的整体进步,从最初的单一缓存发展到现在的多级缓存体系,以及更加智能的预取和替换策略。随着技术的不断进步,ICache将继续发挥其在提高系统性能方面的重要作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小超电子笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值