在 ARM 中,内存类型指定为:
在Device type中,似乎也可以区分这个类型
不可共享、可共享设备内存有什么区别?我们如何分别使用这些内存?
当将可共享属性应用于普通或设备内存时,它的含义有所不同,而对于 ARMv7,不存在不可共享设备内存之类的东西。
以下摘自Cortex A 系列程序员指南:
对于指定为 Device 的内存:
...设备访问的可共享属性用于确定将使用哪个内存接口进行访问,对标记为设备、不可共享的区域的内存访问使用专用接口(私有外设端口)执行。ARMv7 处理器上不使用此机制。
对于指定为“正常”的内存:
普通内存还必须指定为可共享或不可共享。具有不可共享属性的普通内存区域是仅由该核心使用的区域。核心不需要使对该位置的访问与其他核心一致。如果其他内核确实共享此内存,则必须在软件中处理任何一致性问题。
对于指定为强有序的内存:
对强有序内存的所有内存访问均按程序顺序进行。假定所有强有序访问都是共享的。