从企业与专家学者不同角度让你快速了解CXL是什么以及未来在存储领域发挥哪些重要作用。
首先看CXL解决的问题。
以数据中心服务器为例,每个服务器都有定量内存,上面跑应用也是限量供应,超了不行,用太少不划算,相当于手握流量密码却使用不得法,CXL作为一个开放式内部互连新标准出现了,目标是跨主机和所有CXL设备构建通用内存池,提高内存容量,实现内存访问和一致性缓存。
CXL本身建立在PCIe 5.0协议基础上,分三种模型,由三个子协议排列组合而成,CXL.io就是PCIe 5.0升级版,负责为I/O设备提供一个非连贯的加载/存储接口,必不可少,CXL.cache是支持设备访问处理器内存,CXL.mem是支持处理器访问设备附加内存。其实相当于给io配装备,不同组合获得技能不同:
类型1:CXL.io+CXL.cache
让设备访问处理器缓存有一致性。支持连接的CXL设备以极低的延迟有效访问和缓存主机内存。设备可以是PGAS NIC、NIC atomics、智能网卡和内存扩展卡。
类型2:CXL.io+CXL.cache+CXL.mem
允许主机访问设备附加内存还有让设备访问处理器内存,适用于GPU和密集型计算。
类型3 CXL.io+CXL.mem
支持主机访问和管理设备附加内存,允许主机访问内存缓冲区或扩展器。
现在CXL进入2.0时代,有了交换机和热插拔功能,MemVerge创始人范承工曾举过这样的例子。
之前,有20台机架服务器,每台服务器2TB内存,共40TB容量,所有应用内存限量2TB。MemVerge的软件可以把任意一台服务器的内存地址空间扩大到3TB左右,但每台服务器的DRAM插槽有限,用完了就无法再使用。有了CXL 2.0。
20台机架服务器,每台服务器有512GB内存,只要再装一个连接CXL 2.0的内存扩展机箱,有30TB DRAM容量,那最后仍然是有40TB的DRAM容量,就是分布不同,每个服务器除了有个 512GB的块容量,还有一个30TB共享内存池,应用执行速度会有显著提高。
总而言之,有了CXL,你可以用不同的GPU和CPU品牌,可以有不同企业的存储级内存做成一个大内存池实现内存自由。