0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CCIX规范的简单介绍

路科验证 来源:路科验证 作者:路科验证 2022-07-21 14:35 次阅读

简介

CCIX是一种能够将两个或两个以上器件通过缓存一致性的方式来共享数据的芯片间互联技术。CCIX旨在简化异构系统的架构设计,同时基于不同指令集(ISA)的处理器或应用特定的加速器提升系统的带宽、降低时延。为此,多家公司联合成立了一家新的行业标准机构—CCIX联盟,以推动CCIX技术的应用。如今,CCIX联盟逐渐发展壮大。

对于芯片互联网络,有两个指标是至关重要的:带宽和延时。CCIX 采用两种机制来提高性能、降低延时。第一种机制是采用缓存一致性,自动保持处理器和加速器的缓存一致,提升易用性、降低延时。第二种机制是提高CCIX 链路的原始带宽。最高的连接速率升至25GT/s (千兆传输/秒)。同时,CCIX 规范也规定了多个CCIX 端口可以通过端口聚合(Port Aggregation)技术,提供超过单个接口的性能,匹配加速器和内存扩展带宽。

CCIX 架构采用的是基于PCIe基本架构扩展的分层架构。CCIX 协议规范包含CCIX 协议层和CCIX链路层。这些层规定缓存一致性协议、报文发送、流量控制和CCIX 传输部分的协议。CCIX 传输规范包含CCIX 和PCIe事务层,PCIe 数据链路层,和CCIX 物理层。这些层负责器件间的物理连接,包括速率和带宽协商,传输包错误检测和重试,和初始包编码协议。

df72c56a-08a9-11ed-ba43-dac502259ad0.png

CCIX 协议层(CCIX Protocol Layer),负责一致性协议,包括内存的读/写。这一层提供了片上(On Chip)一致性协议(例如AMBA CHI)的简单映射。这一层定义的缓存状态使得硬件能够确定内存的状态。比如硬件可以确定数据是否唯一且未被修改(和内存一致),或是共享且被修改的(和内存不一致)。

CCIX 链路层(CCIX Link Layer),负责CCIX 协议层定义的代理(Agent)之间消息的传输格式。目前CCIX 链路层是构建在PCIe 之上,但是基于分层架构,CCIX 将来可以映射到不同的传输层。此外,这一层负责端口聚合(Port Aggregation),使得多个端口能够聚合在一起提升带宽。

CCIX 和PCIe 事务层(CCIX and PCIe Transaction Layer),负责处理它们各自的数据包。PCIe 协议支持部署虚拟通道,使得不同数据流可以通过一个PCIe 链路。将CCIX 和PCIe 传输流各分到一个虚拟通道,CCIX和PCIe 传输可以共享相同的链路。CCIX 能够传输标准的PCIe 包,或经过优化的CCIX 包(删减了PCIe 包里的几个不必要的字段)。传输标准的PCIe 包时,可以采用现有的PCIe 交换器。传输经过优化的CCIX 包,能降低PCIe的额外开销,使得一致性传输的包更小、更高效。

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

CCIX/PCIe物理层的基础是PCIe 物理层。CCIX 扩展了物理层来支持25GT/S(千兆传输/秒)。这个较快的速率称为扩展速率模式(Extended Speed Mode,ESM)。

简单分析完CCIX分层结构,再来看CCIX的拓朴结构。CCIX 能够支持多种灵活的拓扑结构,如下图。

df9bb8f8-08a9-11ed-ba43-dac502259ad0.png

所有的CCIX器件至少有一个CCIX端口。一个CCIX端口可以关联一组物理管脚,用于和另一个CCIX 端口连接,在两个或多个不同芯片间交互信息

dfb99404-08a9-11ed-ba43-dac502259ad0.png

CCIX定义的代理类型包括:请求代理(RA)、主代理(HA)、从代理(SA)和错误代理(EA)。这些代理,和系统里的端口及链接统称CCIX 组件。一个代理在协议中用一个代理ID 来标识。

请求代理(Request Agent):一个请求代理对系统内的不同地址进行读、写操作。请求代理可以对它已经访问的地址的数据进行缓存。每个CCIX 请求代理可以有一个或多个处理单元(Processing Element)作为内部请求的发起者,请求由一个CCIX 架构的请求代理执行。根本上说CCIX 请求代理提供了加速器或CCIX 使能的IO 主设备向一致性系统内存的接口。

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

从代理(Slave Agent):CCIX 支持扩展系统内存,来包含外设所附的内存。这种情形出现在主代理在一个芯片上,而这个主代理关联的一些或全部物理内存在另一个芯片上时。这种架构组件(扩展内存)称为从代理。从代理不会被请求代理直接访问。请求代理总是访问一个主代理,然后主代理再访问从代理。

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

CCIX 的一个关键优势,是它能支持主设备和加速器间通过采用无驱动的数据移动方式共享数据。而传统的PCIe 加速器需要驱动对加速器写入和读出数据,这增加了延时和计算开销。采用无驱动的数据移动方式,CCIX 还可以将系统内存扩展至主设备的内存之外。基于CCIX,每个支持CCIX 的设备的行为与现有NUMA操作系统中的节点类似。这种基于内存的方法利用了现有的操作系统功能。在这种模式下,用来共享的所有数据结构都放在处理器和加速器都可访问的共享内存里。这种数据共享模型可以消除加速器特定的控制与管理驱动,允许加速器资源由一个中心调度器安排的长时间运行的任务来调用。这个调度器可以是操作系统调度程序的一部分,或者是和操作系统调度程序协同。

