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

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

3天内不再提示

浅谈CCIX协议层

路科验证 来源:老秦谈芯 作者:老秦谈芯 2022-08-24 09:44 次阅读

3. CCIX协议层

3.9 错误处理

事务错误可以分为两类:

数据错误。用于当访问了正确的地址位置,但在数据中检测到无法纠正的(uncorrectable)错误。通常,这在ECC或奇偶校验检测到数据损坏时使用。

非数据错误。当检测到与数据损坏无关的错误时使用。

3.10 数据包头

3.10.1 数据包头

CCIX支持两种数据包头:

PCIe兼容的数据包头,遵循PCIe协议规范

优化的数据包头,仅适用于CCIX协议规范

两种格式如下:

1857e3b8-22ce-11ed-ba43-dac502259ad0.png

187357d8-22ce-11ed-ba43-dac502259ad0.png

189fcfb6-22ce-11ed-ba43-dac502259ad0.png

每个数据包可以包含多条消息。数据包中的每条消息都包含一个MsgLen字段,该字段指示该消息的长度。

NoMessagePack属性用于控制是否支持在一个数据包中打包多条消息。当NoMessagePack属性为True时,发送方只需为每个数据包发送一条消息。当NoMessagePack属性为False时,根据MaxPacketSize参数的限制,允许发送方在每个数据包中打包多条消息。 MaxPacketSize属性用于控制最大数据包大小。这决定了数据包有效负载中的最大字节数,因此也是数据包头中长度字段指示的最大值。MaxPacketSize的值可以是128B,256B,512B。 每个接收接口必须声明NoMessagePack和MaxPacketSize属性,以便软件在系统配置期间可以获取这些信息

3.11 消息格式

3.11.1 读请求

读请求消息格式:

18c5c248-22ce-11ed-ba43-dac502259ad0.png

3.11.2 写请求

写请求消息格式:

18e13ca8-22ce-11ed-ba43-dac502259ad0.png

3.11.3 无数据响应

无数据响应消息格式:

191224c6-22ce-11ed-ba43-dac502259ad0.png

3.11.4 有数据响应

有数据响应消息格式:

19326344-22ce-11ed-ba43-dac502259ad0.png

3.11.5 监听

监听消息格式:

1954ddfc-22ce-11ed-ba43-dac502259ad0.png

3.11.6 杂项消息

Credited杂项消息格式

19830b32-22ce-11ed-ba43-dac502259ad0.png

信用交换消息格式:

19b51f6e-22ce-11ed-ba43-dac502259ad0.png

NOP消息格式:

19d309d4-22ce-11ed-ba43-dac502259ad0.png

协议错误消息格式:

19e98a38-22ce-11ed-ba43-dac502259ad0.png

3.11.7 请求链(Request Chaining)

CCIX支持一种请求链机制。如果一个请求是发送到前一个请求的后续地址,允许为这个请求发送一条优化的消息。

3.11.8 监听链(Snoop Chaining)

同样的,CCIX也支持监听链机制。

3.11.9 扩展字段

CCIX允许消息包含使用一个或多个消息扩展的附加字段。

1a1d6826-22ce-11ed-ba43-dac502259ad0.png

1a400b74-22ce-11ed-ba43-dac502259ad0.png

1a577e6c-22ce-11ed-ba43-dac502259ad0.png

3.12 可选特性和参数

3.13 消息路由和代理ID分配

3.13.1 消息路由

对于一条消息,Address或TgtID值决定下一个要去的端口或链路。对于这种路由,地址路由消息使用系统地址映射(System Address Map,SAM),ID路由消息使用ID映射(ID Map,IDM)。监听响应使用的路由表标记为SR-IDM。SR-IDM可以与树拓扑或完全连接拓扑中的IDM相同,但在其他一些拓扑中,如具有维度序路由的网络,SR-IDM的编程方式必须与IDM不同。

1a80b7d2-22ce-11ed-ba43-dac502259ad0.png

对于地址路由消息,是这样的:

在原始RA中,RSAM表用于确定请求是发送到本地目标还是路由到端口

如果是发到端口,通过使用端口SAM(PSAM)确定所使用的链接

到达下一个芯片前,重复该过程,直到请求到达HA所在的芯片

系统中的每个芯片都包括一个64个条目的ID映射表,该表中的每个条目都提供了路由详细信息,以达到适当的代理ID。ID路由独立于代理类型,具有相同代理ID值的所有代理必须位于同一芯片上,并且对这些代理ID的请求响应和监听使用相同的路由。完全连接和树状拓扑中的监听响应也采用相同的路径。 IDM表仅确定正在使用的每个有效代理ID,也就是代理位于芯片本地或用于到达最终代理路由上的下一个芯片的端口/链路。对于远程代理,在到达下一个芯片时,该芯片的IDM表用于确定下一次跳跃(hop),直到最终到达最终目的地。

3.13.2 广播监听路由

