内容简介
本书主要介绍CXL技术的相关内容,涵盖CXL基础知识、系统架构、产品简介、事务层、链路/物理层、交换技术、系统软件、FPGA应用开发等内容,全面介绍CXL技术及其在现代计算系统中的重要作用。
本书分4篇:第一篇(第1~4章)介绍CXL的起源以及相关基础知识;第二篇(第5~8章)介绍CXL的核心概念、协议、架构及设备管理等内容;第三篇(第9、10章)介绍系统软件,并从FPGA工程实践角度介绍CXL应用开发;第四篇(第11、12章)对CXL技术发展趋势进行展望。
本书适合对CXL技术感兴趣的研究人员、工程师、技术开发者,以及对高速互连技术感兴趣的学生和专业人士阅读,尤其适合驱动程序研发工程师、FPGA/芯片研发工程师和异构计算领域的研究人员参考。
目录
第 一篇 CXL概述
第 1章 CXL起源与发展 3
1.1 CXL的产生背景 3
1.1.1 新型应用需求飞速增长 3
1.1.2 多元化计算架构需求旺盛 4
1.1.3 PCIe鞭长莫及 4
1.2 相关互连协议的提出 6
1.3 CXL的提出与发展 7
1.4 CXL的应用场景 8
1.5 小结 9
第 2章 CXL基础知识 10
2.1 PCIe体系结构 10
2.1.1 PCIe架构 10
2.1.2 PCIe的层次结构 13
2.1.3 PCIe配置扩展 15
2.1.4 PCIe设备的初始化 19
2.2 缓存一致性 20
2.2.1 缓存一致性问题的诱因 20
2.2.2 MESI简介 21
2.3 小结 22
第3章 CXL系统架构 23
3.1 CXL互连架构简介 23
3.2 CXL子协议 24
3.2.1 CXL.io 24
3.2.2 CXL.cache 24
3.2.3 CXL.mem 26
3.3 CXL设备 27
3.3.1 Type 1设备 28
3.3.2 Type 2设备 28
3.3.3 Type 3设备 30
3.3.4 多逻辑设备 30
3.3.5 CXL设备扩展和CXL Fabric 30
3.4 CXL核心组件 31
3.4.1 Flex总线 31
3.4.2 Flit 33
3.4.3 DCOH 33
3.4.4 HDM 34
3.4.5 交换机 34
3.5 CXL总线层次结构总览 37
3.6 小结 38
第4章 CXL产品简介 39
4.1 CXL处理器 41
4.1.1 第四代英特尔至强可扩展处理器 41
4.1.2 AMD EPYC 9004处理器 41
4.2 内存 41
4.2.1 三星CMM-D 41
4.2.2 海力士CMM-DDR5 42
4.2.3 澜起科技CXL内存扩展控制器芯片M88MX5891 43
4.3 CXL SSD 43
4.4 CXL交换芯片 44
4.5 CXL FPGA板卡 45
4.5.1 Agilex 7 FPGA 45
4.5.2 Intel Agilex 7 FPGA开发套件 46
4.5.3 浪潮F26A 47
4.6 CXL控制器IP 48
4.7 浪潮G7系列服务器 49
4.8 小结 51
第二篇 CXL体系结构
第5章 CXL事务层 55
5.1 核心概念 55
5.1.1 内存 55
5.1.2 缓存行的归属 57
5.2 CXL事务层协议 58
5.2.1 CXL.io事务层 58
5.2.2 CXL.cache事务层 59
5.2.3 CXL.mem事务层 60
5.3 CXL事务层架构 60
5.3.1 CXL事务层概念映射关系 61
5.3.2 CXL事务层硬件逻辑架构 62
5.4 CXL.cache事务层详解 63
5.4.1 CXL.cache Read请求 63
5.4.2 CXL.cache Read0请求 64
5.4.3 CXL.cache Write请求 64
5.4.4 CXL.cache Read0-Write请求 65
5.4.5 CXL.cache H2D请求 65
5.5 CXL.mem事务层详解 66
5.5.1 CXL.mem M2S请求 66
5.5.2 反向无效机制 67
5.6 CXL Type 1/Type 2主机请求HDM流程 67
5.6.1 主机缓存读设备内存 68
5.6.2 主机独占读设备内存 69
5.6.3 主机无缓存读设备内存 69
5.6.4 主机独占设备内存(无数据) 70
5.6.5 主机刷新设备缓存 71
5.6.6 主机弱有序写设备 71
5.6.7 主机无效缓存写设备 72
5.6.8 主机缓存写设备 73
5.7 CXL Type 1/Type 2设备请求HDM流程 73
5.7.1 设备读HDM-D 73
5.7.2 设备读HDM-DB 74
5.7.3 设备写HDM-D(Host Bias) 75
5.7.4 设备写HDM-DB 77
5.7.5 设备写HDM(仅内部实现) 78
5.8 CXL Type 1/Type 2设备请求主机内存流程 79
5.8.1 设备读主机内存 79
5.8.2 设备写主机内存 79
5.9 CXL Type 3主机请求HDM流程 80
5.9.1 主机读HDM-H 80
5.9.2 主机写HDM-H 81
5.10 小结 82
第6章 CXL链路层/物理层 83
6.1 核心概念 84
6.1.1 Flit 84
6.1.2 流量控制 84
6.1.3 错误检查 85
6.2 CXL链路层/物理层架构 85
6.3 CXL链路层详解 86
6.3.1 CXL链路层简介 86
6.3.2 CXL.io链路层 86
6.3.3 CXL.cache/mem链路层 88
6.4 CXL仲裁/复用详解 95
6.5 CXL物理层详解 96
6.5.1 CXL物理层简介 96
6.5.2 有序集块和数据块 98
6.5.3 CXL物理层帧结构 99
6.5.4 链路训练 108
6.6 小结 108
第7章 CXL交换技术 110
7.1 CXL交换机分类 110
7.1.1 单VCS交换机 110
7.1.2 多VCS交换机 111
7.2 交