老秦带你探索CCIX(五)

路科验证 2022-08-16 11:59

3. CCIX协议层

3.4 事务结构

3.4.1 请求事务

基于结构的不同请求类型如下:
全一致性读事务,包括:ReadUnique,ReadClean, ReadNotSharedDirty,ReadShared。其事务流程如下图。
  1. 请求芯片发出一个读请求事务,占用一个请求信用(request credit)。
  2. 主芯片返回读数据和相应的事务响应(使用CompData操作码)。
  3. 请求者发送确认响应,确认事务完成(使用CompAck操作码)。
非一致性或IO一致性读事务,包括:ReadNoSnp,ReadOnce,ReadOnceCleanInvalid,ReadOnceMakeInvalid。其事务流程如下图。
  1. 请求芯片发出一个读请求事务,占用一个请求信用(request credit)。
  2. 主芯片返回读数据和相应的事务响应(使用CompData操作码)。
此类事务不需要CompAck
 
无CompAck的无数据事务,包括:CleanShared,CleanSharedPersist,CleanInvalid,MakeInvalid,Evict. 其事务流程如下图。
  1. 请求芯片发出一个读请求事务,占用一个请求信用(request credit)。
  2. 主芯片返回Comp响应

有CompAck的无数据事务,包括:CleanUnique,MakeUnique。事务流程如下图。
  1. 请求芯片发出一个读请求事务,占用一个请求信用。
  2. 主芯片返回Comp响应
  3. 请求者发送确认响应,确认事务完成(使用CompAck操作码)。

所有写事务都使用相同的事务结构。事务流程如下图。
  1. 请求芯片发送一个写请求(带数据),占用一个请求信用和一个数据信用。
  2. 主芯片返回Comp响应。

原子事务基于Comp响应,分成两类,一类是AtomicStore(无数据),另一类是AtomicLoad,AtomicSwap,AtomicCompare(有数据)。事务流程如下图。
  1. 求芯片发送一个原子请求(带数据),占用一个请求信用和一个数据信用。
  2. 主芯片返回Comp(对应AtomicStore)或CompData(对应non-AtomicStore)。

3.4.2 监听事务

无数据响应的监听事务流程如下
  1. 主芯片发送监听请求,占用一个监听信用(snoop credit)。
  2. 被监听的芯片返回SnpResp,监听响应,包

有数据响应的监听事务流程如下
  1. 主芯片发出监听请求(除去SnpMakeI),占用一个监听信用。
  2. 被监听的芯片返回数据和响应的响应(SnpRespData或SnpRespDataPtl )
 

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


3.7.2     信用交换

两种信用交换方式:
  • 用于信用交换的独立消息,信用授予和信用返还消息。这种方式使用专用消息交换信用。消息格式允许信用授予和信用返还。在单个消息中的信用交换,必须是所有信用授予或所有信用返还,不允许混合使用这两种类型。
  • 包头内信用授权。数据包头信用授权使用数据包头中6-bit的MsgCredit字段。

信用交换的规则:

  • 对于每种信用类型,每个独立信用交换报文中可发送的最大信用数为255。
  • 发送超过255个信用需要使用额外的信息。
  • 独立的信用交换信息不需要发送任何形式的信用。
  • 信用交换信息的发送速率没有上限。
  • 允许单个数据包同时包含“数据包头信用授权”,和一条或多条“独立信用交换消息”。
  • 每个信用类型最多可授予1023个信用
【待续】

往期精彩:
老秦带你探索CCIX(一)
老秦带你探索CCIX(二)
老秦带你探索CCIX(三)
老秦带你探索CCIX(四)

