AURIX TC3XX Cached PFLASH与Non-Cached PFLASH的区别

news/2024/12/13 4:49:52/

Cached ? Non-Cached?

在阅读TC3XX的用户手册时,在内存映射表中,有两个segment都是Program Flash,而且大小都一样是3M,一个是segment 8

 另一个是segment10

 这难免让人产生疑惑,二者区别在哪?

通过搜索在infineon开发者论坛中发现有人在问类似的问题,我将该问题的解答分析一下。

Cached PFLASH vs. Non-Cached PFLASH

 

同一块物理闪存存在于缓存区域和非缓存区域。主要的区别在于CPU访问它们的方式。

  1. 缓存地址访问:如果CPU通过缓存地址访问闪存,那么获取的数据会存储在CPU的缓存中。后续的任何访问都会使用缓存中的数据,而不是物理读取闪存。这可以显著加快程序的执行速度。

  2. 非缓存地址访问:如果使用的地址是非缓存的,那么读取操作总是物理执行的,也就是每次都直接从闪存中读取数据,而不使用CPU缓存。

需要注意的是,使用缓存数据的方法有一定的风险。如果你更改了闪存中的基础数据,但CPU缓存中的数据还未更新,那么CPU读取到的将是旧的数据。这可能会导致数据的不一致性。所以在处理闪存中的数据时,我们需要考虑到这种可能的情况,并设计出正确的数据同步或者更新策略。

二者的访问机制对比与安全机制的选择

进一步了解闪存读写的一些操作和可能的问题。

数据一致性的检查

最好在非缓存的闪存(Non-cached)上做检查,因为这样可以确保读取操作真正发生。因为如果使用缓存地址进行读取操作,那么如果闪存中的数据在读取到缓存后被修改,那么CPU缓存中的数据将会与实际的闪存中的数据不同,从而可能引发问题。

闪存的写入和擦除是通过reflashing完成的。但是,写入/擦除操作是通过DMU(数据管理单元)中的命令序列完成的。所以,如果CPU已经从闪存读取数据到其缓存,然后有一些操作reflash了PFlash,那么你会发现CPU缓存中的数据和PFlash中的数据不同。

需要注意的是,reflash需要花费大量的时间,所以在运行代码时,CPU可能会尝试加载其他数据到缓存,并且会注意到闪存不可用,因为它正在被更改。这里期望的是,进行这样操作的软件程序员会在代码中添加一些检查机制,但是也有可能出现没有做这样的检查。

因此,设计好的数据一致性策略和正确的程序检查机制在处理闪存数据时十分重要,以防止因数据不一致而引发的问题。

假设你的安全机制是想要检查闪存数据的安全性。因此,如果你从缓存地址运行,如果数据已经在缓存中,你所做的只是检查缓存内容是否正确 - 你不会检查到闪存本身路径的安全性。当数据进入缓存时,你已经证明了路径是正常的,但你并没有检查之后会发生什么。如果数据因为尚未在缓存中而必须被获取,那么你无论如何都不会获得速度提升,因为你仍然需要获取数据。

所以总结一下,对于一个安全机制,我会使用非缓存地址,以确保我们真正测试的是我们感兴趣的路径的安全性。

数据安全机制的选择

数据管理单元(DMU)会在需要的时候被用于重新编程闪存,所以在标准操作中,它不应该被运行。

当数据存储在缓存中时,应该受到ECC(错误检测和纠正)的保护(ECC值与数据一起存储)。因此,当从缓存中读取数据时,CPU将检查ECC并在出现不匹配时标记错误,因此缓存中的数据是受保护的。

ECC是一种用于检测和纠正单个数据位错误的技术。在数据被存储到缓存中时,会生成对应的ECC值。然后在读取缓存中的数据时,会重新计算ECC并与原来的ECC值进行比较,如果出现不匹配,说明数据在存储过程中或者存储期间发生了错误,CPU就会触发一个错误信号。

ESM(错误信号模块)旨在检查PFlash的内容 - 如果你从缓存中获取内容,那么你的安全机制将不再测试PFlash,你每次只是重新读取缓存的内容,假设所有的数据都在那里。

因此,如果你反复从缓存中读取,你可以看到你在缓存中是否有永久性或非永久性的错误,但你不会标记PFlash为损坏并刷新/替换一个字线。为了确保你真的在测试PFlash,我认为ESM必须使用非缓存地址。这确保你真的在检查PFlash本身是否被损坏,然后你可以使用结果来看你是否需要更换或刷新闪存。

