浅析ARMv8体系结构:Memory Type

内存类型概述

ARMv8内存模型将内存分成了Normal和Device两种类型,不同的内存类型支持的属性也存在差异,其中,Normal类型主要应用于常规的系统内存,支持读写等操作;而Device类型,顾名思义,主要针对于设备内存,在访问时会存在更多的限制。
在这里插入图片描述

Normal内存属性

ARMv8为Normal内存定义了两类属性:Shareability(可共享性)和Cacheability(可缓存性)。
在这里插入图片描述

Cacheability

Normal内存支持的Cacheability分为以下三种:

  • Write-Through Cacheable
  • Write-Back Cacheable
  • Non-cacheable
    在这里插入图片描述

Shareability

Normal内存支持的Shareability分为以下三种:

  • Inner Shareable
  • Outer Shareable
  • Non-shareable
    在这里插入图片描述

Device内存属性

Device内存实际上也是存在Cacheability和Shareability这两个属性,但是它固定是Outer Shareable和Non-cacheable的。针对于Device内存类型,ARMv8额外定义了三种内存属性:Gathering、Reordering和Early Write Acknolegement。

根据Device内存的GRE属性,可以将Device内存分为以下几类:

  • Device-nGnRnE
  • Device-nGnRE
  • Device-nGRE
  • Device-GRE
    在这里插入图片描述

Gathering

Gathering描述了系统是否允许将对某一内存区域或不同内存区域的多个内存访问操作合并成一笔进行处理。配置Gathering属性,可以减少内存访问开销,提升系统性能,但可能会导致reorder问题。在ARMv8中,通常简写成G或nG。
在这里插入图片描述

Reordering

在这里插入图片描述

Early Write Acknowledgement

在这里插入图片描述

相关参考

  • 《DDI0487A_e_armv8_arm.pdf》
  • 《learn_the_architecture_-_aarch64_memory_attributes_and_properties_102376_0200_01_en.pdf》
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值