以上是对CCIX规范的简单介绍,后面我们开始逐步分析CCIX规范。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 加速器
    +关注

    关注

    2

    文章

    795

    浏览量

    37747
  • 架构
    +关注

    关注

    1

    文章

    509

    浏览量

    25445

原文标题:老秦带你探索CCIX(一)

文章出处:【微信号:Rocker-IC,微信公众号:路科验证】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    车用多芯片组件AEC-Q104规范

    在这之前先简单介绍一下AEC车用电子主要依据国际汽车电子协会(AutomotiveElectronicsCouncil,简称AEC)作为车规验证标准,包括AEC-Q100(集成电路IC
    的头像 发表于 11-21 16:41 82次阅读
    车用多芯片组件AEC-Q104<b class='flag-5'>规范</b>

    示波器高压探头校准规范要求

    示波器高压探头的校准规范要求涉及多个方面,以下是根据相关规范和信息整理的主要内容:
    的头像 发表于 10-03 16:49 249次阅读

    DDS通信中间件——DCPS规范(上)

    DDS通信中间件——DCPS规范(上)本篇文章继续和大家分享一下对DDS这套规范的理解。预期本系列文章将包括以下内容陆续更新:1.DDS规范概述2.DCPS规范解读3.DDS-XTyp
    的头像 发表于 09-26 08:08 320次阅读
    DDS通信中间件——DCPS<b class='flag-5'>规范</b>(上)

    华为PCBA检查规范设计总结

    福利来啦! 给大家分享《华为PCBA检查规范设计总结》
    的头像 发表于 06-15 16:25 2074次阅读
    华为PCBA检查<b class='flag-5'>规范</b>设计总结

    简单介绍Modbus RTU协议

    介绍modbus rtu之前,我们可以了解到,Modbus是施耐德电气公司,于1979年发明的,是全球第一个真正用于工业现场的总线协议。
    的头像 发表于 05-09 09:13 2314次阅读
    <b class='flag-5'>简单</b><b class='flag-5'>介绍</b>Modbus RTU协议

    步进电机的简单介绍

    步进电机的命名,参数,转速简单介绍
    的头像 发表于 04-17 21:40 922次阅读

    PCB星形接地的简单介绍

    从概念上讲,星形接地涉及到构建一个电气系统,系统中所有模块或者设备都在一点接地。 最简单的方法是使用电源,其中负极端子(正极端子)被分支到不同的模块中,将她们并联在电路中。
    发表于 04-06 05:19 1087次阅读
    PCB星形接地的<b class='flag-5'>简单</b><b class='flag-5'>介绍</b>

    简单介绍一下电源纹波与电容啸叫

    简单介绍一下电源纹波与电容啸叫  电源纹波与电容啸叫是在电源系统中常见的两种问题,它们会影响电子设备的性能和稳定性。本篇文章将详细介绍电源纹波和电容啸叫的定义、原因、对设备的影响以及常见的解决方法
    的头像 发表于 02-04 09:42 970次阅读

    万兆以太网规范解读

    万兆以太网规范,二是基于双绞线(或铜线)的局域网万兆以太网规范,三是基于光纤的广域网万兆以太网规范。下面分别予以介绍
    的头像 发表于 01-15 10:21 2319次阅读
    万兆以太网<b class='flag-5'>规范</b>解读

    QT串口通信的简单使用

    QT串口通信是上位机和下位机通信常用的通信方式, 也是学习QT必须学会的基础知识, 这篇就简单介绍一下QT串口通信的简单使用.
    的头像 发表于 01-15 09:27 1818次阅读
    QT串口通信的<b class='flag-5'>简单</b>使用

    简单的led驱动电路介绍

    LED驱动电路是用于控制LED灯的亮度和颜色的一种电子电路。在这篇文章中,我们将介绍简单的LED驱动电路——恒流驱动电路。 一、什么是恒流驱动电路? 恒流驱动电路是一种能够保持LED电流恒定的电路
    的头像 发表于 12-30 15:28 4865次阅读
    最<b class='flag-5'>简单</b>的led驱动电路<b class='flag-5'>介绍</b>

    PCB 焊盘与孔设计工艺规范

    PCB 焊盘与孔设计工艺规范 1. 目的 规范产品的PCB焊盘设计工艺,规定PCB焊盘设计工艺的相关参数,使得PCB 的设计满足可生产性、可测试性、安规、EMC、EMI 等的技术规范要求,在产品
    的头像 发表于 12-22 19:40 1325次阅读
    PCB 焊盘与孔设计工艺<b class='flag-5'>规范</b>

    psci接口规范介绍

    由于psci是由linux内核调用bl31中的安全服务,实现cpu电源管理功能的。因此其软件架构包含三个部分: (1)内核与bl31之间的调用接口规范 (2)内核中的架构 (3)bl31中的架构
    的头像 发表于 12-05 16:53 856次阅读

    西门子直流调速工作原理简单介绍

    西门子直流调速工作原理简单介绍
    的头像 发表于 11-29 08:55 1056次阅读

    JESD204B规范的传输层介绍

    电子发烧友网站提供《JESD204B规范的传输层介绍.pdf》资料免费下载
    发表于 11-28 10:43 0次下载
    JESD204B<b class='flag-5'>规范</b>的传输层<b class='flag-5'>介绍</b>