我正在研究如何使用基于ARM的Xilinx Zynq在RTEMS中管理内存。该程序在SMP的两个核心上运行。
我已经阅读过关于内存障碍和无序执行范例的内容,我得出结论,障碍或围栏是硬件实现而不是软件。
RAM分为几个部分,但是有些部分称为障碍,它们与其他部分共享区域。我给你一个捕获。
xbarrier从下一部分开始的地方开始,到上一部分结束的地方结束。另一个例子:
在这一个中,屏障从与上一节相同的地址开始,并在下一节开始之前结束。
这些内存部分是否与屏障指令相关?为什么要实现这些内存部分?
提前致谢,
答案 0 :(得分:1)
谷歌搜索"部分.rwbarrier"会让你到https://lists.rtems.org/pipermail/users/2015-May/028893.html,其中说:
本节有助于保护代码和只读部分免受MMU的写访问。
答案 1 :(得分:0)
看起来这根本与屏障指令无关。它是一个像这样调用的内存部分,只是为了将读写区域与只读区域(向量)分开吗?
屏障指令用于强制多处理器系统中的顺序,它们永远不会链接到地址。屏障指令用于分割可见性(对于其他CPU或线程):