• 正文
  • 相关推荐
申请入驻 产业图谱

CMN-700一致性片上网络介绍

07/23 11:28
6388
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

ARM的CMN-700 IP全称为Coherent Mesh Network,是一种一致性片上网络,是CHI一致性协议的可定制化的mesh拓扑。

CMN700可以互联1~256个处理器,支持AMBA CHI Issue E协议,同时兼容CHI Issue B/C/D。CMN700还支持CXL.mem功能,兼容CXL revision 2。

下图是一个3×4配置(3列4行)的CMN拓扑图,接下来主要介绍一下CMN网络里的各个组件(Component)。

Crosspoint(XP)

Crosspoint(XP)是一个Switch或路由逻辑的模块,也叫MXP(Mesh XP)。CMN-700网络是基于一系列的XP模块构建的。XP模块以二维矩形网格拓扑结构进行排列。
每个XP可以使用mesh端口最多连接到四个相邻的XP,如下图。此外,XP还有一些设备端口,用于连接设备。图中虚线为mesh端口,实线为设备端口。

根据配置,每个XP最多可以有四个设备端口(P0/P1/P2/P3)。

  • XP with 4 mesh ports:支持2个设备端口。
  • XP on the edge of the mesh with 3 mesh ports:支持3个设备端口。
  • XP on the corner of the mesh with 2 mesh ports:支持4个设备端口。

每个XP支持四个CHI通道,用于传输CHI事务:

  • Request (REQ)
  • Response (RSP)
  • Snoop (SNP)
  • Data (DAT)

CMN-700最大支持144个XP,即12×12网格。网格中的每个XP都使用(X、Y)坐标。(0,0)表示左下角,(11,11)表示右上角。XP的X坐标和Y坐标也分别叫做XID和YID。

RN-I和RN-D

RN-I(I/O coherent Request Node)是支持I/O一致性的请求节点,用于连接I/O一致性的master设备,例如加速器设备等。

RNI本质上是一个转换桥,实现ACE-Lite协议到CHI协议的转换。RNI包括三个ACE-Lite或ACE-Lite-with-DVM从接口。

RNI桥只能作为不包含硬件一致性cache的master代理。CMN没有向RN-I发出snoop事务的能力,所以叫做IO一致性,而不是fully一致性。

RND是DVM Request Node,比RNI多了一个功能:可以接收DVM message。

RN-F

RN-F(Fully coherent Request Node)是支持完整的cache一致性的请求节点。RN-F一般就是CPU core,其内部拥有一致性cache,通过CHI的RN‑F端口直接连到CMN上。

HN-F

HN-F(Fully coherent Home Node)是全一致性的Home节点,负责管理部分地址空间、维护cache一致性。HNF节点包括以下内容:

1. 系统级缓存(System Level Cache)

System Level Cache(SLC)是最后一级缓存。SLC分配策略对于数据line是独占的,所有的code line都可以根据初始请求分配到SLC中。当使能MTE时,SLC将存储data和tag。

2. PoS和PoC

PoS全称是Point-of-Serialization(串行点),PoC全称是Point-of-Coherency(一致性点)。

PoS和PoC负责对发送到HNF的所有内存请求进行保序处理序。

  • PoS是负责保证来自不同agent的请求的顺序;
  • PoC是负责维护缓存一致性(cache coherence),即同一个地址的数据在不同的cache和内存之间的一致性。

3. Snoop Filter(SF)

Snoop Filter用来记录RNF中存在的cacheline。通过精确的直接snoop而非广播snoop,可以显著减少系统中的snoop流量,但是会占用较多的面积。

系统中的每个HNF配置为管理整个地址空间的特定部分(由SAM映射决定)。整个DRAM空间是通过系统中的所有的HNF来管理的。

HN-I/HN-T/HN-D/HN-V

HN-I(I/O coherent Home Node)是I/O一致性的Home节点,用于连接ACE slave设备。HN-I作为CMN-700的所有RN的代理,将CHI协议转换为ACE5-Lite协议。HNI支持对Arm device类型的保序。

HNI不支持对读取或写入到下游ACE5-Lite slave子系统的任何数据的缓存。发送到HNI的任何cacheable请求,都不会导致HNI发送snoop请求给系统中的RNF。cacheable请求会被转换为适当的ACE5-Lite读或写命令,并发送到下游的ACE5-Lite子系统。

  • HNV:HNI+DVM node。
  • HNT:HNI+DTC+DVM node。
  • HND:HNI + DTC + DVM node + configuration node。

HN-P

HN-P(I/O coherent Home Node with PCIe optimization):PCIe优化的I/O一致性Home节点,它包含了HNI功能和用于PCIe P2P(peer-to-peer)传输的专用tracker。HNP只能用于连接PCIe subordinate。

SBSX

SBSX是一个AMBA 5 CHI到ACE5-Lite桥,相当于是一个SNF,可以用于连接ACE5-Lite slave设备,如CoreLink DMC-400动态内存控制器

CML

