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

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

3天内不再提示

CCIX传输层详解

路科验证 来源:老秦谈芯 作者:老秦谈芯 2022-09-09 13:01 次阅读

4.CCIX传输层

开篇中提过,CCIX可以看作两个主要规范,分别是CCIX协议规范和CCIX传输规范。

CCIX 协议规范包含CCIX 协议层和CCIX链接层。这些层规定缓存一致性协议、报文发送、流控和CCIX 传输部分的协议。这正是第三章中的内容。

CCIX 传输规范包含CCIX 和PCIe事务层,PCIe 数据链路层,和CCIX 物理层。这些层负责器件间的物理连接,包括速率和带宽协商,传输包错误检测和重试,和初始包编码协议。这是第四章的主要内容。

开始学习这章之前,再来复习一下CCIX的分层架构。

2281138e-2ff6-11ed-ba43-dac502259ad0.png

从图中可以看出,在CCIX传输规范中,除了添加了CCIX事务层,作为对PCIe事务层的扩展或者替换,而其它各层均遵循复用PCIe标准。按惯例,我们重点看看CCIX事务层,其它部分略过。

4.1 介绍

CCIX规范中使用数据包在CCIX链路层(CCIX Link Layer)和CCIX事务层(CCIX Transaction Layer)之间传递信息

CCIX传输层(Transport Layer)分为两个部分:一个处理出站(Outbound)信息,另一个处理入站(Inbound)信息。

237bd2ec-2ff6-11ed-ba43-dac502259ad0.png

CCIX使用数据包在CCIX链路层和CCIX事务层之间传递信息。在发送端,当传输的数据包在事务层(Transaction Layer)、数据链路层(Link Layer)和物理层(Physical Layer)中向下游流动时,它们被扩展,需要加上在这些层处理数据包所需的附加信息。在接收端,发生相反的过程,包从其物理层传输到数据链路层,最后转换为可由接收设备的事务层处理的形式。

2537d612-2ff6-11ed-ba43-dac502259ad0.png

这也是分层架构的基本理念,每一层各司其职,只负责处理本层的任务。在传输端,各层把上一层的数据做为本层的负载,加上本层所需的信息,传输给下一层;在接收端,各层把本层所需要的信息剥离出来,并进行处理,然后把其余的数据传输给上一层。通过分层架构,可以很好的对规范进行划分,从而简化设计。

4.1.1 CCIX事务层

CCIX规范定义了自己的事务层,替换了PCIe的事务层,或者说CCIX事务层是一个简化的PCIe事务层,其中仅支持以下的事务层数据包(Transaction Layer Packets,后面简称TLPs):

优化的TLP

PCIe兼容的TLP

CCIX事务层的主要职责是组装和拆分TLP。

在接收路径上,CCIX事务层在将TLP转发到CCIX链路层之前,检查TLP的完整性。

对于PCIe兼容的TLP,PCIe基本规范中规定的PCIe事务层检查适用。

对于优化的TLP,指定了一组新的CCIX事务层检查。

CCIX事务层还负责用基于信用的流量控制方式去管理CCIX TLP。在接收路径上,为通过数据完整性检查,并转发到协议层的CCIX TLP返回已发布的流控制信用。在发送路径上,实现了一个信用门(credit gate),以基于可用的发布信用控制CCIX TLP的流量。

4.1.2 PCIe事务层

CCIX规范不修改PCIe事务层。

4.1.3 PCIe数据链路层

CCIX规范不修改PCIe数据链路层,而是按原样使用它。PCIe数据链路层充当PCIe和CCIX事务以及CCIX物理层之间的中间层。数据链路层的主要职责包括链路管理和数据完整性,包括错误检测和错误纠正。

4.1.4 CCIX物理层

CCIX物理层以特定于实现的格式与PCIe数据链路层交换数据包信息。该层负责将从PCIe数据链路层接收的数据包信息转换为适当的序列化格式,并以与连接到链路另一侧的设备兼容的数据速率和PCIe宽度在CCIX链路上传输。

CCIX物理层定义了两种物理层类型。CCIX组件只需要支持其中一种:

