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

【待续】

审核编辑 :李倩

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

    关注

    453

    文章

    50264

    浏览量

    421176
  • 数据
    +关注

    关注

    8

    文章

    6839

    浏览量

    88756

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

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

收藏 人收藏

    评论

    相关推荐

    SATA主机协议的物理的实现过程

    这里讲解SATA主机协议的物理的实现过程。
    的头像 发表于 10-22 15:17 142次阅读
    SATA主机<b class='flag-5'>协议</b>的物理<b class='flag-5'>层</b>的实现过程

    TCP协议是什么

    在网络通信的广阔领域中,TCP(Transmission Control Protocol,传输控制协议)扮演着举足轻重的角色。作为TCP/IP协议族中的核心协议之一,TCP位于网络
    的头像 发表于 10-09 13:54 291次阅读

    LIN协议和物理要求

    电子发烧友网站提供《LIN协议和物理要求.pdf》资料免费下载
    发表于 08-30 09:36 1次下载
    LIN<b class='flag-5'>协议</b>和物理<b class='flag-5'>层</b>要求

    请问如何将esp32-idf内部的应用网络协议关联到自己写的网络设备上?

    使用ESP32-IDF里面的应用协议如MQTT、HTTP。但网络设备是自己添加的4G模块,请问有没有类似的应用例程,如何将4G网络模块关联到MQTT应用协议里面。
    发表于 06-21 13:47

    协议有哪些?TCP/ IP的七协议介绍

    协议,也称为OSI参考模型,是指开放式系统互联通信参考模型,由国际标准化组织设置。该模型分为以下七: 1.物理:主要负责数据传输的物理介质传输,如电信号。 物理
    的头像 发表于 04-22 14:17 2000次阅读

    osi七模型各层功能及协议简述

    OSI七模型是一种将计算机网络通信分为七个层次,并定制了每个层次的功能和协议的标准模型。这个模型的设计是为了使不同的计算机网络设备和系统能够进行互操作。以下是对每个层次的功能和协议的详细描述,以及
    的头像 发表于 02-04 18:06 1913次阅读

    通信网络协议栈之UDP协议技术解析

    在通常的网络协议栈中,TCP/IP协议栈是一个常见的示例,其中UDP和TCP都是传输协议。传输负责提供端到端的数据传输服务,它在网络
    发表于 02-01 11:00 856次阅读
    通信网络<b class='flag-5'>协议</b>栈之UDP<b class='flag-5'>协议</b>技术解析

    netconf协议是什么?netconf协议的优点

    网络设备的配置和状态信息。 NETCONF协议的架构包括四个层次,分别是: 1. 传输:负责NETCONF协议的传输。 2. 消息:负责NETCONF
    的头像 发表于 01-30 14:27 1759次阅读

    osi七模型各层功能及协议 osi七模型有哪些

    OSI七模型,是开放式系统互联(Open System Interconnection,简称OSI)参考模型,是国际标准化组织(ISO)在1984年定义的一种网络协议架构,用于划分和组织计算机网络
    的头像 发表于 01-25 11:03 1.2w次阅读

    snmp协议的主要功能 snmp协议在哪一

    SNMP(Simple Network Management Protocol)是一种用于网络管理的应用协议。它主要用于监控和管理网络上的设备以及收集设备状态和性能信息。SNMP协议提供了一种标准
    的头像 发表于 01-22 15:00 1682次阅读

    osi七模型各层功能及协议

    OSI七模型是一种将计算机网络协议按照不同功能划分为不同层级的标准模型。每一都负责处理特定的网络功能,并与上下相邻的进行通信。下面是对每一
    的头像 发表于 01-15 10:29 1313次阅读

    osi七模型各层功能及协议

    OSI(Open Systems Interconnection)七模型是一种将计算机网络通信协议划分为七个不同层次的模型,每层都有其特定的功能和协议。下面将详细介绍每个层次的功能及相关的
    的头像 发表于 01-10 18:06 2081次阅读

    如何选择传输协议?TCP和UDP的优缺点和适用场合

    如何选择传输协议?TCP和UDP的优缺点和适用场合  传输协议是计算机网络中的重要组成部分,它负责在主机之间传输数据。常见的传输
    的头像 发表于 12-11 11:42 935次阅读

    Interbus协议是什么?Interbus协议的特点

    Interbus协议是一种用于工业自动化通信的协议,它完全遵照ISO/OSI开放系统互连模型,并符合IEC61158现场总线三参考模型。Interbus参考模型包括物理、数据链路层
    的头像 发表于 12-08 17:30 661次阅读

    SPI协议知识讲解

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