【转载】ARM各种Memory类型理解

本文主要介绍了ARM内存的Device和Normal类型,包括Cacheable、EWA、Allocate、Order和SnpAttr等属性对内存访问的影响。Device类型内存不允许缓存,而Normal类型内存可缓存并支持不同级别的保序和嗅探需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:谷公子
首发博客:https://blog.youkuaiyun.com/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,为了性能考虑,推

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值