当前位置: 首页 > news >正文

CXL3.0 CDAT(Coherent Device Attributes Table)

前言:

在说明CDAT之前,先讲一下CXL中的DOE类型:
CXL协议里定义了两种DOE的类型,一种是Compliance就是合规性测试的内容,还有一种就是CDAT(一致性属性表)

在这里插入图片描述

Read Entry:

从设备或Switch内的指定表中读取指定条目。对于 CXL,表类型始终为 CDAT。如果 DVSEC CXL Capability 中的 HDM_Count 字段为 01b,则仅当 DVSEC CXL Range 1 Size Low(参见第 8.1.3.8.2 节)中的 Memory_Info_Valid 标志为 1 时,CDAT 内容才有效。如果 DVSEC CXL Capability 中的 HDM_Count 字段为 10b,则仅当 DVSEC CXL Range 1 Size Low 和 DVSEC CXL Range 2 Size Low(参见第 8.1.3.8.6 节)中的 Memory_Info_Valid 标志均为 1 时,CDAT 内容才有效。(Memory_Info_Valid标志位必须为1才能使CDAT内容有效,其根本原因在于确保设备的内存配置已正确完成,避免主机读取到未初始化或不一致的设备属性信息。)

拓展:

功能定义:

Memory_Info_Valid是CXL设备的内存配置完成标志,位于DVSEC(Designated Vendor-Specific Extended Capability)的CXL Range X Size Low寄存器中(X为1或2)。
○ 当该标志置1时,表示设备对应的内存范围(Range)配置寄存器(如Size High和Size Low)中的值已生效。
○ 若未置1,则这些寄存器的值可能未完成初始化或不可靠。(如下图)
在这里插入图片描述

协议要求:

设备必须在复位解除后1秒内将该标志置1,否则视为配置超时错误。这是为了确保主机不会因等待设备初始化而阻塞系统启动流程。

CXL 3.0协议中的**CDAT(Coherent Device Attributes Table,一致性设备属性表)和通过DOE(Data Object Exchange,数据对象交换机制)**读取CDAT的功能及作用如下:

CDAT的核心功能

1. 暴露设备/交换机的性能属性

CDAT是CXL设备(如内存扩展卡、加速器)或交换机(Switch)向主机(Host)公开其关键性能参数和拓扑结构的标准化数据结构,包含以下信息:
○ 延迟特性(Latency):设备访问或传输数据的延迟参数。
○ 带宽特性(Bandwidth):各接口或链路的可用带宽。
○ 缓存一致性域信息:多设备共享内存时的缓存一致性配置。
○ NUMA拓扑(非一致性内存访问):标识设备在系统中的物理位置,帮助优化内存访问路径。
○ 设备能力(如支持的内存类型、协议版本等)。

2. 动态配置与兼容性

CDAT是CXL生态系统兼容性的基础,确保不同厂商设备能通过统一接口向主机报告属性,使主机无需依赖设备特定驱动即可优化资源分配。

通过DOE读取CDAT的作用

1. 按需获取设备信息

DOE的Table Access机制允许主机通过PCIe协议逐条读取CDAT条目(而非一次性读取全表),适用于:
○ 资源受限的环境(如启动阶段避免大块数据传输)。
○ 逐步验证设备配置的有效性。

2. 支持动态更新与热事件

○ 内容变更通知:当设备属性变化(如链路带宽调整、热插拔事件),设备可通过关联的MSI中断通知主机,触发CDAT重新读取。
○ 热重置逻辑设备:通过LD-ID Hot Reset Vector字段,主机可触发指定逻辑设备(LD)的热重置,结合CDAT更新实现动态重构。

3. 确保内存配置有效性

CDAT的有效性与设备的内存配置状态绑定:
○ 若设备支持单/双HDM(Host-Managed Device Memory),需通过HDM_Count和Memory_Info_Valid标志位确认内存区域初始化完成,否则CDAT内容无效。
○ 这种设计避免主机在设备内存未就绪时使用错误参数(如未初始化的NUMA节点)。

4. 共享与扩展性

○ DOE邮箱可共享于多个数据对象(如同时支持CDAT和其他厂商自定义对象),减少硬件资源占用。
○ 通过DVSEC ID和Data Object Type标准化标识(如Vendor ID 1E98h,类型02h),兼容未来CXL扩展。

相关文章:

  • VMware虚拟机Ubuntu磁盘扩容
  • 博途 TIA Portal之1200做从站与汇川EASY的TCP通讯
  • windows10系统下找不到microbit指南方案
  • XSS 防御转义规则笔记
  • Unity6下架中国区,团结引擎接棒:这是分裂,还是本地化的开始?
  • 关于深度学习局部视野与全局视野的一些思考
  • 网关与路由器知识点
  • Navicat分组、查询分享
  • 人工智能训练师-个人学习记录
  • OpenCV 图形API(30)图像滤波-----腐蚀操作函数erode()
  • Linux——进程替换(exec)
  • Python----概率论与统计(随机变量,离散概率分布,连续概率分布,期望,方差,标准差,多维随机变量)
  • 通付盾风控智能体(RiskAgent): 神烦狗(DOGE)
  • OpenCV 表情识别
  • AI Agent开发大全第二十五课-用本地模型iopaint开发一个超酷的AI图片处理Agent(下)
  • Redis 字符串(String)详解
  • Android studio2024的第一个安卓项目
  • 使用Python建立双缝干涉模型
  • Linux:shell运行原理+权限
  • hutool日期转换
  • 中国做外贸网站有哪些问题/如何在网上推广自己
  • wordpress插入视频/全网关键词优化公司哪家好
  • 简单网站建设软件有哪些/接推广怎么收费
  • 肇庆微网站/网站快速收录技术
  • 北京网站制作/安卓系统优化软件
  • 做网站如何与网络公司沟通/抖音怎么推广引流