CXL协议之FM(Fabric Management)解释

news2025/3/23 4:48:19

CXL协议中的FM功能详解

1. FM的核心作用

FM是CXL(Compute Express Link)架构中的核心管理实体,负责协调和管理CXL设备之间的通信、资源分配及拓扑结构。其核心功能包括:

设备发现与枚举:识别CXL拓扑中的设备(如Type 3设备、交换机等),并建立虚拟到物理的绑定关系(Virtual to Physical Binding)。
命令传递与响应处理:通过MCTP(Management Component Transport Protocol)接口直接或间接(通过交换机隧道)向CXL设备发送管理命令(如Set MCTP Event Interrupt Policy),并处理设备返回的响应或事件通知(Event Notification)。
资源池化管理:例如Type 3池化设备(Pooled PCIe/CXL Device)的逻辑设备(LD)和物理端口(PHY PORT)的动态分配,支持灵活的资源扩展与共享。

2. FM与CXL设备的通信机制

直接连接场景:
FM通过MCTP兼容的物理接口(如SMBus、PCIe VDM)直接与CXL设备通信。例如,通过PCIe根端口(Root Port)直接访问下游设备的CCI(Component Control Interface)。
在这里插入图片描述

示例:FM向CXL设备发送配置周期(Config Cycles)或内存访问请求,设备直接响应。
间接连接(隧道管理)场景:
当FM与目标设备之间存在CXL交换机时,FM通过Tunnel Management Command将命令封装并发送至交换机,指定目标设备的交换机端口(如PHY PORT 2)。交换机代理转发命令,并将响应返回给FM。
关键能力:交换机可代理FM执行配置操作(如代理配置周期、内存读写),简化FM对多层级拓扑的管理复杂度。

3. 事件通知机制

触发条件:当CXL组件支持事件通知且FM通过Set MCTP Event Interrupt Policy命令启用时,组件可主动向FM发送事件(如错误告警、状态变更)。
实现细节:事件通过MCTP消息传递,FM需解析事件类型(如SLD/MLD状态更新、物理端口链路变化)并采取相应管理动作。

4. FM的部署模式

独立FM:作为外部管理实体(如BMC的一部分),通过MCTP端点(MCTP EP)与CXL设备交互。
嵌入式FM:部分FM功能可内置于CXL组件(如交换机或设备固件),但其与硬件的通信接口属于厂商自定义实现,不在CXL规范范围内。

5. 示例拓扑解析(图7-18)

层级结构:
VCS 0/VCS 1:虚拟化上下文(Virtual Context)划分,支持多租户资源隔离。
逻辑设备(LD)与物理端口(PHY PORT):LD FFFF可能表示全局管理域,LD 0/LD 1为具体逻辑分区,通过vPPB(虚拟端口到物理端口绑定)映射到物理端口(如PHY PORT 0-4)。
交换机角色:CXL交换机负责跨端口(如Port 0-1与Port 2-5)的路由与隧道命令转发。

6. 关键协议与命令

Set MCTP Event Interrupt Policy:配置设备的事件通知策略(如使能/禁用特定事件类型)。
Tunnel Management Command:通过交换机隧道转发管理命令,需指定目标端口和操作类型(如配置代理、内存访问)。

总结

FM在CXL生态中扮演“中枢控制器”角色,通过标准化的MCTP接口和隧道机制,实现对复杂CXL拓扑(含交换机、池化设备)的统一管理。其设计兼顾了直接连接的效率与间接连接的灵活性,同时支持事件驱动的异步管理模型,为高性能计算与资源池化场景提供了关键基础设施支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2319077.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity URP 实现场景和UI添加后处理

在更新到URP之后,之前内置的渲染管线的那一套后处理已经无法使用,接下来,我们使用URP的内置后处理实现对场景和UI的后处理。 设置UI 如果UI需要使用后处理,在Canvas里,我们要选择Screen Space - Camera,然…

搭建ISCSI传输的配置与管理

前提是: windows server2019设置成桥接模式,因为要让虚拟机和主机设置成一个网段,才能通过网络进行新建虚拟磁盘。 1.添加ISCSI角色 安装位置 选择文件和存储服务----------文件和iscsl 服务------------iscsl目标服务器 2.右上角点击任务&a…

Java 设计模式之享元模式(Flyweight Pattern)

