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个信用

【待续】

审核编辑 :李倩

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

    关注

    462

    文章

    53540

    浏览量

    459200
  • 数据
    +关注

    关注

    8

    文章

    7315

    浏览量

    93988

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    工业网口防护方案:EtherCAT 协议的静电浪涌防护设计

    讲解一、工业常用网口协议分类工业场景中,网口协议需兼顾“通信稳定性”“同步精度”“抗干扰能力”三大核心需求,不同协议因设计目标差异,在防护方案选型上存在本质区别,主流分类如下:实时控制
    的头像 发表于 10-09 17:41 306次阅读
    工业网口防护方案:EtherCAT <b class='flag-5'>协议</b>的静电浪涌防护设计

    什么是ANT+协议? 用途

    ANT + 协议是一种基于 ANT 协议的标准化应用协议,由 Nordic 的子公司 Dynastream Innovations 开发,主要用于解决物联网设备间的互操作性问题,在运
    发表于 09-29 15:42

    分布式能源并网的通信协议有哪些?

    在分布式能源(如光伏、储能、微电网)并网场景中,通信协议需满足 设备互联、数据传输、远程控制、调度协同 等核心需求,不同协议因设计目标不同,适用于从设备到调度的不同层级。以下按 “
    的头像 发表于 09-18 16:40 977次阅读
    分布式能源并网的通信<b class='flag-5'>协议</b>有哪些?

    蓝牙打印机电路怎么设计?芯片如何选型?APP和小程序的BLE通讯协议如何制定?

    与蓝牙芯片通讯的BLE协议怎么制定?蓝牙BLE芯片如何选型?一文给你讲解清楚
    的头像 发表于 09-08 10:02 799次阅读
    蓝牙打印机电路怎么设计?芯片如何选型?APP和小程序的BLE通讯<b class='flag-5'>协议</b>如何制定?

    蓝牙协议分析仪能检测哪些问题?

    蓝牙协议分析仪是调试蓝牙设备、验证协议合规性及解决通信问题的核心工具,能够检测从物理到应用的全链路问题。以下是其可检测的主要问题类型及具体场景分析:一、物理
    发表于 07-15 15:52

    第十八章 I2C通信测试

    本章介绍了I2C协议,其物理用SDA和SCL双线,支持多设备:协议含起始/停止信号、应答机制等。还讲解W55MH32的I2C外设及初始化
    的头像 发表于 06-19 17:07 1034次阅读
    第十八章 I2C通信测试

    第十七章 SPI——读写串行FLASH

    本章介绍SPI协议,其为高速全双工通信总线,含物理协议内容,还讲解W55MH32的SPI特性、初始化及DMA相关配置。
    的头像 发表于 06-19 17:06 1051次阅读
    第十七章 SPI——读写串行FLASH

    RDMA简介3之四种子协议对比

    分别介绍这四种子协议。图1RDMA四种子协议网络层级关系图InfiniBand:InfiniBand是一种专为RDMA设计的网络,其传输、网络及链路层均遵循IB
    发表于 06-04 16:05

    NVMe协议研究扫盲

    。NVMe-oF协议进一步扩展了NVMe协议在网络传输中的应用,该协议定义了使用多种通用的传输协议来进行数据的传输,包括FC、Infini
    发表于 06-02 23:28

    协议兼容性实测:深控网关如何啃下300+工业协议的硬骨头?

    深控工业数据采集网关通过三协议融合架构,实现了对300+工业协议的深度兼容
    的头像 发表于 04-10 15:36 847次阅读

    深入浅出解析低功耗蓝牙协议

    Bluetooth LE协议栈为什么要分层?怎么理解Bluetooth LE“连接”?如果Bluetooth LE协议只有ATT没有GATT会发生什么? 一、
    的头像 发表于 04-09 14:49 1009次阅读
    深入浅出解析低功耗蓝牙<b class='flag-5'>协议</b>栈

    传感器网络通信协议的核心技术要素

          无线传感网络协议是规范无线传感器网络节点通信的技术标准体系,其架构由分层协议模型构建。 协议层级包含物理、数据链路层、网络
    的头像 发表于 04-02 10:30 778次阅读
    传感器网络通信<b class='flag-5'>协议</b>的核心技术要素

    自动化通信协议Profinet转EtherCAT:提升布贴合效率

    不同的通信协议。今天,我们将探讨开疆智能Profinet转EtherCAT网关KJ-PN-ECATM及其在布贴合机中的应用。Profinet是基于以太网的工业自动化通信
    的头像 发表于 03-31 10:39 507次阅读
    自动化通信<b class='flag-5'>协议</b>Profinet转EtherCAT:提升<b class='flag-5'>层</b>布贴合效率

    ptp协议的基本原理解析

    连接来传输数据。PPP协议支持多种网络协议,如IP(Internet Protocol),IPX(Internetwork Packet Exchange)等,并且提供了一种封装数据包的方法,以便
    的头像 发表于 12-29 10:08 1696次阅读

    MultiGABSE-AU物理PMA子及PMD子的相关机制

    在之前的文章中,我们介绍了IEEE 802.3cz[1]协议,MultiGABSE-AU物理中XMII、PCS子以及两个可选功能的相关内容,本篇将介绍MultiGABSE-AU物理
    的头像 发表于 12-23 10:20 1690次阅读
    MultiGABSE-AU物理<b class='flag-5'>层</b>PMA子<b class='flag-5'>层</b>及PMD子<b class='flag-5'>层</b>的相关机制