baron · 2023年08月31日 · 江苏

Arm Cortex-A53 cache的架构解读

一 A53使用经典的big-LITTLE架构

以下是一张比较早期的经典的big-LITTLE的架构图。

image.png
图1

image.png
图2

二 A53的cache配置

image.png

L1 data cache TAG

A53的L1 Data cache遵从的是MOESI协议,如下所示在L1 data cache的tag中存有MOESI的标记位。

image.png
图3

MOESI state

image.png
图4

L1 Instruction cache TAG

L1 instruction cache是只读的,所以也就无需硬件维护的多core之间instruction cache的一致性,所以也就无需组从MOESI协议,以下展示了 * L1 Instruction cache的TAG,其中标记为很少,无MESI标记位。

image.png
图5

三 cache的层级结构:

  • L1 cache是private的在core中。
  • L2 cache是share的在cluster中。

image.png
图6

四 L2 memory System系统介绍

在bit.LITTLE架构中,在Cluster中,有一个SCU单元,SCU单元主要是执行和维护L1 cache的一致性(MESI协议或其变体如MOESI协议)。

image.png
图7

在L2 Memory System的中,除了包含L2 cache,也会包含L1 Duplicate tag RAM(这里指的其实是L1 Data Cache Tags)。

image.png
图8

五 多cluster之间的缓存一致性

cluster和外界的接口,可以是ACE或CHI(目前常用的是ACE,后面的趋势可能是CHI)。

image.png
图9

  • 如果使用的是ACE,那么多cluster之间的一致性,依靠CCI+ACE来维护。
  • 如果使用的是CHI,那么多cluster之间的一致性,依靠CMN+CHI来维护。

image.png
图10

六 CCI的介绍(以CCI-550为例)

CCI-550包含一个包容性监听过滤器(snoop filter),用于记录存储在ACE主缓存。

侦听过滤器可以在未命中的情况下响应侦听事务,并侦听适当的主控只有在命中的情况下。Snoop过滤器条目通过观察来自ACE主节点的事务来维护以确定何时必须分配和取消分配条目。

侦听过滤器可以响应多个一致性请求,而无需向所有人广播ACE接口。例如,如果地址不在任何缓存中,则监听过滤器会以未命中和将请求定向到内存。如果地址在处理器缓存中,则请求被视为命中,并且指向在其缓存中包含该地址的ACE端口。

image.png

图11

image.png
图12

七 经典示例框图

image.png
图13

作者:baron
文章来源:Arm精选

推荐阅读

image.png

欢迎关注ARM精选专栏, 欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
9462
内容数
207
以易懂、渐进、有序的方式,深入探讨ARMv8/ARMv9架构的核心概念。我们将从基础知识开始,逐步深入,覆盖最新的架构,不再纠缠于过时技术。本系列内容包含但不限于ARM基础、SOC芯片基础、Trustzone、gic、异常和中断、AMBA、Cache、MMU等内容,并将持续更新。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息