CPU Cache

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Jing1
Level 1
Level 1
5 questions asked 10 sign-ins First reply posted

Dear , 

1. Cache 中的data在不同核间获取数据的时候如何保证拿到的数据是最新的?

2.如果关闭了Cache ,运行速度就变好慢,但是core0取core1的数据又想要保持是最新的数据值,此时没法打开cache ,这种情况该怎么做?

0 点赞
1 解答
Jeremy_Z
Moderator
Moderator
Moderator
1000 replies posted 250 sign-ins 100 likes received

Hi @Jing1 ,

我很好奇为什么要直接从Flash中读取,Flash存储常量或者只读的数据就好了。

变量都是定义在RAM中的。

BR,

Jeremy

在原帖中查看解决方案

0 点赞
3 回复数
Jeremy_Z
Moderator
Moderator
Moderator
1000 replies posted 250 sign-ins 100 likes received

Hi @Jing1 ,

1)Cache 中的data在不同核间获取数据的时候如何保证拿到的数据是最新的?

-- 可以将共享的变量或者数组定义在RAM的非cache区域,不同核在非cache区域读取的数据值可以保证一致性,当然,你需要设置相应的访问机制以避免不同核同时访问同一数据的情况。

2)如果关闭了Cache ,运行速度就变好慢,但是core0取core1的数据又想要保持是最新的数据值,此时没法打开cache ,这种情况该怎么做?

-- 上述办法不需要关闭整个Cache,是个鱼和熊掌兼得的办法。

BR,

Jeremy

 

0 点赞
Jing1
Level 1
Level 1
5 questions asked 10 sign-ins First reply posted

Dear Jeremy , 

谢谢回复,

1.如果将变量数组定义到非Cache也就是0xA00xxxxx段开始,也就是意味着这部分数据从flash上面直接获取,对于这部分的数据获取速度会降低是吗?因为这些数据比较重要既要保证实时性又要保证速度

2.如果把变量数组直接定义到cpu0的cache地址中0x800这种,当CPU2从cpu0的cache地址来拿,这样会获得实时性吗?

0 点赞
Jeremy_Z
Moderator
Moderator
Moderator
1000 replies posted 250 sign-ins 100 likes received

Hi @Jing1 ,

我很好奇为什么要直接从Flash中读取,Flash存储常量或者只读的数据就好了。

变量都是定义在RAM中的。

BR,

Jeremy

0 点赞