7.7.2.1 G - FAM概述
- G - FAM是一种高度可扩展的内存资源,CXL 架构内所有主机和对等设备都可访问。其范围可专门分配给单个主机 / 对等请求者,也可由多个主机 / 对等方共享。共享时,多请求者缓存一致性可由软件或硬件管理。对 G - FAM 范围的访问权限由请求者边缘端口的解码器和目标 GFD 强制实施。
- GFD HDM 空间:主机 / 对等方可通过 CXL.mem 从多个域访问,对等设备可通过 CXL.io UIO 从多个域访问。GFD(Generic Fabric Device 通用结构设备) 不实现 PCIe 配置空间,而是通过边缘 USPs 中的全局内存访问端点(GAE)或带外机制进行配置和管理。
- GFD 与 MLD 区别:MLD 为每个主机 / 对等接口(LD)有单独的设备物理地址(DPA)空间,而 GFD 有一个对所有主机和对等设备通用的 DPA 空间。GFD 使用存储在 GFD 解码器表中的请求前转换信息,将每个传入请求中的主机物理地址(HPA)转换为 DPA。为创建共享内存,可将两个或更多 HPA 范围(来自不同请求者)映射到相同 DPA 范围。当 GFD 需要发出 BISnp (back - invalidator snoop )时,会使用相同的 GFD 解码器信息将 DPA 转换为关联主机的 HPA。
- 请求处理:GFD 通过请求中的 SPID 识别请求者,称为请求者 PID 或 RPID ,这在描述 GFD 发送给请求者的消息时可避免混淆。
- 内存管理机制:GFD 上的所有内存容量都由动态容量(DC)机制管理。每个请求者最多可访问 8 个不重叠的 RPID(Requester PID,请求者 PID) 解码器,每个 SPID 的最大解码器数量取决于具体实现。每个解码器有从 HPA 空间到通用 DPA 空间的转换,还标记了缓存一致性维护方式(软件或硬件),以及多 GFD 交错信息(若使用)。请求者可通过 FM 在 DPA 空间定义 DC 区域,并将信息传达给主机上的 GAE,以映射主机程序访问所需的 DC 区域。
- G - FAM 内存范围交错:G - FAM 内存范围可以在 2 到 256 个 GFD 间交错,交错粒度有 256B、512B、1KB、2KB、4KB、8KB 或 16KB。位于 CXL 架构内任何位置的 GFD 都可为交错集提供内存。
- UIO 相关支持:如果 GFD 支持 UIO Direct P2P 到 HDM,所有 GFD 端口都应支持 UIO。对于每个其链路伙伴也支持 UIO 的 GFD 端口,应自动启用 VC3 。
-
7.7.2.2 host物理地址视图
- 地址范围分配:主机访问 G - FAM,需在主机物理地址(HPA)空间内,分配一段连续的结构地址空间,该空间范围由 FabricBase 和 FabricLimit 寄存器确定。处于此范围内的主机请求,会被路由到选定的 CXL 端口。多 CXL 端口访问 G - FAM 的主机,可选择交错请求地址,或为每个端口单独分配结构地址空间。
- 地址分段处理:主机发往 G - FAM 的请求会流向 PBR Edge USP。在 USP 中,结构地址范围被划分为 N 个等大的段,段大小是 2 的幂次方,介于 64GB 到 8TB 之间,且需自然对齐。交换机实现的段数量因具体情况而异。主机软件要配置段大小,保证段数与段大小的乘积能覆盖整个结构地址空间,FabricBase 和 FabricLimit 寄存器能按段大小倍数编程。
- 段与设备关联及请求路由:每个段关联一个 GFD 或一组交错的 GFD。HPA 在段内的请求,会被路由到指定 GFD 或交错集中的 GFD。段仅用于请求路由,可能比 GFD 可访问部分大。此时,GFD 可访问部分从段内地址偏移 0 开始,段内超出 GFD 可访问部分的请求,在 GFD 中无法正确解码,按 8.2.4.20 节处理。
- 交错关系:主机跨根端口交错和 GFD 交错相互独

最低0.47元/天 解锁文章
5501

被折叠的 条评论
为什么被折叠?