PCIe PHY:这种PHY类型符合PCIe基本规范

扩展数据速率(Extended Data Rate,EDR):这种PHY类型支持PCIe基本规范的所有要求,具有16.0 GT/s的能力,并将支持的数据速率扩展到20.0 GT/s和25.0 GT/s。

4.2 事务层

4.2.1 CCIX事务层架构

CCIX事务层中至少要有一个PCIe虚拟通道(Virtual Channel,VC),也就是VC0,用来交换PCIe TLP。

CCIX事务层还应该有一个CCIX虚拟通道(CCIX VC),用来交换CCIX TLP,但不能是VC0。

258edbb0-2ff6-11ed-ba43-dac502259ad0.png

4.2.2 事务层协议 – 数据包定义

CCIX事务层必须支持PCIe兼容的TLP,可以选择支持优化的TLP。

PCIe兼容TLP的格式如下:

25d931b0-2ff6-11ed-ba43-dac502259ad0.png

消息路由字段必须设置为010b–按ID路由。

所有CCIX TLP的供应商ID字段等于CCID。

PCIe兼容TLP的总长度大于4 DW。因此,TLP Fmt字段为011b。Length[9:0]是供应商定义消息的负载中DW总数

上图TLP头中DW3和数据负载格式在第三章中定义

优化的TLP格式,且须遵循的规则:

25ffd8d8-2ff6-11ed-ba43-dac502259ad0.png

优化的TLP要求是4-byte对齐,且4-byte增量

优化的TLP由1 DW TLP头部分和最多可包含127 DW的TLP有效载荷部分组成。

字节0的第7位始终为0b

Type[0]字段指示CCIX硬件规范版本,目前只有1.0版本

TC [2:0]字段,Traffic Class,流量分类

Length[6:0]是负载包含的DW数目

CCIX允许在一个TLP中打包两个或多个协议消息,从而使协议消息传输的开销最小化。只有当所有协议消息都具有公共CCIX链路时,才支持打包协议消息。对于CCIX事务层来说,打包的消息看起来仍然像一个带负载的TLP。多协议消息的信息在CCIX链路层内编码/解码,对事务层透明。

所有CCIX设备都需要支持CCIXVC的PCIe兼容TLP格式。只有当链路两端都支持优化TLP格式功能时,才可以在CCIX VC上交换优化的TLP。

在PCIe设备发现(discovery)过程中,可以通过读取DVSEC寄存器来判断是否支持CCIX。

4.2.3 CCIX虚拟通道

在正常工作条件下,CCIX VC将仅发送和接收CCIX TLP。CCIX VC为CCIXTLP实现了一个先进先出(FIFO)队列。CCIX VC应当规定一个posted流量控制信用值。这样,设计时FIFO队列的大小就可以确定了。

CCIX VC还应当规定一个non-posted流量控制信用值。CCIX VC上一般预计不会有non-posted TLPs,但是一旦接收到这些TLP,就需要一些资源处理他们。

插播一段,Non-posted(非转发)事务和Posted(转发)事务都是PCIe TLP(事务层包)类型。Non-posted事务分为两个部分,首先是发送端向接收端发送TLP请求,接收端接收到请求完成后向发送端发送完成TLP。Non-posted事务必须等待接收到完成TLP,PCIe总线才能结束当前的TLP。PostedTLP不需要完成TLP返回,此种方式中,TLP还没达到最终目的地之前,PCIe总线就可以结束当前的事务。

4.2.4 接收到的TLP的处理

CCIX事务层接收到的TLP处理流程如下图:

262a6e86-2ff6-11ed-ba43-dac502259ad0.png

从数据链路层接收到TLP后,先通过TC[2:0]判断是分发给PCIe虚拟通道还是CCIX虚拟通道。

