mpu 配置内存空间_【实战经验】STM32F7 MPU Cache浅析

本文深入探讨了STM32F7中MPU和Cache的工作原理,强调了Cache在提升性能中的作用以及可能导致的问题。文章通过实例解释了Cache一致性问题,指出在使用Write-back策略时,必须注意数据同步,以确保多个Host访问内存时的一致性。解决方案包括使用Write-through策略、手动更新Cache或Invalidating Cache。
摘要由CSDN通过智能技术生成

前言

本文会从结构,原理以及应用方面对MPU和Cache进行分析,主要目的是希望读者对Cache有基本的了解,在具体的实际应用中,使用带有一级cache的MCU时,避免常见的错误。

Cache介绍

Cache及其原理

Cache,高速缓存,一般指的是L1 cache,即和Core紧耦合的,从STM32F7系列开始,

基于ARM cortex-M7内核,增加了对L1 Cache的支持。

21.jpg (104.41 KB, 下载次数: 29)

2017-3-3 14:48 上传

从这张图片可以看出来,无论是指令Cache(I-cache)还是数据Cache(D-cache),一旦使能之后,就分别与Core的prefetch unit(I-cache)和load-store unit(D-cache)相连,以D-cache为例,因为

直接与LSU相连,访问速度会比直接访问SRAM或外部RAM快很多,只要保证cache有足够高的命中率(由cache策略保证),尽量少的cache miss,读/写的速度会有比较大的提高。

结构及策略

同样这里以D-cache为例,看一下D-cache的构成:

22.jpg (167.46 KB, 下载次数: 24)

2017-3-3 14:48 上传

包括Address和cache-line,Address表明其地址,对应一条包含32bytes的cache-line:

读数据时,当地址命中时即cache-hit,便可以直接从cache line中取出相应的数据,反之,当遍历了address都没有找到,就会产生cache-miss,这时便会从实际的内存单元(如SRAM)中取出相应的数据,并更新到某一条cache-line中并修改相应的cache-line信息;

写数据时,就有点不同了,包括write-through策略和write-back策略,当使用write-though策略时&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值