CCIX简介

作者:Richard Solomon,技术营销经理,Synopsys公司

用于加速器的缓存一致互联协议(CCIX)是指由一家新的行业标准机构 – CCIX联盟 -- 开发的一组规范。CCIX的驱动因素是需要比当前可用技术更快的互连,并且需要缓存一致性,以便在异构多处理器系统中更快地访问内存。因此,该联盟的工作集中在使硬件加速器以缓存一致的方式使用与多个处理器共享的内存。本文介绍了CCIX标准及其对于机器学习、网络处理、存储卸载和内存数据库等高性能应用的主要优势。

什么是缓存一致性?

当多个CPU共享共同的内存空间时,它们可以通过交流该内存中各部分已缓存的和/或可缓存的状态来提高性能。通过这种方式,每个CPU都可以安全地处理公用数据集的某一部分,而不必使用(缓慢的)软件旗语来控制内存的存取的数据完整性。假设CPU A已经缓存了一块内存,它就可以确保CPU B不会修改该同一内存空间或使用该数据的过时版本。CCIX扩展了这种通信机制,以便使CPU之外的代理也可以参与进来,这使得硬件加速器也能够获得同样的好处。CCIX的一致性协议也是独立于供应商的,所以,CPU、GPU和其他加速器都可以平等地参与进来,而不会遇到麻烦的许可证限制。

为了更好地理解缓存一致性,我们先来看一个一段时间以来很通用的协议,即MESI。缩写词MESI是指系统中的每个缓存行的四种可能的状态:Modified(被修改的),Exclusive(独占的),Shared(共享的)或者Invalid(无效的)。“被修改的”意味着某个缓存行仅存储在当前缓存中,并且与主内存中的数据不同(用缓存的话语来说就是“脏的”(dirty))。如果某个地址被在系统中的某个地方标记为“被修改的”,则当任何其他代理试图读取该地址时,将导致该缓存(其拥有该地址的被修改数据)把数据写回主内存,然后才能进行读取操作。“独占的”缓存行也仅存储在当前缓存中,但它与主内存中的数据相一致(用缓存的话语来说就是“干净的”(clean))。如果拥有该缓存行的代理对它进行修改,则状态将切换为“独占的”。“共享的”缓存行与“独占的”缓存行一样也是“干净的”,但它也可能存在于系统中的其他缓存中(它在那里也将处于“共享的”状态)。最后,“无效的”缓存行正是它的名称一样 –– 指某个未使用的或不再有效的缓存行。显然,这种系统中的各种缓存必须彼此交流多条信息。他们必须支持窥探(snoop)或监视来自其他代理的总线事务,以确定其缓存状态何时需要更改,并且它们必须拥有某种方法与系统中的其他缓存交流状态的变化。

CCIX协议规范定义了一组缓存状态以及相关的消息和机制,以便完成这些相同的一般类型的行为。虽然完整的详细信息仅提供给CCIX联盟会员,但本文将对协议规范进行高层次的概述。

为什么选择CCIX实现缓存一致性?

CCIX规范的最大优势之一是它建立在PCI® Express规范的基础之上。CCIX的一致性协议只需很少修改或者无需修改就可以通过PCI Express链路传递。如图1所示,某个现有的PCI Express控制器实施可以通过逻辑进行扩展,以实现CCIX事务层。CCIX事务层负责携带一致性消息,而块 – 即CCIX协议层和链路层 -- 负责实现一致性协议本身并对其执行操作。这些块需要与用于缓存的内部片上系统(SoC)逻辑进行紧密集成,并且可能是特定于该SoC上使用的具体架构。在其今后设计中实现CCIX的SoC设计人员通常希望将CCIX协议及链路层与CCIX事务层分开,以使前者能够与内部SoC逻辑紧密集成。

图1:CCIX规范利用PCI Express协议实现CCIX事务层

图1:CCIX规范利用PCI Express协议实现CCIX事务层

超越16GT/s

如前所述,CCIX的最大的吸引力之一就是它与PCI Express的兼容性。实际上,CCIX的缓存一致性协议可以通过运行8GT/s或更快速度的任何PCI Express链路来传递。PCI Express 4.0规定的最高数据速率为16GT/s,这在一条16通道链路上可以达到总双向带宽约64GB/s,但CCIX联盟的一些成员需要更大的带宽。他们认为,通过将传输速率提高到25GT/s,一条CCIX链路可以在相同的条件下达到100GB/s。这导致出现了一项称为“扩展速度模式”(ESM)的CCIX特性。由于PCI Express由一个不同的标准化机构所拥有,所以CCIX联盟选择了一个聪明的机制用于在具有ESM功能的组件与PCI Express组件之间实现兼容性。希望彼此进行通信的两个CCIX组件可以通过正常的PCI Express链路初始化过程(通常是一个硬件自主过程)进行处理,以达到最高的相互支持的PCI Express速度。自此开始,在主机系统上运行的软件可以询问CCIX特定的配置寄存器,并确定两个组件是否都具备ESM能力。如果具备的话,则确定它们的最高支持速度。该软件然后在两个组件上编写其他CCIX特定的寄存器,以便把PCI Express链路速度映射为CCIX ESM链路速度。自此以后,链路协商将针对CCIX ESM速度,因此,通过强制进行链路重新训练,这两个组件现在可以以高达25GT/s的速度进行通信。

小结

如果设计人员打算寻找一种缓存一致性互连途径,以便从当今主流的PCI Express接口获得相对容易的迁移路径,他们应考虑把CCIX用于他们的下一个高性能SoC。Synopsys公司完整的CCIX IP解决方案建立在通过了硅验证的、面向PCI Express 4.0的DesignWare®IP基础之上,后者在超过1500个设计中得到了验证,并且已经交付了数十亿套。该解决方案支持缓存一致性而且速度可以高达25 Gbps。作为CCIX联盟和PCI-SIG的积极成员,Synopsys公司将继续在CCIX、PCI Express和相关技术领域进行创新,以确保这些生态系统能够满足数据密集型云计算应用的高性能连接要求。