补充一点,TC 是数据包的头内的一个3-bit的字段。用来将流量分成8种(TC0-TC7)不同的类别,本地应用软件和系统软件根据性能要求确定某个TLP使用什么样的TC标志。虚拟通道是物理缓冲区,它通过使用发送和接收虚拟信道缓冲区,提供一种在链路上实现多个独立数据流的方法。PCIe设备可以实现最多8个VC缓冲区(VC0-VC7)。并且必须要实现 VC0,即最通用的服务类别。设备或交换器需要实现TC/VC映射逻辑,通过该逻辑形成对应关系,把给定的TC号的TLP使用特定的VC号的缓冲区通过链路发送出去。多个TC可以对应一个VC,因而可以使用有限数目的VC缓冲区来降低设备成本。系统软件通过配置寄存器设置 TC/VC 的映射。应用软件确定TLP的TC标志以及设置满足性能要求的TC/VC的映射关系。最简单的情况可以将 TC/VC 映射寄存器设置为TC到VC的一对一关系。

CCIX事务层的行为由寄存器TransactionLayerControl(这个寄存器在第六章DVSEC中描述)的比特位OptimizedTLPGenerationReceptionRoutingEnable来控制。如果这个比特位被设定(set),发送方以优化的TLP格式生成CCIXTLP,传输路径中的交换机和接收方接受优化的TLP,所有接收方都将拒绝PCIe兼容的TLP。如果这个比特位被清除(clear),发送方以PCIe兼容TLP格式生成CCIX TLP,传输路径中的交换机和接收方接受PCIe兼容TLP,所有接收方都将拒绝优化的TLP。

4.2.5 事务排序规则

CCIX事务层应遵循PCIe基本规范中对事务排序的所有要求。在正常工作条件下,CCIX VC将仅发送和接收PCIe兼容的TLP或优化的TLP。

4.2.6 虚拟通道机制

CCIX事务层应遵循PCIe基本规范中对虚拟通道机制的所有要求。VC机制不区分PCIe VC和CCIXVC。后面有时间再分析PCIe的VC机制。

4.2.7 事务层流量控制

CCIX事务层应遵循PCIe基本规范中对流量控制的所有要求,除去那些仅适用于CCIX VC行为的异常。

4.2.8 数据完整性

CCIX事务层应遵循PCIe基本规范中对数据中毒(Data Poisoning)机制的所有要求。优化的TLP格式不支持PCIe数据中毒机制。

CCIX事务层应遵循PCIe基本规范中关于基于端到端CRC(End-to-End CRC)的数据完整性机制的所有要求。优化的TLP格式不支持ECRC机制。

4.2.9 完成超时机制

CCIX事务层应遵循PCIe基本规范中对完成超时(Completion Timeout)机制的所有要求。

4.2.10 链接状态依赖

CCIX事务层应遵循PCIe基本规范中对链接状态依赖(Link Status Dependencies)机制的所有要求。

4.3 CCIX数据链路层

是不是叫PCIe数据链路层更为合适?

4.4 CCIX物理层逻辑块

4.4.1 介绍

物理层分为逻辑子块和电气子块。CCIX传输规范扩展了PCIe基本规范中规定的逻辑和电气子块。

4.4.2 CCIX逻辑子模块

CCIX物理层支持16.0 GT/s,20.0 GT/s和25.0 GT/s的传输速率。

支持扩展数据速率的CCIX设备可以通过控制ESMControl.ESMEnable比特位(从0变成1),来进入扩展速率模式(Extended Speed Mode,ESM)。

4.4.3 重定时器

关于PCIe Retimer,随着PCIe协议的不断升级,频率越来越高,对数据在线路中的传输长度提出了强烈挑战。为了解决这一问题,PCIe协议在4.0版本种提出了Retimer。Retimer实际上是一种协议感知设备,能更好地将信号传输到更远。

总结:CCIX 传输规范包含CCIX事务层和PCIe 事务层,PCIe 数据链路层,和CCIX 物理层。这些层负责器件间的物理连接,包括速率和带宽协商,传输包错误检测和重试,和初始包编码协议。除去CCIX事务层,其它层均遵循PCIe标准。

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

    关注

    15

    文章

    1239

    浏览量

    82643
  • 传输层
    +关注

    关注

    0

    文章

    29

    浏览量

    10894

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

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

