内存部分之间的障碍

时间:2018-03-15 10:57:49

标签: memory-management arm memory-barriers rtems

我正在研究如何使用基于ARM的Xilinx Zynq在RTEMS中管理内存。该程序在SMP的两个核心上运行。

我已经阅读过关于内存障碍和无序执行范例的内容,我得出结论,障碍或围栏是硬件实现而不是软件。

RAM分为几个部分,但是有些部分称为障碍,它们与其他部分共享区域。我给你一个捕获。

start-text-barrier

xbarrier从下一部分开始的地方开始,到上一部分结束的地方结束。另一个例子:

rwbarrier

在这一个中,屏障从与上一节相同的地址开始,并在下一节开始之前结束。

这些内存部分是否与屏障指令相关?为什么要实现这些内存部分?

提前致谢,

2 个答案:

答案 0 :(得分:1)

谷歌搜索"部分.rwbarrier"会让你到https://lists.rtems.org/pipermail/users/2015-May/028893.html,其中说:

  

本节有助于保护代码和只读部分免受MMU的写访问。

答案 1 :(得分:0)

看起来这根本与屏障指令无关。它是一个像这样调用的内存部分,只是为了将读写区域与只读区域(向量)分开吗?

屏障指令用于强制多处理器系统中的顺序,它们永远不会链接到地址。屏障指令用于分割可见性(对于其他CPU或线程):

  • 在屏障前加载和存储说明
  • 在屏障后加载并存储说明。