作者:谷公子
首发博客:https://blog.csdn.net/W1Z1Q/article/details/104358385
在看ARM的各个文档时,经常出现很多memory属性相关的词汇,比如Device、Cacheable、Shareable之类,基于这段时间的学习理解和项目实践,把个人的一些理解记录下,仅供参考,有不当之处还望大家指正。
我们以CHI issueC P110 表2-12为例,介绍Device、Allocate、Cacheable、EWA(Bufferable)、Order以及SnpAttr如何影响ARM的memory类型。
1.MemAttr、Order和SnpAttr等属性分析
从MemAttr那一列的右边分析:
EWA
EWA和Bufferable是一个意思的,EWA指示的是一笔写请求的完成响应是否可以从中间节点返回。EWA=1,允许从中间节点返回;EWA=0,只能从写请求要到达的最终节点返回。
Cacheable
Cacheable指示一笔请求是否需要执行cache lookup,即查找cache内容。Cacheable=1,先进行cache查找,如果没有找到再去访问最终节点;Cacheable=0,必须访问最终节点。通常EWA=0的话,Cacheable肯定等于0,即不能提前返回响应的,那肯定也不能只查询cache就了事的。
Allocate
Allocate是是否需要cache分配的提示信号,也只是指示作用,具体要不要分配看情况。Allocate=1,为了性能考虑,推荐将数据分配到cache中;Allocate=0,为了性能考虑,推