4. ccix传输层
开篇中提过,ccix可以看作两个主要规范,分别是ccix协议规范和ccix传输规范。
ccix 协议规范包含ccix 协议层和ccix链接层。这些层规定缓存一致性协议、报文发送、流控和ccix 传输部分的协议。这正是第三章中的内容。
ccix 传输规范包含ccix 和pcie事务层,pcie 数据链路层,和ccix 物理层。这些层负责器件间的物理连接,包括速率和带宽协商,传输包错误检测和重试,和初始包编码协议。这是第四章的主要内容。
开始学习这章之前,再来复习一下ccix的分层架构。
从图中可以看出,在ccix传输规范中,除了添加了ccix事务层,作为对pcie事务层的扩展或者替换,而其它各层均遵循复用pcie标准。按惯例,我们重点看看ccix事务层,其它部分略过。
4.1 介绍
ccix规范中使用数据包在ccix链路层(ccix link layer)和ccix事务层(ccix transaction layer)之间传递信息。
ccix传输层(transport layer)分为两个部分:一个处理出站(outbound)信息,另一个处理入站(inbound)信息。
ccix使用数据包在ccix链路层和ccix事务层之间传递信息。在发送端,当传输的数据包在事务层(transaction layer)、数据链路层(link layer)和物理层(physical layer)中向下游流动时,它们被扩展,需要加上在这些层处理数据包所需的附加信息。在接收端,发生相反的过程,包从其物理层传输到数据链路层,最后转换为可由接收设备的事务层处理的形式。
这也是分层架构的基本理念,每一层各司其职,只负责处理本层的任务。在传输端,各层把上一层的数据做为本层的负载,加上本层所需的信息,传输给下一层;在接收端,各层把本层所需要的信息剥离出来,并进行处理,然后把其余的数据传输给上一层。通过分层架构,可以很好的对规范进行划分,从而简化设计。
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。
4.2.2 事务层协议 – 数据包定义
ccix事务层必须支持pcie兼容的tlp,可以选择支持优化的tlp。
pcie兼容tlp的格式如下:
消息路由字段必须设置为010b–按id路由。
所有ccix tlp的供应商id字段等于ccid。
pcie兼容tlp的总长度大于4 dw。因此,tlp fmt字段为011b。length[9:0]是供应商定义消息的负载中dw总数
上图tlp头中dw3和数据负载格式在第三章中定义
优化的tlp格式,且须遵循的规则:
优化的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处理流程如下图:
从数据链路层接收到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标准。
自动驾驶汽车是高端芯片发展的动力而非PC或手机
日本购买iphone7划算吗?为什么日本人最爱用iphone
出售中国相机工厂断臂保身 索尼型阵痛持续
在传统物流向现代物流转型的今天,自动化、智能化等成为必然发展趋势
华为进军物联网 鸿蒙微内核从底层即为物联网设计
CCIX传输层详解
电流互感器原理及作用
IAG与波音正式签订了购买200架737 MAX飞机的意向协议
RT9259A应用电路及参数
中国EDA产业能否突围?
TIM材料超薄均热板的研究现状及发展趋势
LED工矿灯技术参数_LED工矿灯的选购
蜂窝物联网技术“三选二” 如何建网值得细思量
放大器的输入阻抗和输出阻抗是交流电阻还是直流电阻?
APS排产在线材线束行业的应用
群联电子推出全系列UFS芯片
涡街流量计的正确选择方法
Oculus新专利曝光,将采用光场相机进行眼动追踪
基于FPGA算法实现两路视频图像同步判别的研究分析
什么是主板硬件监控