• 正文
  • 相关推荐
申请入驻 产业图谱

芯片间互联协议 -- CCIX协议介绍

06/26 16:48
2121
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

CCIX(Cache Coherent Interconnect for Accelerators)是一种高性能的芯片间互联协议,用于连接CPU芯片和CPU芯片、加速器设备和CPU芯片等。它的主要目标是提供高带宽、低延迟、缓存一致性以及适应各种加速器的连接标准,以便更好地支持异构计算。AMD、ARM、Mellanox、华为高通等多家公司联合成立了CCIX联盟,以推动CCIX技术的发展和应用。

CCIX规范的最大优势之一是它建立在PCIe规范的基础之上。CCIX的一致性协议只需很少修改或者无需修改就可以通过PCIe链路传递。

1. CCIX拓扑结构
CCIX协议规范扩展了处理器和处理器,处理器和内存,处理器和加速器,加速器和加速器之间的数据共享。CCIX支持多种灵活的拓扑结构,如下所示。
2. CCIX架构模型CCIX拥有更低的latency。对于CCIX over PCIe,CCIX增强了PCIe,可以支持缓存一致性,以降低由PCIe事务层导致的latency影响。为了降低CCIX的latency,CCIX创建了一个轻量级的事务层,可以与PCIe事务层独立共存。此外,CCIX链路层确保了CCIX协议消息的无死锁通信所需的足够的事务通道。CCIX拥有更高的带宽。基于PCIe的CCIX利用公共的数据链路层物理层来传输PCIe和CCIX事务。CCIX支持PCIe规范中的所有标准数据速率,另外还定义了两种新的速率20GT/s和25GT/s。CCIX还规定了多个CCIX端口可以通过端口聚合(Port Aggregation),提供超过单个接口的性能。CCIX架构模型如下图。CCIX协议规范包含CCIX协议层和CCIX Port。CCIX传输规范包含CCIX和PCIe事务层,PCIe数据链路层,CCIX/PCIe物理层。

CCIX协议层(CCIX Protocol Layer)。负责一致性协议,包括内存的读/写操作等。

CCIX Port 链路层(CCIX Link Layer)。负责CCIX协议层定义的Agent之间消息的传输格式。这一层负责端口聚合(Port Aggregation),多个端口可聚合在一起提升带宽。

CCIX和PCIe事务层。负责处理它们各自的数据包。CCIX可以传输标准的PCIe包,或优化之后的CCIX包。

PCIe数据链路层。执行数据链路层的相关功能,包括CRC错误校验、包确认和超时检查,和credit初始化及交换等。

CCIX/PCIe物理层。CCIX扩展了物理层来支持20GT/s和25GT/s。称为扩展速率模式(Extended Speed Mode,ESM)。

CCIX规范定义了一系列Agent,包括:请求代理(RA)、Home代理(HA)、Subordinate代理(SA)、DVM Agent(DA)、IO Coherent Request Agent (RAI) 和错误代理(EA)。

Request Agent(RA):RA可以发起读和写操作。RA可以对它已经访问的地址的数据进行缓存。每个RA可以有一个或多个加速器function作为内部的请求发起者。

Home Agent(HA):HA负责管理指定的一段地址的cache一致性。当cacheline的状态需要改变时,HA向所需的RA发出snoop操作来保持cache一致性。

Subordinate Agent(SA):CCIX支持扩展系统内存,来包含外设所附的内存。这种情况出现在HA在一个芯片上,而这个HA关联的一些或全部物理内存在另一个芯片上时。这种扩展内存称为SA。SA不会被RA直接访问。RA总是先访问一个HA,然后HA再访问SA。

DVM Agent(DA):DVM Agent接收和处理DVM请求,并把请求传给其他DVM Agent(如果需要的话)。每个chip上最多有一个DVM Agent。

IO Coherent Request Agent (RAI):RAI是一个只支持IO一致性的Request Agent,它不会发出需要缓存到cache的请求事务。

Error Agent:接收并处理协议错误信息。协议错误信息由CCIX组件发出。

 

以ARM的CMN片上互联网络为例,CMN会在CCG节点将CHI协议转换为CCIX协议,然后通过Die2Die将CCIX的flit发送到对端die的CCG上,再恢复成CHI协议。

相关推荐