CCIX 标准简介

本贴最后更新于 628 天前,其中的信息可能已经东海扬尘
* [https://zhuanlan.zhihu.com/p/375519357 - 知乎专栏](https://zhuanlan.zhihu.com/p/375519357)
* 随着众核时代的到来,系统架构由SoC演进到Chiplet。Chiplet的实现分为物理层、接口层、通信层和协议层,具体在正文中有描述,这里着重介绍一下协议层中的CCIX标准。 随着机器学习和大数据应用的高速发展,仅以中央…
* 2023-01-06 09:16:12

随着众核时代的到来,系统架构由 SoC 演进到 Chiplet。Chiplet 的实现分为物理层、接口层、通信层和协议层,具体在正文中有描述,这里着重介绍一下协议层中的 CCIX 标准。

随着机器学习和大数据应用的高速发展,仅以中央处理器为中心的服务器架构无法满足这些应用的性能需求,因此需要高效的异构计算架构,如图形处理单元(GPU)、可编程逻辑阵列(FPGA)、智能网卡(NIC)和很多其它领域特定的可编程器件等。对目前很多计算任务,加速器能够比单独的处理器速度更快、功耗更低的完成所需功能。但是,不受管控的异构会带来软件复杂性。当前主要采用 PCIe 作为处理器和片外加速器间传输数据的协议,但面对基于不同指令集(ISA)的处理器或应用特定的加速器如何提升带宽、降低时延、增加易用性,成为下一代互联的首要诉求。

为解决下一代互联问题,由处理器、加速器和其它外设厂商促成了 CCIX 联盟的成立,希望通过变革加速器的内存和数据移动的方式制定出新的互联标准,来保证片间无缝传输,实现片外加速器互联。

适用于加速器的缓存一致性互联标准(CCIX,Cache Coherent Interconnect for Accelerators,也读成“see 6”)采用两种机制来提高性能、降低延时。第一种是采用缓存一致性,自动保持处理器和加速器的缓存一致,提升易用性、降低延时;第二种是提高 CCIX 链接的原始带宽,最高链接速率升至 25GT/s(千兆传输/秒)。CCIX 规范也规定了多个 CCIX 端口如何聚合,以提供超过单个接口的性能,匹配加速器和内存扩展带宽。

在多核系统中,针对缓存一致性问题已经有了很多技术手段(如 ARM 的 CCI 中采用的监听过滤器等),CCIX 将其基本原理扩展到加速器,应用数据就可以在处理器缓存和加速器缓存间自主传递,不需要软件驱动参与。除了缓存,CCIX 还支持将 PCIe 设备自带的内存扩展为系统内存。CCIX 的数据共享模型是基于虚拟地址(VA)寻址的共享内存。

处理器和加速器的缓存和/或内存可通过 CCIX 协议自动更新和同步,因此只需要传递数据指针而不需进行数据搬移。从而减小数据延时,提升应用性能。同时减轻软件负担,使其聚焦于应用处理而不是底层数据传输。

  1. CCIX 架构

    CCIX 基于 PCIe 架构扩展而来,采用分层架构,如图 9 所示,主要包含协议规范和传输规范。其中,协议规范包含 CCIX 协议层和 CCIX 链接层,规定了缓存一致性协议、报文发送、流控和传输部分的协议。传输规范包含 CCIX 和 PCIe 事务层、CCIX PCIe 数据链路层和 CCIX 物理层,负责器件间的物理连接,包括速率和带宽协商、传输包错误检测和重试和初始包编码协议。

图 9 CCIX 分层架构

** CCIX 协议层**

负责一致性协议,包括内存的读、写等,也提供片上一致性协议(如 Arm 的 CHI)的简单映射。通过其定义的缓存状态使硬件能够确定当前内存的状态,如数据是否唯一且未被修改(和内存一致),或共享且被修改(和内存不一致)等。

** CCIX 链接层**

负责 CCIX 协议层定义的代理(agent)之间消息的传输格式。目前构建在 PCIe 之上,采用分层架构,未来可映射到不同的传输层。此外,还负责端口聚合,使得多个端口能够聚合在一起提升带宽。

** CCIX 和 PCIe 事务层**

分别负责处理来自 CCIX 和 PCIe 的包。

PCIe 协议支持部署虚拟通道,使得不同数据流通过一个 PCIe 链路。将 CCIX 和 PCIe 传输流各分到一个虚拟通道,使得 CCIX 和 PCIe 传输可以共享相同的链路。

CCIX 能够传输标准的 PCIe 包或经过优化的 CCIX 包。经过优化的 CCIX 包删减了 PCIe 包里的几个不必要的字段。传输标准的 PCIe 包时可以采用现有的 PCIe 交换器。传输经过优化的 CCIX 包,能降低 PCIe 的额外开销,使得一致性传输的包更小、更高效。

** PCIe 数据链路层**

执行数据链路层的所有正常功能,包括 CRC 错误校验、包确认和超时检查和信用初始化及交换。

** CCIX/PCIe 物理层**

基于 PCIe 物理层进行扩展,速率可达到 25GT/S(千兆传输/秒)。该模式称为 ESM(扩展速率模式),会在两个具备 ESM 模式的器件连接时自动识别,比 PCIe4.0 的速率(16GT/S)提升 56%。

  1. CCIX 组件

    CCIX 协议定义了 CCIX 组成模块的内存访问协议。所有 CCIX 器件至少有一个具备 CCIX 链接的端口。一个 CCIX 端口关联一组物理管脚,用于和另一个 CCIX 端口连接,在两个或多个不同芯片间交互信息。包含的组件如图 10 所示,有请求代理(RA)、主代理(HA)、从代理(SA)和错误代理(Error Agent),协议中为每种代理都定义了唯一的代理 ID 值。

图 10 CCIX 架构组件

** 请求代理(RA)**

请求代理可以对系统内的不同地址进行读、写操作,也可以对已经访问过的数据进行缓存。每个请求代理的发起源可以是一个或多个处理单元。请求代理为加速器或 CCIX 使能的 IO 主设备提供了一致性系统内存接口,使得加速器的缓存具备一致性,此过程对软件透明。

** 主代理(HA)**

主代理负责管理指定的一段地址的数据一致性。当一个缓存行的状态需要改变时,主代理通过向相关的请求代理发出侦听操作来保持一致性。

** 从代理(SA)**

CCIX 支持将外设所附内存扩展为系统内存。当主代理在一个芯片上,而与其有关的内存在另一个芯片上时需要进行内存扩展,扩展内存所需的架构组件为从代理。从代理不会被请求代理直接访问,而是需要通过一个主代理进行中转。

** 错误代理(EA)**

一个错误代理接收并处理 CCIX 组件发出的协议错误信息。

  1. CCIX 特点

    得益于 CCIX 的分层架构,能够支持多种灵活的拓扑结构。最常见的拓扑结构是直接连接的共享虚拟内存。其它拓扑结构,如星型、交叉或网格拓扑,也很容易被构建和支持;

    由于具备缓存一致性,支持主设备和加速器间的数据共享和内存扩展,可以无需驱动实现数据搬移,降低了延时和软件开销。同时这种共享数据结构,可以减少对不同加速器的单独控制和管理,实现统一任务调度,简化软件程序,提高协同运行效率。

小结

CCIX 联盟是一个开放的工业标准组织,制定独立于任何处理器架构的、非私有的 CCIX 标准。CCIX 标准为内存扩展器件和加速器提供高性能、低延时、芯片与芯片间的互联。特别为应对未来数据中心、云计算、大数据及其它需要异构计算应用的巨大挑战而设计。CCIX 标准将是革命性的进步,它拓展了开放、异构架构和缓存一致性共享内存模型的优势,来满足未来数据中心不断演进的需求。

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • 智能合约

    智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于 1994 年由 Nick Szabo 首次提出。

    1 引用 • 11 回帖 • 2 关注
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 104 关注
  • 京东

    京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。

    14 引用 • 102 回帖 • 354 关注
  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    93 引用 • 113 回帖
  • 博客

    记录并分享人生的经历。

    273 引用 • 2388 回帖
  • 房星科技

    房星网,我们不和没有钱的程序员谈理想,我们要让程序员又有理想又有钱。我们有雄厚的房地产行业线下资源,遍布昆明全城的 100 家门店、四千地产经纪人是我们坚实的后盾。

    6 引用 • 141 回帖 • 584 关注
  • WebComponents

    Web Components 是 W3C 定义的标准,它给了前端开发者扩展浏览器标签的能力,可以方便地定制可复用组件,更好的进行模块化开发,解放了前端开发者的生产力。

    1 引用 • 5 关注
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    53 引用 • 37 回帖 • 3 关注
  • Ant-Design

    Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。

    17 引用 • 23 回帖 • 4 关注
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖
  • danl
    146 关注
  • 钉钉

    钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。

    15 引用 • 67 回帖 • 335 关注
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    91 引用 • 384 回帖 • 2 关注
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    6 引用 • 14 回帖
  • Chrome

    Chrome 又称 Google 浏览器,是一个由谷歌公司开发的网页浏览器。该浏览器是基于其他开源软件所编写,包括 WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。

    62 引用 • 289 回帖
  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1435 引用 • 10056 回帖 • 489 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    200 引用 • 120 回帖
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 2 关注
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    524 引用 • 4601 回帖 • 700 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 232 回帖
  • 大疆创新

    深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。

    2 引用 • 14 回帖 • 2 关注
  • 正则表达式

    正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。

    31 引用 • 94 回帖 • 2 关注
  • HBase

    HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。

    17 引用 • 6 回帖 • 75 关注
  • Webswing

    Webswing 是一个能将任何 Swing 应用通过纯 HTML5 运行在浏览器中的 Web 服务器,详细介绍请看 将 Java Swing 应用变成 Web 应用

    1 引用 • 15 回帖 • 637 关注
  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    89 引用 • 345 回帖