TIwilliam hill官网
直播中

洪禹

7年用户 207经验值
私信 关注
[问答]

SYS/BIOS 多核 共享变量的方法

        最近在做SYS/BIOS多核相关的内容,我是这样规划的,主核用来控制,从核用来接收数据,两个核之间有些变量要共享,比如主核改变了一个变量,从核要根据改变的值来接收数据及相应处理,在没有用BIOS的时候我们就是直接把变量放在指定的空间,这样每个核都能够访问到,但这种这种方法不是很可靠,会存在cache一致性的问题,现在用了SYS/BIOS,了解了messageQ和notify等方法,但是觉得执行时间略长,而系统对实时性要求很高。
所以我想请问一下:
1、在SYS/BIOS下,我只有几个int类型的变量需要两个核能共享,想请教一下的核间通信方式那种方法效率比较高,推荐哪种?
2、messageQ在共享单个变量时效率如何?

回帖(4)

杨娟

2018-6-21 11:25:41
如果只有几个数据需要共享,可以用共享变量的方式将共享变量放在共享noncache 区间,此时不用维护cache一致性;或者通过消息传递的方式进行数据传递,不用共享变量。我觉得如果只是几个变量的话,直接用共享memory,配成noncache更方便些。
                                                                          

举报

洪禹

2018-6-21 11:32:03
引用: zbb9612 发表于 2018-6-21 11:25
如果只有几个数据需要共享,可以用共享变量的方式将共享变量放在共享noncache 区间,此时不用维护cache一致性;或者通过消息传递的方式进行数据传递,不用共享变量。我觉得如果只是几个变量的话,直接用共享memory,配成noncache更方便些。
                                                                          

非常感谢你的回答!请问一下共享noncache区间是固定的一块内存还是由自己来配置的?要是配置的话是如何配置的?
举报

洪禹

2018-6-21 11:46:31
引用: zbb9612 发表于 2018-6-21 11:25
如果只有几个数据需要共享,可以用共享变量的方式将共享变量放在共享noncache 区间,此时不用维护cache一致性;或者通过消息传递的方式进行数据传递,不用共享变量。我觉得如果只是几个变量的话,直接用共享memory,配成noncache更方便些。
                                                                          

之前试过把变量配置成volatile类型,但是好像没有效果,还是有cache一致性的问题
举报

洪禹

2018-6-21 12:00:32
引用: zbb9612 发表于 2018-6-21 11:25
如果只有几个数据需要共享,可以用共享变量的方式将共享变量放在共享noncache 区间,此时不用维护cache一致性;或者通过消息传递的方式进行数据传递,不用共享变量。我觉得如果只是几个变量的话,直接用共享memory,配成noncache更方便些。
                                                                          

请问如何配置成noncache?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分