路科验证 专注于数字芯片验证的系统思想和前沿工程领域。路桑是Intel资深验证专家,主持验证架构规划和方法学研究,担任过亿门级通信芯片的验证经理角色。在工程领域之外,他在西安电子科技大学和西安交通大学客座讲授芯片验证课程。著有书籍《芯片验证漫游指南》。
评论
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-11 17:58 86浏览
  • 时源芯微——RE超标整机定位与解决详细流程一、 初步测量与问题确认使用专业的电磁辐射测量设备,对整机的辐射发射进行精确测量。确认是否存在RE超标问题,并记录超标频段和幅度。二、电缆检查与处理若存在信号电缆:步骤一:拔掉所有信号电缆,仅保留电源线,再次测量整机的辐射发射。若测量合格:判定问题出在信号电缆上,可能是电缆的共模电流导致。逐一连接信号电缆,每次连接后测量,定位具体哪根电缆或接口导致超标。对问题电缆进行处理,如加共模扼流圈、滤波器,或优化电缆布局和屏蔽。重新连接所有电缆,再次测量
    时源芯微 2024-12-11 17:11 109浏览
  • 在智能化技术快速发展当下,图像数据的采集与处理逐渐成为自动驾驶、工业等领域的一项关键技术。高质量的图像数据采集与算法集成测试都是确保系统性能和可靠性的关键。随着技术的不断进步,对于图像数据的采集、处理和分析的需求日益增长,这不仅要求我们拥有高性能的相机硬件,还要求我们能够高效地集成和测试各种算法。我们探索了一种多源相机数据采集与算法集成测试方案,能够满足不同应用场景下对图像采集和算法测试的多样化需求,确保数据的准确性和算法的有效性。一、相机组成相机一般由镜头(Lens),图像传感器(Image
    康谋 2024-12-12 09:45 75浏览
  • 应用环境与极具挑战性的测试需求在服务器制造领域里,系统整合测试(System Integration Test;SIT)是确保产品质量和性能的关键步骤。随着服务器系统的复杂性不断提升,包括:多种硬件组件、操作系统、虚拟化平台以及各种应用程序和服务的整合,服务器制造商面临着更有挑战性的测试需求。这些挑战主要体现在以下五个方面:1. 硬件和软件的高度整合:现代服务器通常包括多个处理器、内存模块、储存设备和网络接口。这些硬件组件必须与操作系统及应用软件无缝整合。SIT测试可以帮助制造商确保这些不同组件
    百佳泰测试实验室 2024-12-12 17:45 63浏览
  • 一、SAE J1939协议概述SAE J1939协议是由美国汽车工程师协会(SAE,Society of Automotive Engineers)定义的一种用于重型车辆和工业设备中的通信协议,主要应用于车辆和设备之间的实时数据交换。J1939基于CAN(Controller Area Network)总线技术,使用29bit的扩展标识符和扩展数据帧,CAN通信速率为250Kbps,用于车载电子控制单元(ECU)之间的通信和控制。小北同学在之前也对J1939协议做过扫盲科普【科普系列】SAE J
    北汇信息 2024-12-11 15:45 113浏览
  • 本文介绍瑞芯微RK3588主板/开发板Android12系统下,APK签名文件生成方法。触觉智能EVB3588开发板演示,搭载了瑞芯微RK3588芯片,该开发板是核心板加底板设计,音视频接口、通信接口等各类接口一应俱全,可帮助企业提高产品开发效率,缩短上市时间,降低成本和设计风险。工具准备下载Keytool-ImportKeyPair工具在源码:build/target/product/security/系统初始签名文件目录中,将以下三个文件拷贝出来:platform.pem;platform.
    Industio_触觉智能 2024-12-12 10:27 68浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-12 10:13 40浏览
  • 天问Block和Mixly是两个不同的编程工具,分别在单片机开发和教育编程领域有各自的应用。以下是对它们的详细比较: 基本定义 天问Block:天问Block是一个基于区块链技术的数字身份验证和数据交换平台。它的目标是为用户提供一个安全、去中心化、可信任的数字身份验证和数据交换解决方案。 Mixly:Mixly是一款由北京师范大学教育学部创客教育实验室开发的图形化编程软件,旨在为初学者提供一个易于学习和使用的Arduino编程环境。 主要功能 天问Block:支持STC全系列8位单片机,32位
    丙丁先生 2024-12-11 13:15 66浏览
  • 首先在gitee上打个广告:ad5d2f3b647444a88b6f7f9555fd681f.mp4 · 丙丁先生/香河英茂工作室中国 - Gitee.com丙丁先生 (mr-bingding) - Gitee.com2024年对我来说是充满挑战和机遇的一年。在这一年里,我不仅进行了多个开发板的测评,还尝试了多种不同的项目和技术。今天,我想分享一下这一年的故事,希望能给大家带来一些启发和乐趣。 年初的时候,我开始对各种开发板进行测评。从STM32WBA55CG到瑞萨、平头哥和平海的开发板,我都
    丙丁先生 2024-12-11 20:14 73浏览
  • 全球智能电视时代来临这年头若是消费者想随意地从各个通路中选购电视时,不难发现目前市场上的产品都已是具有智能联网功能的智能电视了,可以宣告智能电视的普及时代已到临!Google从2021年开始大力推广Google TV(即原Android TV的升级版),其他各大品牌商也都跟进推出搭载Google TV操作系统的机种,除了Google TV外,LG、Samsung、Panasonic等大厂牌也开发出自家的智能电视平台,可以看出各家业者都一致地看好这块大饼。智能电视的Wi-Fi连线怎么消失了?智能电
    百佳泰测试实验室 2024-12-12 17:33 56浏览
  • 铁氧体芯片是一种基于铁氧体磁性材料制成的芯片,在通信、传感器、储能等领域有着广泛的应用。铁氧体磁性材料能够通过外加磁场调控其导电性质和反射性质,因此在信号处理和传感器技术方面有着独特的优势。以下是对半导体划片机在铁氧体划切领域应用的详细阐述: 一、半导体划片机的工作原理与特点半导体划片机是一种使用刀片或通过激光等方式高精度切割被加工物的装置,是半导体后道封测中晶圆切割和WLP切割环节的关键设备。它结合了水气电、空气静压高速主轴、精密机械传动、传感器及自动化控制等先进技术,具有高精度、高
    博捷芯划片机 2024-12-12 09:16 85浏览
  • RK3506 是瑞芯微推出的MPU产品,芯片制程为22nm,定位于轻量级、低成本解决方案。该MPU具有低功耗、外设接口丰富、实时性高的特点,适合用多种工商业场景。本文将基于RK3506的设计特点,为大家分析其应用场景。RK3506核心板主要分为三个型号,各型号间的区别如下图:​图 1  RK3506核心板处理器型号场景1:显示HMIRK3506核心板显示接口支持RGB、MIPI、QSPI输出,且支持2D图形加速,轻松运行QT、LVGL等GUI,最快3S内开
    万象奥科 2024-12-11 15:42 88浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