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

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

3天内不再提示

CCIX协议层讲解

安芯教育科技 来源:安芯教育科技 作者:安芯教育科技 2022-07-27 09:28 次阅读

3. CCIX协议层

3.4 事务结构

3.4.1 请求事务

基于结构的不同请求类型如下:

全一致性读事务,包括:ReadUnique,ReadClean, ReadNotSharedDirty,ReadShared。其事务流程如下图。

请求芯片发出一个读请求事务,占用一个请求信用(request credit)。

芯片返回读数据和相应的事务响应(使用CompData操作码)。

请求者发送确认响应,确认事务完成(使用CompAck操作码)。

950c1208-0d48-11ed-ba43-dac502259ad0.png

非一致性或IO一致性读事务,包括:ReadNoSnp,ReadOnce,ReadOnceCleanInvalid,ReadOnceMakeInvalid。其事务流程如下图。

请求芯片发出一个读请求事务,占用一个请求信用(request credit)。

主芯片返回读数据和相应的事务响应(使用CompData操作码)。

此类事务不需要CompAck

951e01e8-0d48-11ed-ba43-dac502259ad0.png

无CompAck的无数据事务,包括:CleanShared,CleanSharedPersist,CleanInvalid,MakeInvalid,Evict. 其事务流程如下图。

请求芯片发出一个读请求事务,占用一个请求信用(request credit)。

主芯片返回Comp响应

953c3a6e-0d48-11ed-ba43-dac502259ad0.png

有CompAck的无数据事务,包括:CleanUnique,MakeUnique。事务流程如下图。

请求芯片发出一个读请求事务,占用一个请求信用。

主芯片返回Comp响应

请求者发送确认响应,确认事务完成(使用CompAck操作码)。

954a31be-0d48-11ed-ba43-dac502259ad0.png

所有写事务都使用相同的事务结构。事务流程如下图。

请求芯片发送一个写请求(带数据),占用一个请求信用和一个数据信用。

主芯片返回Comp响应。

956b61b8-0d48-11ed-ba43-dac502259ad0.png

原子事务基于Comp响应,分成两类,一类是AtomicStore(无数据),另一类是AtomicLoad,AtomicSwap,AtomicCompare(有数据)。事务流程如下图。

求芯片发送一个原子请求(带数据),占用一个请求信用和一个数据信用。

主芯片返回Comp(对应AtomicStore)或CompData(对应non-AtomicStore)。

9587a0bc-0d48-11ed-ba43-dac502259ad0.png

3.4.2 监听事务

无数据响应的监听事务流程如下

主芯片发送监听请求,占用一个监听信用(snoop credit)。

被监听的芯片返回SnpResp,监听响应,包

95a40158-0d48-11ed-ba43-dac502259ad0.png

有数据响应的监听事务流程如下

主芯片发出监听请求(除去SnpMakeI),占用一个监听信用。

被监听的芯片返回数据和响应的响应(SnpRespData或SnpRespDataPtl )

95db4e10-0d48-11ed-ba43-dac502259ad0.png

3.5 地址,控制和数据

3.5.1 地址和数据分配

对于读、无数据、写和原子事务,使用Addr字段和NonSec比特位访问内存位置。对于访问小于一个缓存行大小的ReadNoSnp、WriteNoSNPTL、WriteUniquePtl和原子事务,如果Addr[5:0]不全为零,则需要包含低阶地址位的扩展字段。如果Addr[5:0]全部为零,则允许(但不要求)使用扩展字段。原子事务中的地址必须与操作数大小对齐。 对于监听请求,Addr字段和NonSec指向可以被监听的地址。这两个字段足以唯一标识监听要访问的缓存行。

3.5.2 请求属性

请求属性表示请求数据的大小、内存类型及其属性。内存类型可以是设备(device)或普通(normal)。关于这两种类型可以参考以前的文章。

3.5.3 请求允许的内存类型

请求允许的内存类型包括:

ReadNoSnp/WriteNoSnp可以是Normal Non-cacheable或Device

除ReadNoSnp外的所有读事务只能写回。

所有无数据事务都可以写回

CleanShared、CleanSharedPersist、CleanInvalid和MakeInvalid的无数据事务也可以是Normal Non-cacheable或Device。

除WriteNonP外的所有写事务只能进行写回。

原子事务可以写回,Normal Non-cacheable或Device

3.5.4数据和字节使能

在读请求或写请求中,ReqAttr字段的Size子字段决定了事务相关联的数据字节数。Size子字段的允许值为1B、2B、4B、5 8B、16B、32B、64B、128B。读响应或写请求中包含的数据字节可以是8B、16B、32B、64B或128B。仅当缓存行的大小配置为128B时,才允许使用128B。

当ReqAttr字段中的Size子字段为1B、2B或4B时,读响应消息或写请求消息中包含的数据字节数为8B。在所有其它情况下,请求的ReqAttr字段中的Size子字段与读响应消息或写请求消息中包含的数据字节数相同。当ReqAttr字段中的Size子字段为1B、2B或4B时,请求数据在消息中的位置由请求中的Address字段(Addr)确定。 对于以下的写请求,可以使用字节使能:

WriteNoSnpPtl

WriteUniquePtl

WriteBackPtl

3.6 排序

3.6.1 多拷贝原子性(multi-copy atomicity)

CCIX要求多拷贝原子性。所有组件都必须确保写请求是多拷贝原子的。如果满足以下两个条件,则写请求为多拷贝原子:

对同一位置的所有写入都是序列化的,也就是说,所有请求者都会以相同的顺序观察到所有写操作,尽管有些请求者可能不会观察到所有写入。

在所有请求者观察到写操作之前,对此位置的读操作不会得到写操作的值。

其实以上的要求,就是要确保存储一致性。 在CCIX规范中,如果两个缓存行地址和非安全属性相同,则认为这两个地址是相同的。

3.6.2 请求响应和排序

为了确保事务的先后顺序,无论是来自相同代理还是不同代理的Comp和CompData响应要遵循如下的规则:

对于Normal non-cacheable或Device的读事务和原子事务,CompData响应可确保该事务可被任何代理在相同端点地址范围内的后续事务观察到。端点地址范围的大小由实现定义。

对于WriteBack位置的读取和原子事务,CompData响应保证该事务可被任何代理到同一位置的后续事务观察到。

对于Device-nRnE或Device-nRE位置的写事务、无数据事务和原子事务,Comp响应保证该事务可被任何代理在同一端点地址范围内的后续事务观察到。端点地址范围的大小取决于具体实现。

对于WriteBack位置的写事务、无数据事务和原子事务。Comp响应可确保事务可被任何代理到同一位置的后续事务观察到。

3.7流量控制和协议信用

此处穿插一些关于“信用”的数据传输机理。如果发送方和接收方之间没有什么握手协议的话,发送方就不知道接收方的具体情况。此时,如果接收方没有足够的能力接收新的数据,而发送方依然源源不断的发送数据,那么就很可能造成数据的丢失。因此,接收方需要一定的机制来控制数据流量。最直观的办法,就是当接收方不能接收新的数据时,要及时告知发送方,发送方应根据接收方的状态调整发送数据,这就是常说“反压(Back Pressure)”机制。 在简单的SoC设计中,可以通过总线实现接收方的“反压”,比如在APB总线中,从机(Slave)可以通过驱动ready信号来与主机(Master)共同控制数据传输。对于复杂的SoC设计,通过总线方式“反压”可能就不适合了,需要其它新的机制。基于信用的传输流量控制就是其中之一。其基本原理是,在发送方和接收方事先协调好一组“信用”值,发送方每发一次数据需要占用一个或几个“信用”,如果发送方的“信用”耗尽,就不能再发送新的数据,必须等待足够的“信用”;接收方每处理完一笔发送方的数据,返回一个或者几个“信用”给发送方,发送方得到新的“信用”以后就可以继续发送数据了。 关于基于信用的流量控制,有很多文章,具体实现也不尽相同,这里就不再展开了。

3.7.1 协议信用

定义了四种信用类型来管理消息流:

Request

Data

Snoop

Misc

消息的接收者必须授予信用,也就是说,向它有链接的每个发送者芯片发送信用。对于请求、数据和Snoop消息信用,信用的授予是通过其它消息或明确的信用交换机制进行的。对于杂项消息信用,信用的授予仅通过明确的信用交换机制,或通过使用credited杂项消息中的MiscCredit字段。

95fd8c96-0d48-11ed-ba43-dac502259ad0.png

只有当发送方收到目标芯片的请求信用时,才能发送non-write或non-atomic请求。 只有当发送方从接收方收到请求信用和数据信用时,才能发送写请求或原子请求。 只有当发送方从接收方收到snoop信用时,才能发送snoop请求。 响应不需要任何明确的信用交换,所有响应都必须被接受。 只有当适当数量的杂项信息信用可用时,才能发送credited杂项信息。

3.7.2 信用交换

两种信用交换方式:

用于信用交换的独立消息,信用授予和信用返还消息。这种方式使用专用消息交换信用。消息格式允许信用授予和信用返还。在单个消息中的信用交换,必须是所有信用授予或所有信用返还,不允许混合使用这两种类型。

包头内信用授权。数据包头信用授权使用数据包头中6-bit的MsgCredit字段。

信用交换的规则:

对于每种信用类型,每个独立信用交换报文中可发送的最大信用数为255。

发送超过255个信用需要使用额外的信息。

独立的信用交换信息不需要发送任何形式的信用。

信用交换信息的发送速率没有上限。

允许单个数据包同时包含“数据包头信用授权”,和一条或多条“独立信用交换消息”。

每个信用类型最多可授予1023个信用

【待续】

审核编辑 :李倩

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

    关注

    447

    文章

    47828

    浏览量

    409213
  • 数据
    +关注

    关注

    8

    文章

    6514

    浏览量

    87614

原文标题:技术分享 | CCIX(五)

