在什么情况下我们可以分享不可共享的设备内存,还是可共享的设备内存?

时间:2014-03-21 01:44:32

标签: memory arm

在ARM中,内存类型指定为:

  1. 正常
  2. 设备
  3. 强有序
  4. 在设备类型中,似乎也可以区分此类型

    1. 不可共享的设备内存
    2. 可共享设备内存
    3. 不可共享,可共享的设备内存有什么区别? 我们如何分别使用这些内存?

1 个答案:

答案 0 :(得分:3)

可共享属性在应用于普通或设备内存时意味着不同,而对于ARMv7,则不存在不可共享的设备内存。

以下是Cortex A Series Programmers Guide

对于指定为Device的存储器:

  

...设备访问的可共享属性用于确定   哪个内存接口将用于访问,带内存   访问标记为Device的区域,使用a执行不可共享   专用接口,专用外设端口。这个机制是   不用于ARMv7处理器。

对于指定为Normal的存储器:

  

正常内存也必须指定为可共享   或不可分享。具有不可共享的正常内存区域   属性是仅由此核心使用的属性。没有   要求核心使这个位置的访问连贯一致   与其他核心。如果其他核心确实共享这个内存,那么任何一致性   问题必须用软件处理。

对于指定为强排序的内存:

  

对强排序内存的所有内存访问都按程序顺序进行。   假设所有强排序访问都是共享的。