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,直接读写内存。
device memory
定义: The Device memory type attributes define memory locations where an access to the location can cause side-effects, or where the value returned for a load can va

本文介绍了ARM内存的两种主要类型:normal memory和device memory。normal memory适合常规数据存储,无副作用,可通过memory attribute细分为可共享和缓存策略。device memory用于外设交互,可能产生副作用,如状态寄存器的读清除等。此外,device memory的attribute还包括是否可合并访问和是否可乱序等特性。

1万+

被折叠的 条评论
为什么被折叠?



