首页 > 技术文章 > CXL协议用于片间互联

IC-Chenxinmin 2020-05-13 16:34 原文

  最近研究了一下关于服务器片间互联的主流协议和连接方式,之前接触的主要是CCIX,这几天也关注了一下Intel主推的CXL协议,记录一下学习中的一些重点和问题。

  CXL的全称是Compute Express Link,主要为了解决芯片和外设直接的互联问题,也包括芯片之间的片间互联,应用场景包括AI,Machine Learning, HPC等。

主要分三类:

CXL.io: Discovery, configuration, register access, interrupts, RAS(similar to PCIe)
CXL.cache: Device access to processor-attached memory more efficiently
CXL.memory: Processor access to device-attached memory

  其架构和主要应用示意图如下图所示:

 

 

 

 然后是在研究中遇到的一些问题QA:

Q. 对于atomic的操作会保证吗?

A. CXL的Cache granule是64Bytes,看起来只能用两笔操作来完成,而且最大64bytes.

Q. 如果有多个device, 是否可以某个device直接去访问其他device的cache data?

A. 可以,假设requeste访问其他peer CXL device, peer device是type2/type3的,仍然由home agent来处理相关的coherency问题

Q. 是否有开关可以enable/disable IO, memory or cache CXL?

A. IO是必须的,对于CXL.mem, CXL,cache, 可以没有,但是建议device有其中一种。

Q. 如果CXL device发送了很多request到同一个Home agent,是否会使得home agent成为Bottleneck?

A. 有可能,CXL通过back pressuring CXL host-to-device request channel来解决这个问题

Q. CXL通过什么手段获得减少Latency的可能?

A. 在type2/type3中,通过简化传输所需的packet, 按照cache line 高效传输,不需要发送interrupt等方式,减少task的overhead.其实就是简化了PCIe的传输形式,减少了不必要的传输.

同时,可以使用relaxed ordering rules.

Q. CXL的读写round-trip latency是多少(当使用CXL device且从invalidate state开始)?

A. CXL不决定具体的延迟,而是取决于device的实现方式,CXL本身的指导延迟是50ns.

Q. 可否芯片内部使用另一个协议,通过CXL连接到外部?

A. 可以,但是需要协议转换

 

推荐阅读