对于Broadcast和Broadcast-1监听请求消息,广播转发控制向量(Broadcast Forward Control Vector)与IDM表结合使用,以确定消息应如何传播。 在Broadcast监听路径上的任何一点上,广播监听都可以分为多个监听。转发到另一个出口端口的拆分侦听必须是广播侦听。在Broadcast-1监听路径上的任何一点上,都可以分为多个监听。转发到出口端口的拆分侦听必须最多包括一个Broadcast-1侦听和任意数量的Broadcast Snoop。分割Broadcast或Broadcast-1侦听的点负责收集和合并与接收到的监听请求相对应的所有监听响应。

3.13.3 TxnID分配

将TxnID分配给内存和监听请求必须遵循以下规则:

对于内存请求,TxnID对于从单个源到单个点的所有超发请求必须是唯一的

对于Unicast,Broadcast,Broadcast-1,监听TxnID必须是唯一的

参与端口聚合的CCIX端口允许重新映射TxnID。下图显示了聚合端口示例,芯片1上的端口可以重新映射它们发送的请求的TxnID。芯片2上的代理必须保证其通过聚合端口接收到的芯片1的请求的TxnID是唯一。

1aa7552c-22ce-11ed-ba43-dac502259ad0.png

3.13.4 代理ID

所有代理都使用6-bit的ID字段,分配给某一种代理的ID必须是唯一的,位于同一芯片上的不同类型的代理可以使用相同的ID值,同一ID不得分配给不同芯片上的不同代理类型。

3.13.5 目标ID确定

HA根据需要监听的RA的ID发出监听消息。可以根据监听过滤器(Snoop Filter)机制,或者目录(Directory)机制来确定需要监听的RA。 CCIX规范中的三种监听路由类型:

Unicast:仅向TgtID字段中指定的代理发送监听。

Broadcast:向所有请求代理发送监听。

Broadcast-1:向除TgtID字段中指定的请求代理外的所有请求代理发送监听。

代理ID分配总结

下表总结了不同消息类型中SrcID和TgtID分配的规则。

1aca7c5a-22ce-11ed-ba43-dac502259ad0.png

3.14 内存扩展

CCIX规范支持内存扩展。例如一个场景,主代理在一个芯片上,其负责管理的物理内存在另外一个芯片上。这时,HA充当请求者,发出请求并接受响应;而SA充当HA的角色,接受请求并负责返回响应。

关于内存扩展的限制就不展开了。

3.15 端口聚合

CCIX允许在两个芯片之间使用多个并行CCIX链路进行通信。这种连接方式被称为端口聚合,用于单个端口的可用吞吐量不足以满足两个芯片之间通信需求的情况。CCIX支持的可聚合端口数量是2,4,8,16。

1af3ef40-22ce-11ed-ba43-dac502259ad0.png

使用端口聚合时,以下规则适用于通过可用端口的事务路由:

请求消息和窥探消息根据地址解码进行路由

所有响应必须使用与相关请求相同的CCIX端口。

只有在确定使用同一CCIX链路的情况下,才允许在单个数据包中组合消息

端口聚合路由

总结: CCIX的协议层首先定义了CCIX一致性协议,包括缓存行的状态,状态间的转移,及对应的各种请求和响应事务;并且,对数据包头和消息格式进行了定义,包括各字段及其含义;然后是对CCIX消息路由的规范,消息可以通过地址或者ID路由,两种路由方式分别有各自的限制;最后是内存扩展和端口聚合的说明。 通过这一层,CCIX规范对系统内存扩展,芯片间一致性和数据共享提供了基础框架。

审核编辑:汤梓红

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

    关注

    8

    文章

    6509

    浏览量

    87556
  • PCIe
    +关注

    关注

    13

    文章

    1079

    浏览量

    80741

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

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

收藏 人收藏

    评论

    相关推荐

    网络互联协议基础

    一、OSI七协议 OSI(Open System interconnection)开放系统互连参考模型 ISO(International Standards Organization)国际标准
    发表于 05-29 06:25

    浅析串口通讯协议的物理协议

    什么是串口通讯?串口通讯协议物理的结构是由哪些部分组成的?串口通讯协议协议的主要标准是什么?
    发表于 10-22 09:30

    串口通讯协议的物理协议看完你就懂了

    串口通讯协议的物理协议看完你就懂了
    发表于 12-10 06:00

    浅谈架构原理

    浅谈架构原理
    发表于 01-16 09:14

    一文弄懂CCIX协议

    3. CCIX协议3.1 介绍每个CCIX代理都有一个ID,通过ID进行消息路由。每个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

    一窥CXL协议

    看出来,CXL也是在PCIe的分层架构上做了扩展。但是和CCIX不同,CXL为CXL.cache和CXL.mem增添了新的事务(Transaction Layer)和链路层(Link Layer),所以也可以认为CXL.cache和CXL.mem是两个全新的
    发表于 09-09 15:03

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

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

    一文详细了解CCIX规范

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

    CCIX协议层消息字段的含义

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

    一文详解CCIX规范

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

    CCIX协议层详解

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

    CCIX传输层详解

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

    CCIX物理层详解

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

    CCIX传输层详解

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