文章出处:【微信号:Ithingedu,微信公众号:安芯教育科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    SD2.0协议为什么最大只支持32GB?

    SD2.0协议中CMD命令为32位,32位数据地址以512字节为一个块,所以最大只支持32GB,一直没明白怎么计算的,求助大佬们讲解一下
    发表于 04-10 07:21

    漫谈AMBA总线-AXI4协议的基本介绍

    本文主要集中在AMBA协议中的AXI4协议。之所以选择AXI4作为讲解,是因为这个协议在SoC、IC设计中应用比较广泛。
    发表于 01-17 12:21 398次阅读
    漫谈AMBA总线-AXI4<b class='flag-5'>协议</b>的基本介绍

    【干货分享】6种延时电路原理讲解

    【干货分享】6种延时电路原理讲解
    的头像 发表于 12-15 09:24 704次阅读
    【干货分享】6种延时电路原理<b class='flag-5'>讲解</b>

    接地变接线原理图讲解

    接地变接线原理图讲解
    的头像 发表于 11-30 09:53 665次阅读
    接地变接线原理图<b class='flag-5'>讲解</b>

    SPI协议知识讲解

    电子发烧友网站提供《SPI协议知识讲解.ppt》资料免费下载
    发表于 11-16 10:41 2次下载
    SPI<b class='flag-5'>协议</b>知识<b class='flag-5'>讲解</b>

    基于串口有哪些标准通讯协议

    像RS232485这些物理就不用说了,我想了解的是哪些标准协议。 比如MODBUSRTUASCII 等 还有其他的标准协议吗?
    发表于 11-06 06:35

    ARM Neoverse™N1系统开发平台技术参考手册

    Neoverse N1处理器集群。 该系统通过以下方式在高速缓存一致性加速器互连(CCIX)协议的背景下演示ARM技术: ·在N1 SoC和加速卡之间运行一致的流量。 ·两个N1 SoC之间的连贯通信。 ·支持开发支持CCIX
    发表于 08-17 08:14

    FPGA I/O口时序约束讲解

    前面讲解了时序约束的理论知识FPGA时序约束理论篇,本章讲解时序约束实际使用。
    发表于 08-14 18:22 925次阅读
    FPGA I/O口时序约束<b class='flag-5'>讲解</b>

    PLC通讯协议MODBUS的应用及编程

    叙述:现为大家讲解一下MODBUS的应用,现在工业控制上位机和下位机通信大部分采用通信协议为MODBUS,可想而知机器与机器通信的重要性。
    的头像 发表于 08-09 10:22 897次阅读
    PLC通讯<b class='flag-5'>协议</b>MODBUS的应用及编程

    AMBA DTI-TBU协议指南

    的缩略语。 本章介绍DTI-ATU协议的信息组。 第六章:导言 本章介绍DTI-ATUS协议的信息组。 第一章介绍DTI-ATS协议的缩略语组。 本章介绍DTI-ATU协议的传送
    发表于 08-02 10:05

    推挽输出与开漏输出讲解

    推挽输出与开漏输出讲解
    的头像 发表于 07-28 14:01 1357次阅读
    推挽输出与开漏输出<b class='flag-5'>讲解</b>

    使用CCIX进行高速缓存一致性主机到FPGA接口的评估

    向DSA慢慢靠拢;异构计算的核心之一是互连,传统的PCIe总线缺乏缓存一致性机制,导致内存性能低下,延迟低于可接受水平,因此出现了CCIX和CXL等协议,这些协议基于PCIe又高于PCIe,在继承PCIe兼容性的基础上,又提供了
    的头像 发表于 06-29 09:56 559次阅读
    使用<b class='flag-5'>CCIX</b>进行高速缓存一致性主机到FPGA接口的评估

    PLC MODBUS通信协议的应用及编程

    现为大家讲解一下MODBUS的应用,现在工业控制上位机和下位机通信大部分采用通信协议为MODBUS,可想而知机器与机器通信的重要性。
    的头像 发表于 06-25 10:25 2457次阅读
    PLC MODBUS通信<b class='flag-5'>协议</b>的应用及编程

    CCIX over PCIe:用于AI、网络、4G/5G和存储设计的更快相干互连

    下一代 SoC 设计需要更快的相干互连,以实现机器学习、网络处理、存储卸载、内存数据库和 4G/5G 无线技术等高性能应用。CCIX(加速器缓存一致性互连)是一种新的协议标准,它提供了缓存一致性和对等处理的优势,可实现更快的互连。
    的头像 发表于 05-26 11:09 3520次阅读
    <b class='flag-5'>CCIX</b> over PCIe:用于AI、网络、4G/5G和存储设计的更快相干互连

    德索讲解LVDS连接注意事项

    德索五金电子工程师指出,如今大多数电子设备都有LVDS连接器,它们通过LVDS实现数据交换和/或对便携设备的电池充电。虽然LVDS通信协议,该协议已经相当普及,但对于供电的设备时需要LVDS连接的应用程序,一定要注意一些安全注意事项。下面由德索工程师来为大家
    的头像 发表于 05-04 17:35 655次阅读
    德索<b class='flag-5'>讲解</b>LVDS连接注意事项