A53 cache的架构解读

2024-04-04 14:44
文章标签 解读 架构 cache a53

本文主要是介绍A53 cache的架构解读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

快速链接:

  • 【精选】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、安全、内存管理、页表…

快速链接:
.
👉👉👉 个人博客笔记导读目录(全部) 👈👈👈

  • ARMv8/ARMv9架构精选系列–目录 👈👈👈
  • ARMV8/ARMV9/Trustzone/TEE安全课程👈👈👈

目录

        • 1. A53使用经典的 `bit-LITTLE`架构
        • 2. A53的cache配置
        • 3. cache的层级结构:
        • 4. L2 memory System系统介绍
        • 5. 多cluster之间的缓存一致性
        • 6. CCI的介绍(以CCI-550为例)
        • 7. 经典示例框图

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交流讨论区。

1138106487-65f6cf311889c.png

这篇关于A53 cache的架构解读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/876063

相关文章

使用Spring Cache本地缓存示例代码

《使用SpringCache本地缓存示例代码》缓存是提高应用程序性能的重要手段,通过将频繁访问的数据存储在内存中,可以减少数据库访问次数,从而加速数据读取,:本文主要介绍使用SpringCac... 目录一、Spring Cache简介核心特点:二、基础配置1. 添加依赖2. 启用缓存3. 缓存配置方案方案

C语言自定义类型之联合和枚举解读

《C语言自定义类型之联合和枚举解读》联合体共享内存,大小由最大成员决定,遵循对齐规则;枚举类型列举可能值,提升可读性和类型安全性,两者在C语言中用于优化内存和程序效率... 目录一、联合体1.1 联合体类型的声明1.2 联合体的特点1.2.1 特点11.2.2 特点21.2.3 特点31.3 联合体的大小1

Python标准库datetime模块日期和时间数据类型解读

《Python标准库datetime模块日期和时间数据类型解读》文章介绍Python中datetime模块的date、time、datetime类,用于处理日期、时间及日期时间结合体,通过属性获取时间... 目录Datetime常用类日期date类型使用时间 time 类型使用日期和时间的结合体–日期时间(

C语言中%zu的用法解读

《C语言中%zu的用法解读》size_t是无符号整数类型,用于表示对象大小或内存操作结果,%zu是C99标准中专为size_t设计的printf占位符,避免因类型不匹配导致错误,使用%u或%d可能引发... 目录size_t 类型与 %zu 占位符%zu 的用途替代占位符的风险兼容性说明其他相关占位符验证示

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

解读GC日志中的各项指标用法

《解读GC日志中的各项指标用法》:本文主要介绍GC日志中的各项指标用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基础 GC 日志格式(以 G1 为例)1. Minor GC 日志2. Full GC 日志二、关键指标解析1. GC 类型与触发原因2. 堆

Java设计模式---迭代器模式(Iterator)解读

《Java设计模式---迭代器模式(Iterator)解读》:本文主要介绍Java设计模式---迭代器模式(Iterator),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录1、迭代器(Iterator)1.1、结构1.2、常用方法1.3、本质1、解耦集合与遍历逻辑2、统一

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

MySQL之InnoDB存储页的独立表空间解读

《MySQL之InnoDB存储页的独立表空间解读》:本文主要介绍MySQL之InnoDB存储页的独立表空间,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、独立表空间【1】表空间大小【2】区【3】组【4】段【5】区的类型【6】XDES Entry区结构【