对缓存的访问机制

闪存在物理上是相同的。所以当CPU使用缓存地址进行读取时,它首先会检查缓存内容,如果命中了,它就会从缓存中返回数据。如果没有命中,它会从PFlash中进行256位(BTR4)的读取,并把内容存入缓存。如果它在顺序执行一个程序,那么它很可能会去读取闪存中的下一个256位数据。还要注意,PFlash内置了一个预取机制 - 它会去获取下一个256位的数据,假设这就是CPU接下来需要的。

如果你从非缓存地址访问,那么缓存将不会被检查,它将直接从PFlash访问。然而,它会获取它需要的数据,而不是总是做一个BTR4/256位的读取。为了保持性能,PFI(PFlash接口)会将从PFlash读取的256位数据存储在本地缓冲区中,并从中提供获取,直到地址进入下一个256位,那时它将获取该数据(尽管如果有空闲的预取缓冲区,它可能会去获取下一个256位数据)。

CPU是否继续步进和获取将取决于程序和它预测接下来需要什么。

所以闪存在物理上同时存在于两个地址空间,而缓存则被用以提高CPU的访问速度。然而,你的安全机制是为了测试实际的PFlash,这就是为什么使用非缓存地址是一个更好的主意,因为这样你就可以确保你正在测试你打算测试的内容。并且,通过获取10个页面,你还可以确保你已经清空了所有可能的缓冲区,并且真正从闪存返回了数据。


http://www.ppmy.cn/news/128041.html

相关文章

全球及中国无线手持吸尘器行业未来产销需求与竞争调查分析报告2022版

全球及中国无线手持吸尘器行业未来产销需求与竞争调查分析报告2022版 --------------------------------------- 【修订日期】:2021年12月 【搜索鸿晟信合研究院查看官网更多内容!】 2021年,全球无线手持吸尘器市场规模达到了 百万美元&…

小狗新品擦地吸尘器亮相AWE 多重创新设计引关注

中国家电及消费电子博览会(AWE)于3月23日在上海虹桥国家会展中心开幕。随着中国家电产业强势崛起,国产品牌产品畅销全球,AWE已发展成为全球家电产业的风向标。而吸尘器作为小家电中的热门品类,在博览会中受到广泛关注&…

擦地机器人排行榜_智能扫地机器人排行榜前十名

1、米家 小米扫地机器人扫拖一体 拖地机 吸尘器家用 激光导航 2100Pa大吸力 米家APP互联扫拖一体功能很好用,有了它基本可以实现不用自己拖地的梦想,拖地模式很人性化,水量还可以自己调节。建图快,只要扫地中间不拿起来机器人就不…

电商数据监测的应用价值——国内吸尘器行业数据浅析

随着科技的发展与居民生活水平的提高,吸尘器进入日常生活,成为了常见家用清洁用具之一。 2022年上半年,吸尘器市场零售额达145亿元,同比增速达14.0%,零售量1008万台,同比下跌2.8%。(数据来源&am…

扫地机器人排行榜 扫地机器人哪个牌子好?

随着科技的进步,很多事情已经从传统的人力转化为机器代劳,这是时代进步的标志。每个人应该都有这样的感觉,时间的价值越来越高,如果把过多的时间用在不是很重要的事情上面,那么你浪费的价值就越高。 扫地机器人作为人工…

计算机高中学校排名,国际高中计算机科学小班教学十大排名

国际高中计算机科学小班教学十大排名 再强调一句,“去不去也由你自己决定,跟我无关IB课程分为标准难度(SL)和更具挑战性的高难度课程(HL)。IB要求学生至少选6门课Theory of Knowledge ,这6门课中至少有三门是HL。除了对学生的课业要求外&…

扫地机器人排行 2017最新扫地机器人排行榜曝光

繁忙的工作占据了人们大部分的时间,在仅有的业余时间里,却还需要完成家务琐事,实在是让人头疼,但随着人工智能的崛起,我们不需要再亲力亲为,比如扫地机器人,这种产品自上世纪开始就成为备受关注…

vorwerk 机器人_福维克(Vorwerk)--吸尘器行业的安利

最贵的家用吸尘器是什么? 估计大部分会回答是Dyson,少部分人可能会回答是德国高端品牌Miele.最后的答案可能让大家吃惊,最贵家用吸尘器品牌叫Vorwerk Koblod. 福维克以下这款VK200吸尘器价格为1199英镑(约10333人民币),如果配齐所有附件的话,价格要到1500英镑(约13000人民币) …