硬汉嵌入式论坛

 找回密码
 立即注册
查看: 405|回复: 7
收起左侧

[SPI/QSPI] 程序放在qspi flash里运行速度和片内flash区别大吗

[复制链接]

84

主题

292

回帖

544

积分

金牌会员

积分
544
发表于 2026-5-1 12:58:02 来自手机 | 显示全部楼层 |阅读模式
h750外挂单颗qspi flash
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
122500
QQ
发表于 2026-5-1 17:03:41 | 显示全部楼层
如果Cache命中了,没区别,如果没有命中,区别非常大,10倍以上。

回复

使用道具 举报

3

主题

54

回帖

63

积分

初级会员

积分
63
发表于 2026-5-3 22:04:33 | 显示全部楼层
eric2013 发表于 2026-5-1 17:03
如果Cache命中了,没区别,如果没有命中,区别非常大,10倍以上。

想问一下硬汉大佬,关于这个Cache命不命中,我们初学者应该怎么去理解呢?我虽然有点基础,也知道Cache的存在,但是对于Cache命不命中,一直是朦朦胧胧的,不知道怎么理解
回复

使用道具 举报

30

主题

457

回帖

547

积分

金牌会员

积分
547
发表于 2026-5-4 10:01:00 | 显示全部楼层
本帖最后由 tovinz 于 2026-5-4 10:03 编辑
spi-sd 发表于 2026-5-3 22:04
想问一下硬汉大佬,关于这个Cache命不命中,我们初学者应该怎么去理解呢?我虽然有点基础,也知道Cache的 ...

你的双手操作就像CPU
但你的手长有限,你只能在你面前那个有限大小的操作台上工作,这样操作速度才快
你还有一个储物柜,但是需要你转身才能拿到上面的东西,你操作起来速度就慢
每次你操作东西的时候,就先看看操作台上有没有操作对象,有的话,你直接就可以完成任务。--- 命中
没有的话,你就需要把操作台清理一下腾出空间,再转身到身后的储物柜中找到操作对象,拿到操作台上才能操作

CPU速度不快的时候,低成本的RAM可以跟上CPU的速度。都用不上操作台,直接在储物柜里工作都行。
但是CPU速度上去了,要想有同频的RAM,成本就高了,所以就有了cache技术,用一小块成本高的高速的RAM供CPU直接操作,后来就发展为多级cache

评分

参与人数 1金币 +20 收起 理由
spi-sd + 20 赞一个!

查看全部评分

回复

使用道具 举报

3

主题

54

回帖

63

积分

初级会员

积分
63
发表于 2026-5-4 22:18:54 | 显示全部楼层
tovinz 发表于 2026-5-4 10:01
你的双手操作就像CPU
但你的手长有限,你只能在你面前那个有限大小的操作台上工作,这样操作速度才快
...

非常感谢大佬的解答,意思就是cpu会Cache一段内存中的数据进行读写操作,如果有些操作的话完成会自动覆盖原本那段内存数据?这样理解对吗?
我还看见有程序Cache这种东西,是指cpu在运行程序的时候也会把一段程序Cache到里面再去运行吗?
回复

使用道具 举报

30

主题

457

回帖

547

积分

金牌会员

积分
547
发表于 2026-5-5 09:39:06 | 显示全部楼层
本帖最后由 tovinz 于 2026-5-5 09:41 编辑
spi-sd 发表于 2026-5-4 22:18
非常感谢大佬的解答,意思就是cpu会Cache一段内存中的数据进行读写操作,如果有些操作的话完成会自动覆盖 ...

一般如果cache中刚好有操作对象,那么就在cache里面完成。
不过就像h7,cache的行为是可以配置的,比如你可以配置为写到cache的同时也写到变量所在的内存中去。

指令cache,先讲题外话,
CPU去取指令的时候,指令必须要存放在可以字节寻址的存储器中,像RAM,芯片内部的AXI flash,norflash(常用的w25qflash)。这些存储器可以用字节寻址访问里面的数据。所以很多时候可以看到用w25qxx做xip,xip意思是就地执行,就是CPU直接执行这个存储器里面的代码(可以有cache加速)
像NANDFLASH比如sd卡,只能按块寻址,一次操作的是512字节。它们就没法用来直接给CPU做取指用。
说回来,可以给CPU直接取指的存储器的访问速度是有差别的,比如并口RAM通常比四线的QSPI快。
CPU速度很快,如果受限于取指的速度,那就是大大的浪费。
所以就有了指令cache,我一次性缓存一长段代码到高速的cache里面,CPU取指要是命中了,直接就执行,没命中就不好意思,cache就要重新去指令所在的存储器的那个地址把指令读上来共CPU使用。所以就有了二楼硬汉老师说的。

评分

参与人数 1金币 +20 收起 理由
spi-sd + 20 很给力!

查看全部评分

回复

使用道具 举报

3

主题

54

回帖

63

积分

初级会员

积分
63
发表于 6 天前 来自手机 | 显示全部楼层
tovinz 发表于 2026-5-5 09:39
一般如果cache中刚好有操作对象,那么就在cache里面完成。
不过就像h7,cache的行为是可以配置的,比如 ...

感谢大佬的热心解答,让我受益匪浅。
我还想问一下,如何有效的更好利用cache命中这些优点呢,就是我们新手写程序如何才可以更好的让cache更容易命中呢?
回复

使用道具 举报

84

主题

292

回帖

544

积分

金牌会员

积分
544
 楼主| 发表于 3 天前 | 显示全部楼层
H7这种高端单片机引入cache的概念令我觉得很懵,经过大家的讲解有点理解了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2026-5-13 00:50 , Processed in 0.315933 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表