快速连接
👉👉👉【精选】ARMv8/ARMv9架构入门到精通-目录 👈👈👈
引流关键词:缓存,高速缓存,cache, CCI,CMN,CCI-550,CCI-500,DSU,SCU,L1,L2,L3,system cache, Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、optee3.14、MMU、VMSA、cache、TLB、arm、armv8、armv9、TEE、安全、内存管理、页表…
快速链接:
.
👉👉👉 个人博客笔记导读目录(全部) 👈👈👈@TOC
1. A53使用经典的 bit-LITTLE
架构
以下是一张比较早期的经典的bit-LITTLE
的架构图
2. A53的cache配置
L1 I-Cache
- 可配:8KB, 16KB, 32KB, or 64KB
- cacheline:64bytes
- 2路组相连
- 128-bit的读L2 memory的接口
L1 D-Cache
- 可配:8KB, 16KB, 32KB, or 64KB
- cacheline:64bytes
- 4路组相连
- 256-bit的写L2 memory的接口
- 128-bit的读L2 memory的接口
- 64-bit的读L1到datapath
- 128-bit的写datapath到L1
L2 memory System
- 集成了SCU( Snoop Control Unit ),做多可以连接4个core
- SCU内重复拷贝了 L1 Data Cache的TAGs
- L2 memory system对外的接口,可以是ACE 或 CHI,128-bit宽度
L2 cache
- 可配置的: 128KB, 256KB, 512KB, 1MB and 2MB.
- cacheline:64bytes
- Physically indexed and tagged cache(PIPT)
- 16路组相连的结构
L1 data cache TAG
A53的L1 Data cache遵从的是MOESI协议,如下所示在L1 data cache的tag中存有MOESI的标记位
MOESI state
L1 Instruction cache TAG
L1 instruction cache是只读的,所以也就无需硬件维护的多core之间instruction cache的一致性,所以也就无需组从MOESI协议,以下展示了*L1 Instruction cache的TAG,其中标记为很少,无MESI标记位。
3. cache的层级结构:
- L1 cache是private的在core中
- L2 cache是share的在cluster中
4. L2 memory System系统介绍
在bit.LITTLE
架构中中,在Cluster中,有一个SCU单元,SCU单元主要是执行和维护L1 cache的一致性(MESI协议 或 其变体如MOESI协议)。
在L2 Memory System的中,除了包含L2 cache,也会包含L1 Duplicate tag RAM
(这里指的其实是L1 Data Cache Tags)。
5. 多cluster之间的缓存一致性
cluster和外界的接口,可以是ACE或CHI(目前常用的是ACE,后面的趋势可能是CHI)
- 如果使用的是ACE,那么多cluster之间的一致性,依靠
CCI + ACE
来维护 - 如果使用的是CHI,那么多cluster之间的一致性,依靠
CMN + CHI
来维护
6. CCI的介绍(以CCI-550为例)
CCI-550 包含一个包容性监听过滤器(snoop filter),用于记录存储在ACE 主缓存。
侦听过滤器可以在未命中的情况下响应侦听事务,并侦听适当的主控只有在命中的情况下。Snoop 过滤器条目通过观察来自 ACE 主节点的事务来维护以确定何时必须分配和取消分配条目。
侦听过滤器可以响应多个一致性请求,而无需向所有人广播ACE 接口。例如,如果地址不在任何缓存中,则监听过滤器会以未命中和将请求定向到内存。如果地址在处理器缓存中,则请求被视为命中,并且指向在其缓存中包含该地址的 ACE 端口。
7. 经典示例框图
关注"Arm精选"公众号,备注进ARM交流讨论区。