收藏 人收藏

    评论

    相关推荐

    详解太赫兹通信频段和MAC工作原理

    技术在通信领域的应用与当今比较成熟的微波通信和光纤通信相比,具有更多的优点,比如说,传输速率高,方向性好,安全性高,散射小,以及穿透性好等。之前的文章《详解IEEE 802.11ad(60 GHz
    发表于 06-17 06:24

    一文弄懂CCIX协议

    3. CCIX协议3.1 介绍每个CCIX代理都有一个ID,通过ID进行消息路由。每个CCIX端口可以与一个或多个其他CCIX端口通信。
    发表于 06-08 17:23

    CCIX 1.1设备必须支持PCIe 5.0 PHY或CCIX EDR PHY这两种物理

    必须符合下面表中的定义。传输DVSEC包含CCIX物理、数据链路层和事务的控制和状态寄存器(Control and Status Register,CSR)。协议DVSEC包含
    发表于 08-16 15:45

    光纤传输和同轴传输详解

    光纤传输和同轴传输详解 两种民用数字音频接口------光纤传输和同轴传输    
    发表于 01-15 10:19 6704次阅读

    CCIX协议对于一些高性能应用详解

    用于加速器的缓存一致互联协议(CCIX)是指由一家新的行业标准机构 – CCIX联盟 -- 开发的一组规范。CCIX的驱动因素是需要比当前可用技术更快的互连,并且需要缓存一致性,以便在异构多处理器
    发表于 11-15 11:14 1.4w次阅读
    <b class='flag-5'>CCIX</b>协议对于一些高性能应用<b class='flag-5'>详解</b>

    数据链路层和传输的区别是什么

    本文开始介绍了传输的概念、传输的基本功能以及传输服务类型,其次介绍了数据链路层功能与工作过
    发表于 03-14 15:03 2.7w次阅读
    数据链路层和<b class='flag-5'>传输</b><b class='flag-5'>层</b>的区别是什么

    详解片式铁氧体磁珠mtnf系列

    详解片式铁氧体磁珠mtnf系列
    发表于 10-28 11:11 0次下载

    一文详细了解CCIX规范

    正文开始前,闲扯几句。在接下来分析CCIX规范的过程中,大家会发现CCIX里面有太多ARM的影子,尤其是协议的一致性协议部分,你会看到有很多跟CHI相似的东西。另外,在CCIX规范的
    的头像 发表于 06-23 09:20 2037次阅读

    CCIX协议消息字段的含义

    每个CCIX代理都有一个ID,通过ID进行消息路由。
    的头像 发表于 06-28 17:22 1311次阅读

    一文详解CCIX规范

    正文开始前,闲扯几句。在接下来分析CCIX规范的过程中,大家会发现CCIX里面有太多ARM的影子,尤其是协议的一致性协议部分,你会看到有很多跟CHI相似的东西。另外,在CCIX规范的
    的头像 发表于 08-01 14:01 2315次阅读

    CCIX协议详解

    每个CCIX代理都有一个ID,通过ID进行消息路由。 每个CCIX端口可以与一个或多个其他CCIX端口通信。CCIX交换机(Switch)包括CCI
    的头像 发表于 08-03 14:12 2647次阅读

    CCIX传输详解

    开篇中提过,CCIX可以看作两个主要规范,分别是CCIX协议规范和CCIX传输规范。
    的头像 发表于 08-09 11:39 1490次阅读

    CCIX物理详解

    CCIX 1.1设备必须支持两种物理中的一种:PCIe 5.0 PHY,或者是CCIX EDR PHY。
    的头像 发表于 08-15 11:12 2280次阅读

    CCIX协议详解

    全一致性读事务,包括:ReadUnique,ReadClean, ReadNotSharedDirty,ReadShared。其事务流程如下图。
    的头像 发表于 08-17 09:39 1328次阅读

    OSI七模型详解 OSI七模型与TCP/IP模型比较

    详解,以及与TCP/IP模型的比较: OSI七模型详解 物理 : 负责传输比特流,即原始的电信号或光信号。 定义了物理设备、
    的头像 发表于 11-24 10:44 381次阅读