
1. CMN-650 CCIX架构概述Arm Neoverse CMN-650的CCIX实现基于三个核心网关模块CXRACCIX Request Agent、CXHACCIX Home Agent和CXLACCIX Link Agent。这种架构设计允许在保持低延迟的同时实现跨多芯片的缓存一致性。在实际部署中我们通常需要配置2-4个CXGCCIX Gateway模块来满足不同场景的带宽需求。关键提示在启用CXSACCIX Slave Agent模式时部分配置步骤可以跳过这能显著简化初始化流程。但需要注意CXSA模式仅适用于单向通信场景。CCIX协议栈在CMN-650中通过PCIe物理层扩展实现其关键性能指标包括单链路理论带宽16GT/sGen4或32GT/sGen5典型往返延迟100-150ns取决于拓扑距离最大支持缓存行大小256字节2. LDID分配与远程代理配置2.1 LDID分配原理LDIDLocal Device ID是CMN-650用于跟踪远程缓存代理RN-F的关键标识符。每个可能向HNHome Node发送请求的远程RN-F都必须分配唯一的LDID。这个设计主要服务于SFSnoop Filter的跟踪机制。在典型的双芯片系统中建议采用以下LDID分配策略芯片0LDID 0-31芯片1LDID 32-63 这种分配方式可以避免LDID冲突同时保留足够的扩展空间。2.2 具体配置步骤2.2.1 寄存器编程por_cxg_ha_rnf_exp_raid_to_ldid_reg 配置# 示例为远程RN-F分配LDID 32 mmio_write 0x20000000 0x20 # CXHA基址0x20000000写入0x20标记缓存代理属性设置ldidX_rnf位标识远程代理类型设置对应valid位使能配置HN-F节点ID映射 通过por_hnf_rn_clusterX_physid_regY寄存器设置remote_bit标识远程代理CPA_enable是否启用端口聚合CPA_group端口聚合组信息常见问题如果发现SF跟踪异常首先检查LDID是否与本地RN-F范围重叠。可以通过por_cxg_ra_rnf_ldid_to_ovrd_ldid_reg覆盖默认分配。3. SAM系统地址映射配置3.1 RA SAM编程RA SAMRemote Agent System Address Map负责将CCIX请求路由到正确的目标节点。每个CXRA都需要配置以下参数地址区域定义基地址Base Address区域大小Region Size目标HAIDHome Agent ID典型配置表示例寄存器偏移基地址大小HAIDValid0x10000x800000001GB0x1210x10100xC0000000512MB0x1513.2 RN SAM配置RN SAM需要与本地HN的内存映射保持一致。关键步骤包括编程每个CXHA中的RN SAM配置本地HN的地址范围设置内存属性缓存性、共享性等# 示例配置RN SAM地址区域 mmio_write 0x30004000 0x80000000 # 基地址 mmio_write 0x30004008 0x40000000 # 区域大小(1GB) mmio_write 0x30004010 0x00000001 # 使能位4. CCIX协议链路管理4.1 链路控制寄存器配置每个CCIX协议链路都需要独立配置信用分配。CMN-650支持灵活的信用分配策略基本配置# CXRA链路控制寄存器示例 mmio_write 0x40001000 0x0000000F # 启用链路并分配信用信用分配策略均分模式默认所有活跃链路平分信用自定义比例支持25%/75%、33%/33%/33%等分配方案性能提示对于非对称流量场景建议根据实际流量模式调整信用分配比例。例如GPU加速器场景可以给下行链路分配更多信用。4.2 链路状态管理链路状态转换遵循严格的状态机链路启动序列检查lnkX_link_en状态设置lnkX_link_req等待lnkX_link_ack确认lnkX_link_down清除设置lnkX_link_up链路关闭序列清除lnkX_link_req等待lnkX_link_ack清除确认lnkX_link_down置位清除lnkX_link_up5. CPA功能配置5.1 RN SAM中的CPA设置端口聚合CPA需要RN SAM和HN-F SAM协同配置启用CPA模式# 启用region0的CPA并设置组ID mmio_write 0x50003000 0x00000001 # region0_pag_en1, region0_pag_grpid0地址掩码配置# 设置CPA组0的地址掩码 mmio_write 0x50003040 0x0000FFFF # 使用PA[21:6]进行哈希CXG特性配置设置CPAG中的CXG数量num_cxg_pag 编程每个CXG的CHI节点ID5.2 HN-F SAM中的CPA配置HN-F SAM需要与RN SAM保持镜像配置物理ID寄存器设置nodeid_lid _ra 匹配RN SAM的pag_tgtid0remote_lid _ra 标识远程请求者cpa_grp_lid _ra 设置CPA组地址掩码同步 必须确保HN-F SAM的addr_mask与RN SAM完全一致。6. SLC内存系统专项配置6.1 HN-F基础参数设置CMN-650的SLC支持丰富的配置选项容量配置# 设置2MB SLC和4MB SF mmio_write 0x60000000 0x00022000 # SLC_SIZE2MB, SF_SIZE4MB延迟配置# 2周期tag RAM和3周期data RAM mmio_write 0x60000008 0x000001026.2 高级功能配置eLRU替换策略# 启用增强型LRU mmio_write 0x60000020 0x00000001内存区域锁定# 锁定way0-way3用于关键数据 mmio_write 0x60001000 0x0000000FTrustZone支持# 配置安全属性 mmio_write 0x60002000 0x00000001 # 启用NS比特检查7. 调试与性能优化7.1 常见问题排查CCIX链路无法建立检查物理层训练状态验证协议层credit分配确认两端LDID映射一致SLC命中率低调整eLRU偏置参数检查地址哈希分布考虑way locking优化热点数据7.2 性能调优建议信用分配优化# 非对称信用分配示例75%/25% mmio_write 0x40001004 0x1E000000 # link0 75%, link1 25%CPA哈希优化分析实际流量模式调整PA掩码避免哈希冲突建议使用PA[18:6]SLC QoS配置# 设置POCQ水位线 mmio_write 0x60003000 0x10204080 # 不同QoS类别的资源分配