arm memory类型分为normal memory和device memory。
normal memory
normal memory就是我们平常所说的内存,对该种memory访问时无副作用(side effect),即第n次访问与第n+1次访问没有任何差别(对比device memory的side effect特性,更容易理解一些)。
进一步地,通过memory attribute可以对normal memory进行细分,一段vma(virtual memory address)的memory attribute定义在页表的描述符中。【vma应该是linux内核中的概念,而这里讨论的是arm的memory定义,应该是有误的,望指教】
- 是否可共享:
- shareable:可以被所有PE(Processing Element,处理元素)访问,包括inner shareable和outer shareable。
- non-shareable:只能被唯一的PE访问。
- 是否支持缓存:
- write-through cacheable:同时写入cache与内存,可以理解为写穿;
- write-back cacheable:只写入cache,不更新内存,内存更新操作放到之后的适当时机;
- non-cacheable:无cache,直接读写内存。