本章介绍CMN-700,这是用于AMBA®5 CHI互连,且可根据需要定制的网格拓扑结构。
1. 关于CMN‐700
CMN‐700是一种可配置扩展的一致性互连网络,旨在满足高端网络和企业计算应用中使用的一致性网络系统的功率、性能和面积(PPA)要求。支持1-256个处理节点。下图是一个2X2的简单Mesh网络示意:
CMN‐700使用Arm® SocratesTM(ARM的IP管理平台)平台进行配置,支持:
- 自定义互连网络的大小和设备连接位置。
- 可选的System Level Cache (SLC)
CMN‐700 支持CHI-E,包括以下features:
- MakeReadUnique,支持不带data的写0操作
- 增强的独占事务。(支持8种独占事务)
- 多种优化和增强的事务 (越来越复杂)
- 支持多接口设备的连接
- 与具有复制通道的设备连接(通道复制)
- 扩展的TxnID和GroupID
- 分布式虚拟内存(DVM)功能
- 内存标签MTE功能Memory Tagging Extension
CMN‐700通过以下功能提供系统级的功能对齐校准:
- Quality of Service (QoS)
- Reliability, Availability, and Serviceability (RAS)
- Debug and Trace (DT)
CMN‐700兼容以下IP:
- Dynamic Memory Controller (DMC)——内存控制,管理DDR
- Generic Interrupt Controller (GIC)——中断控制,管理各种中断
- Memory Management Unit (MMU)——内存管理,管理虚拟地址的映射
- Interconnects such as the Arm® CoreLinkTM NIC-450 Network Interconnect——ARM其他互连网络
- Armv8.2, Armv8.4, and Armv9.0 processors——处理器core
CMN‐700提供可选的Coherent Multichip Link (CML)功能,CML兼容:
- CXL2.0
- SMP connection
下表显示了使用CMN‐700构建的系统可以包含的协议节点和设备:
各节点介绍,详见:【CMN】Components组件汇总_cmn ccg-CSDN博客
2. Compliance
1. CMN‐700支持CHI-E,且向后兼容,主要包括以下架构功能:
- 全兼容的 CHI互连架构
- 非阻塞的一致性协议
- 基于packet包的通信
- 4种类型的channels:
——Request (REQ)
——Response (RSP)
——Snoop (SNP)
——Data (DAT)
- 使用端到端的信用证机制进行协议层流控,以及retry机制去实现灵活的带宽和资源分配。
2. CXL architecture
CMN‐700 支持CXL.mem (Type3),符合CXL 2.0规范。
3. 功能特性
CMN‐700提供以下的主要功能特性:
- 最大支持12x12网络
- 自定义网络大小和设备位置
- 可配置的系统地址映射表SAM
- 高达256个RNF接口,用于连接基于CHI协议的处理单元(包括计算集群,加速器,图形处理器等)
- 可以通过CAL去扩展连接设备。
- 支持64 个SN 接口,如果使用CAL扩展,支持到128
- 支持90个RNI,每个端口最多三个ACE5‐Lite端口(总共270个)
注:可以使用多级互连网络系统来支持更多设备,如NIC-450接到CMN-700。
- 支持单或双RSP、REQ、SNP和256位DAT通道配置。
- 可选支持指定源-目标对之间的non-XY路由算法。(默认XY路由)
- 最大物理地址(PA)宽度为52位
- Masters之间的DVM消息传输
- 用于流量整形的QoS规则
- PMU对相应触发事件计数
- 高性能的分布式SLC和支持128RNF记录的Snoop Filter (SF)
- 支持48个HNI,(包括 HN‐T, HN‐V, HN‐P, HN‐D),各包含一个ACE-Lite master接口。
- 支持CHI Memory Tagging Enhancements (MTE)
- 支持:中心的MXP支持4个device,边沿的MXP支持3个device
- On-Chip Memory (OCM) 支持使用片上内存(不使用DDR)来创建CMN-700系统
- 支持32个CCG:CCG设备支持CML_SMP或CXL2.0,并具有512位CXS-B接口◦
- 支持基于地址的内存冲刷Address Based Flush (ABF),flush SLC/SF。
- 基于请求者的way locking,锁定后,这些way只能用于该请求者。
4. 接口
后文将逐步介绍CMN的各个功能。