享元模式(Flyweight Pattern) 是一种 结构型设计模式,旨在通过共享对象来有效支持大量细粒度对象的复用,从而减少内存占用和提高性能。其核心是 分离内部状态(可共享)与外部状态(不可共享&#…

C#入门学习记录(三)C#中的隐式和显示转换

C#类型转换:隐式与显式转换的机制与应用 在C#的强类型体系中,数据类型转换是实现数据交互和算法逻辑的基础操作。当数值类型范围存在包含关系,或对象类型存在继承层次时,系统通过预定义的转换规则实现类型兼容处理。隐式转换&…

Rk3568驱动开发_设备树_9

什么是设备树? 以我目前的理解,设备树更像日常生活中用的地图,用户能根据地图去寻找到相应位置 设备树也是如此它描述了硬件设备的连接关系和配置信息,供 CPU(或者更准确地说,是操作系统内核)…

深度学习:从零开始的DeepSeek-R1-Distill有监督微调训练实战(SFT)

原文链接:从零开始的DeepSeek微调训练实战(SFT) 微调参考示例:由unsloth官方提供https://colab.research.google.com/github/unslothai/notebooks/blob/main/nb/Qwen2.5_(7B)-Alpaca.ipynbhttps://colab.research.google.com/git…

【AI News | 20250320】每日AI进展

AI Repos 1、servers 该仓库提供详细入门指南,用户可通过简单步骤连接Claude客户端,快速使用所有服务器功能。此项目由Anthropic管理,展示MCP的多样性与扩展性,助力开发者为大语言模型提供安全、可控的工具与数据访问。 2、awe…

从零开始实现 C++ TinyWebServer 阻塞队列 BlockQueue类详解

文章目录 阻塞队列是什么?为什么需要阻塞队列?BlockQueue 成员变量实现 push() 函数实现 pop() 函数实现 close() 函数BlockQueue 代码BlockQueue 测试 从零开始实现 C TinyWebServer 项目总览 项目源码 阻塞队列是什么? 阻塞队列是一种线程…

Linux驱动开发基础(can)

目录 1.can的介绍 2.can的硬件连接 2.1 CPU自带can控制器 2.2 CPU没有can控制器 3.电气属性 4.can的特点 5.can协议 5.1 can的种类 5.2 数据帧 5.2.1 标准数据帧格式 5.3.1 扩展数据帧格式 5.3 遥控帧 5.4 错误帧 5.5 过载帧 5.6 帧间隔 5.7 位填充 5.8 位时…

leetcode热题100道——字母异位词分组

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs ["eat", "tea", "tan", "ate", "nat", &…

MCU-芯片时钟与总线和定时器关系,举例QSPI

时钟源: 时钟源为系统时钟提供原始频率信号,系统时钟则通过(分频、倍频、选择器)成为整个芯片的“主时钟”,驱动 CPU 内核、总线(AHB、APB)及外设的运行。 内部时钟源: HSI&#x…

技术分享 | MySQL内存使用率高问题排查

本文为墨天轮数据库管理服务团队第51期技术分享,内容原创,如需转载请联系小墨(VX:modb666)并注明来源。 一、问题现象 问题实例mysql进程实际内存使用率过高 二、问题排查 2.1 参数检查 mysql版本 :8.0.…

分享一个精灵图生成和拆分的实现

概述 精灵图(Sprite)是一种将多个小图像合并到单个图像文件中的技术,广泛应用于网页开发、游戏开发和UI设计中。在MapboxGL中,跟之配套的还有一个json文件用来记录图标的大小和位置。本文分享基于Node和sharp库实现精灵图的合并与…

函数:形参和实参

在函数的使用过程中分为实参和形参,实参是主函数实际调用的值而形参则是给实参调用的值,如果函数没被调用则函式不会向内存申请空间,先用一段代码演示 形参: int test(int x ,int y ) {int z 0;z x y;return z; } 为何会叫做…

【C#知识点详解】ExcelDataReader介绍

今天来给大家介绍一下ExcelDataReader,ExcelDataReader是一个轻量级的可快速读取Excel文件中数据的工具。话不多说直接开始。 ExcelDataReader简介 ExcelDataReader支持.xlsx、.xlsb、.xls、.csv格式文件的读取,版本基本在2007及以上版本,支…

《视觉SLAM十四讲》ch13 设计SLAM系统 相机轨迹实现

前言 相信大家在slam学习中,一定会遇到slam系统的性能评估问题。虽然有EVO这样的开源评估工具,我们也需要自己了解系统生成的trajectory.txt的含义,方便我们更好的理解相机的运行跟踪过程。 项目配置如下: 数据解读: …

在类Unix终端中如何实现快速进入新建目录

🚪 前言 相信喜欢使用终端工作的小伙伴或多或少会被一个小地方给膈应,那就是每次想要新建一个文件夹并且进入之,那么就需要两条指令:mkdir DIR和cd DIR,有些人可能要杠了,我一条指令也能,mkdir…

TG电报群管理机器人定制开发的重要性

在Telegram(电报)用户突破20亿、中文社群规模持续扩张的背景下,定制化群管理机器人的开发已成为社群运营的战略刚需。这种技术工具不仅解决了海量用户管理的效率难题,更通过智能化功能重构了数字社群的治理范式。本文从管理效能、…

VNA操作使用学习-01 界面说明

以我手里面的liteVNA为例。也可以参考其他的nanoVNA的操作说明。我先了解一下具体的菜单意思。 今天我想做一个天调,居然发现我连一颗基本的50欧姆插件电阻和50欧姆的smt电阻的幅频特性都没有去测试过,那买来这个nva有什么用途呢,束之高阁求…

耘想Docker版Linux NAS的安装说明

耘想LinNAS(Linux NAS)可以通过Docker部署,支持x86和arm64两种硬件架构。下面讲解LinNAS的部署过程。 1. 安装Docker CentOS系统:yum install docker –y Ubuntu系统:apt install docker.io –y 2. 下载LinNas镜像…