CML(Coherent Multichip Link):一致性多芯片链路,可以在CMN 700中实现多芯片互联。CML可用于:

  • SMP(CML_SMP)连接
  • CXL设备连接

CML设备(CCG)可以配置用于CML_SMP连接或CXL设备连接。对于CML_SMP连接,必须在CCG中包含一个RNI,以加快PCIe对remote内存的访问。

配置节点(CFG)

CFG(configuration node):与HND节点放在一起,负责CMN-700的配置、控制和监控功能。(HND比HNI多了DTC、DVM node和配置节点,CMN-700里必须有一个HND。)

CFG执行以下功能:配置访问、错误报告、中断生成。

CFG包括以下元素:

  • 从CMN 700组件中收集错误信号的端口。
  • 连接到所有节点的配置总线,处理内部配置寄存器的读写。
  • 用于配置访问的专用APB接口。

CFG没有一个专用的CHI端口,它与HND节点共享一个设备端口。

Power/Clock Control Block

PCCB(Power/Clock Control Block):电源/时钟控制模块,位于HND节点内,提供单独的通信通道。这些通道用来传输电源和时钟管理的信息。

PCCB作为一个聚合器,通过以下方式在SoC和其他CMN-700组件之间传递信息:

  1. PCCB从其他相关的CMN-700组件接收事务activity指示信号,并将该信息传递给外部电源和时钟控制单元。
  2. PCCB从外部电源或时钟控制单元接收电源或时钟控制管理请求。并将该请求传递给相关的CMN-700组件。
  3. PCCB等待来自相关CMN-700组件的响应,并向外部电源和时钟控制单元传递聚合响应。

PCCB没有专用的CHI端,它与HND共享一个设备端口。

SAM

SAM(System Address Map):系统地址映射,所有CHI命令都必须包含一个完全解析的地址。地址必须包含源和目标ID(target ID)。目标ID是通过SAM映射来获取的,SAM可以将内存或I/O地址映射到目标设备。

每个发请求的设备都需要使用SAM功能。SAM包括以下两个逻辑单元:

RN SAM:允许每个RN将地址映射到HNF、HN-I、HN-D、HN-T、HN-P、HN-V和CCG的target ID。RN SAM支持生成内存控制器的target ID,用于RN直接向内存控制器发出预取(PrefetchTarget)操作。

HN-F SAM and MC SAM:将地址映射到内存控制器目标ID。

DTC

DTC(Debug and Trace Controller)控制着DTM(Debug and Trace Monitor),并通过ATB接口生成带有时间戳的trace。DTC是位于HND和HNT里,DTM一般是位于XP里面。

DTC执行以下功能:

  • 产生事件(event)或PMU中断
  • 接收来自DTM的数据包,并打包成ATB格式的trace包
  • 使用SoC计时器输入的时间戳进行trace
  • 生成对齐同步ATB trcae输出
  • 处理ATB flush请求
  • 处理debug和安全debug外部请求
  • 提供分布式的和中央的PMU计数器的一致视图
  • 处理PMU快照(snapshot)请求
  • 在PMU计数器溢出时生成中断INTREQPMU

CAL

CAL(Component Aggregation Layer):允许多个设备连接到XP上的单个设备端口。

CMN提供多种类型的CAL:

  • CAL2:连接2个相同的设备。
  • CAL4:连接4个相同的设备。
  • HCAL2:连接2个不同类型的设备。

Credited Slice

可以在CMN-700系统中配置一些可选的credited register slice,用于帮助时序收敛。

CMN包括以下Credited Slices:

  • Mesh Credited Slice:放置在XP之间。
  • Async Mesh Credited Slice:放置在不同时钟域的XP之间。
  • Device Credited Slice:放置在设备与CAL,或者设备与XP之间。
  • CAL Credited Slice:放置在XP与CAL之间。
  • HCAL Credited Slice:放置在XP与HCAL之间。

ADB、CDB、CXSDB

ADB(AMBA Domain Bridge):用于两个AMBA总线(AXI, ACE5-Lite, oACE5-Lite-with-DVM)接口处于不同的时钟域、电源/电压域。

CDB(CHI Domain Bridge):用于两个CHI总线接口处于不同的时钟域、电源/电压域。

CXSDB(CXS Domain Bridge):用于两个CXS接口处于不同的时钟域、电源/电压域。

参考:

Arm Neoverse CMN‑700 Coherent Mesh Network TRM (r3p2)

Arm

Arm

ARM公司是一家知识产权(IP)供应商,主要为国际上其他的电子公司提供高性能RISC处理器、外设和系统芯片技术授权。目前,ARM公司的处理器内核已经成为便携通讯、手持计算设备、多媒体数字消费品等方案的RISC标准。公司1990年11月由Acorn、Apple和VLSI合并而成。

ARM公司是一家知识产权(IP)供应商,主要为国际上其他的电子公司提供高性能RISC处理器、外设和系统芯片技术授权。目前,ARM公司的处理器内核已经成为便携通讯、手持计算设备、多媒体数字消费品等方案的RISC标准。公司1990年11月由Acorn、Apple和VLSI合并而成。收起

查看更多

相关推荐