CHI中的resp type

news2024/11/15 14:01:50

Rsp分为4大类;


=======================Completion response===========================
□ 除了PCrdReturn,PrefetchTgt,其他所有的trans都需要comp resp;
□ 通常是一个trans的最后一个发送的message, 来自completer; 这个响应保证trans到达了POS/POC;
□ 通常RN还会发送一个compack;
Read and Atomic transaction completion
□ Read trans的响应,既可以通过compdata opcode, 直接从RDATA chnnel返回,也可以分成两个,一个通过RespsepDat从RSP channel返回,一个利用DataSepResp从RDAT channel返回;
□ Atomic的响应,是用compdata直接从RDATchannel 返回;
□ CompData/DataSepResp响应,包含的resp域段指示了如下信息:
        □ Cache state, 指示当前RN, 最终获得什么状态;
        □ Pass dirty, 指示最终flush的任务,是否传递给了当前RN;
□ RespSepData也包含resp域段,这个域段要么设置成全0,要么和DataSepResp保持一致;


□ 对于有错误指示的resp, 其cache state可以是任意值;

Dataless transaction completion
□ Dataless transactions and the MakeReadUnique transaction without data的响应,来自RSP通道;
□ 可以使用的opcode有Comp, CompPersist, CompCMO, or CompStashDone opcode;
□ 响应中的resp域段包含如下信息:
        □ Cache state, 对于非CMO trans, 指示了当前RN中的cacheline的最终状态;
        □ 对于CMOtrans, 此域段无效,当前cacheline的状态不变;

□ 对于有错误指示的resp, 其cache state可以是任意值;

 Write and Atomic transaction completion
□ Write and AtomicStore completion从resp通道返回,可以使用comp/compDBIDResp opcode;
□ Resp filed必须设置成0;Cache state和pass dirty的信息,包含在了writedata中;
□ Comp:
    当completion需要分开返回comp和dbidresp/dbidrespord时,使用;
□ Compdbidresp:
    当completion需要和dbidresp/dbidrespord合并返回时使用;

□ Comp/compDBIDResp 的选择:
    所有copyback的请求,必须使用compDBIDResp的响应;
    Non-copyback和AtomicStore,两者都可以使用;

□ DVM的响应,resp filed也是0;

==========================WriteData response===============================
Writedata resp通过WDATAchannel发送,可以使用如下的一些opcode;
CopyBackWrData
□ Used for WriteBack, WriteClean, WriteEvictFull, and WriteEvictOrEvict, and CopyBack Combined Write transactions
□ 将当前RN中该cacheline的数据,发送到HN;
指示了在发送该copyback操作时,当前RN中该cacheline的状态;


NonCopyBackWrData
□ Used for WriteUnique and WriteNoSnp, and Non-CopyBack Combined Write transactions,and dvm trans;
□ Cacheline 状态指示一定是invalid;


NCBWrDataCompAck
□ Used for Non-CopyBack Write and Combined Write transactions.
□ Combined NonCopyBackWrData and CompAck. 
□ The cache state in the response must be I.


WriteDataCancel
□ Used to inform the Completer that a Write request is canceled before write data is sent
□ A Request Node can send WriteDataCancel instead of NonCopyBackWrData in WriteNoSnpPtl, WriteUniquePtl, WriteUniquePtlStash, and corresponding Combined Write transactions
□ A Home Node can send WriteDataCancel instead of NonCopyBackWrData in WriteNoSnpFull, WriteNoSnpPtl, and corresponding Combined Write transactions to the Subordinate Node
□ 访问device memory时,不能使用;
□ BE filed全0;
□ Cacheline state必须是invalid:


□ Resp域段包含如下信息:
        □ Cache state, 表明在发送请求之前的状态,可能不是准确的,因为在发送请求之后,可能会收到其他人的snoop信息;
        □ Pass dirty, 同上;
        

 

==========================Snoop response==============================
A Snoop response can be with or without data
Snoop response without data
□ 在没有数据传输时使用;
□ 在srsp channel发送;
□ 可以包含data pull信息;
□ 经常使用在给SnpDVMOp transaction回响应;
Snoop response without data to Home and Direct Cache Transfer (DCT)
□ 在需要给RN发送数据,但是不需要给HN发送数据时使用;
□ It is sent on the SRSP channel and uses the SnpRespFwded opcode
Snoop response with data
□ 在需要将整条cacheline的数据发送给HN时使用;
□ It is sent on the WDAT channel and uses the SnpRespData opcode
□ It can include a Data Pull request for stash snoops
Snoop response with partial data
□ 有partial cacheline的数据需要发送给HN时使用;
□ It is sent on the WDAT channel and uses the SnpRespDataPtl opcode. 
□ It can include a Data Pull request for stash snoops.
□ 当cachline的状态是UDP,且snp不是SnpMakeInvalid时使用;
Snoop response with data to Home and DCT
□ 当数据既要发送给HN,也要发送给RN时使用(RN->HN);
□ It is sent on the DAT channel and uses the SnpRespDataFwded opcode.


同样,resp filed包含两个信息;
□ Cache state, 表示当前这个被snp的RN,在发送了snoop resp之后的状态;
□ Pass dirty,只能在Snoop response with data时有效;
□ Snoop resp还包含了FwdState field,在Snoop responses with DCT时使用,用来指示cache state和pass dirty是传递给RN的;

 


□ 此处两个状态不一致,第一个是被snp的RN, 之后的状态,第二个是被snp的RN, 要把状态fwd给发起请求的RN,;
□ Snp resp中的cacheine state必须是准确的,即使resp err指示当前有data err;

 

========================Miscellaneous response============================
□ 不能归结到上述三种响应之中的其他响应;
□ 其resp/resperr 域段,没有具体的实际意义,必须设置成0;
CompAck
□ 当RN收到comp响应是使用;
□ Used by Read, Dataless, WriteNoSnp, WriteEvictOrEvict, and WriteUnique transactions
□ (copyback的操作,是看writedata, 所以不需要compack)
RetryAck
□ Response is permitted for any request transaction except PCrdReturn or PrefetchTgt.
PCrdGrant
ReadReceipt

□ 当某个请求具有order需求时,会发送该响应;
□ SN发送时,指示的时它接受了这个读请求,不会再发送retry ack;
□ Applies to ReadNoSnp, ReadNoSnpSep, and ReadOnce* request transactions.
DBIDResp
□ Applies to Write, Combined Write, DVMOp, and Atomic request transactions.
□ HN->RN, SN->HN或者RN;
DBIDRespOrd
□ Applies to Write, Combined Write, and Atomic request transactions
□ DBIDRespOrd is not permitted in DVM transactions
□ HN->RN
Persist
□ 对于CleanSharedPersistSep trans,completer发送该响应,表明写数据已经到达了POP;
StashDone
□ Sent by a Completer for StashOnceSep to signal the ordering of the request at the Completer
TagMatch
□ Sent by the Completer for a Write transaction with TagOp of Match to signal the completion of the Tag Match operation.

Silent cache state transitions
□ RN可以因为内部的一些event,改变cacheline状态,而不需要通知其他人;

□ 主要其实就是现在unique的权限是我的,当然可以随时修改我的数据;

RN在发送对应的trans,得到响应响应之后的状态转变参考:
Cache state transitions at a Requester

RN在被snopp之后,状态的转变参考:
Cache state transitions at a Snoopee
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/817721.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pytorch深度学习快速入门

放弃个人素质 享受缺德人生 拒绝精神内耗 有事直接发疯 一、安装Anaconda 官网下载地址 选择适合的系统版本进行安装即可 安装完之后,可以看到下面的内容 二、使用Anaconda创建开发环境 这也是为什么要使用Anaconda的原因,可以创建不同的开发环境&am…

剑指offer46.把数字翻译成字符串

一开始我的想法是从后面向前面不断对100取余,如果这个余数大于等于10并且小于等于25,说明这两位既可以做一个大的字母,也可以做两个小的字母。所以对于前面的n-2个数字来说,后面的连个数字使得前面的n-2个数字的结果数翻了一倍&am…

Statefulset 实战 1

上一部分与大家分享到 Statefulset 与 RplicaSet 的区别,以及 Statefulset 的特点,能做的一些事情及一些注意事项 现在我们来尝试使用 Statefulset 来部署我们的应用,我们可以需要有应用程序,然后有持久化卷 开始使用 Statefuls…

28.利用fminsearch、fminunc 求解最大利润问题(matlab程序)

1.简述 1.无约束(无条件)的最优化 fminunc函数 : - 可用于任意函数求最小值 - 统一求最小值问题 - 如求最大值问题: >对函数取相反数而变成求最小值问题,最后把函数值取反即为函数的最大值。 使用格式如下 1.必须预先把函数存…

【机器学习】Gradient Descent for Logistic Regression

Gradient Descent for Logistic Regression 1. 数据集(多变量)2. 逻辑梯度下降3. 梯度下降的实现及代码描述3.1 计算梯度3.2 梯度下降 4. 数据集(单变量)附录 导入所需的库 import copy, math import numpy as np %matplotlib wi…

Django的生命周期流程图(补充)、路由层urls.py文件、无名分组和有名分组、反向解析(无名反向解析、有名反向解析)、路由分发、伪静态

一、orm的增删改查方法(补充) 1. 查询resmodels.表名(类名).objects.all()[0]resmodels.表名(类名).objects.filter(usernameusername, passwordpassword).all()res models.表名(类名).objects.first() # 判断,判断数据是否有# res如果查询…

如何通过github学生包认证(远程不在学校或在校但位置报错均可用)

如何通过github学生包认证 在经历11次被拒绝,查阅多方博客后,终于成功通过了github的学生认证,材料每次重复的话github又会让你提交不同的材料,博主最后都已经要没有材料可以证明自己是学生了,不得不说这个认证是真的…

git使用(由浅到深)

目录流程图 1. 分布式版本控制与集中式版本控制 1.1 集中式版本控制 集中式版本控制系统有:CVS和SVN它们的主要特点是单一的集中管理的服务器,保存所有文件的修订版本;协同开发人员通过客户端连接到这台服务器,取出最新的文件或者提交更新…

【C++】通讯录管理系统

1.系统功能介绍与展示 2.创建项目 3.菜单功能 代码&#xff1a; //-封装函数显示该界面 如 void showMenu() //-在main函数中调用封装好的函数 #include <iostream> using namespace std;//-菜单界面 void showMenu() {cout << "***************************…

Azure pipeline自动化打包发布

pipeline自动化&#xff0c;提交代码后&#xff0c;就自动打包&#xff0c;打包成功后自动发布 第一步 pipeline提交代码后&#xff0c;自动打包。 1 在Repos,分支里选择要触发的分支&#xff0c;这里选择cn_china,对该分支设置分支策略 2 在生产验证中增加新的策略 3 在分支安…

【Linux】yum工具的认识及使用

【Linux】yum工具的认识及使用 1.知识点补充2.yum是什么3.yum常用指令3.1查看软件安装包3.1.1关于rzsz 3.2安装软件3.3卸载软件 4.yum扩展4.1扩展14.2扩展24.3扩展3 什么是工具&#xff1f; 本质上也是指令 1.知识点补充 1.我们一般安装软件&#xff0c;是不是需要把软件安装…

LabVIEW FPGA开发实时滑动摩擦系统

LabVIEW FPGA开发实时滑动摩擦系统 由于非线性摩擦效应的建模和补偿的固有困难&#xff0c;摩擦系统的运动控制已被广泛研究。最近&#xff0c;人们更加关注滑动动力学和滑动定位&#xff0c;作为传统机器人定位的低成本和更灵活的驱动替代方案。摩擦控制器设计和适当选择基础…

JVM类加载器的作用和层次结构

类加载器的作用 1)通过一个类的全限定名来获取定义此类的二进制字节流。 2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。 3)在内存中生成一个代表这个类的java.lang.Class对象,这个对象存放在方法区中。这个对象将作为程序访问方法区中的这些数据的外部接…

【嵌入式学习笔记】嵌入式入门2——中断(外部中断)

1.什么是中断 打断CPU执行正常的程序&#xff0c;转而处理紧急程序&#xff0c;然后返回原暂停的程序继续运行&#xff0c;就叫中断 1.1.中断的作用与意义 作用1&#xff1a;实时控制在确定时间内对相应事件作出响应——定时器中断作用2&#xff1a;故障处理检测到故障&…

Linux内核的I2C驱动框架详解------这应该是我目前600多篇博客中耗时最长的一篇博客

目录 1 I2C驱动整体框架图 2 I2C控制器 2.1 I2C控制器设备--I2C控制器在内核中也被看做一个设备 2.2 i2c控制器驱动程序 2.3 platform_driver结构体中的probe函数做了什么 2.3.1 疑问&#xff1a; i2cdev_notifier_call函数哪里来的 2.3.2 疑问&#xff1a;为什么有两…

重生之我要学C++第六天

这篇文章的主要内容是const以及权限问题、static关键字、友元函数和友元类&#xff0c;希望对大家有所帮助&#xff0c;点赞收藏评论支持一下吧&#xff01; 更多优质内容跳转&#xff1a; 专栏&#xff1a;重生之C启程(文章平均质量分93) 目录 const以及权限问题 1.const修饰…

管理类联考——数学——可视化篇——代数即几何

数形结合百般好 代数即几何 两和三个数的完全平方和 https://www.bilibili.com/video/BV1zh4y137AY/ 立方差和立方和公式 通过图形得到立方差公式&#xff0c;将b换成-b&#xff0c;得到立方和公式 平方数列求和 https://www.bilibili.com/video/BV1vz4y1q75D/ 立方数列…

[PAT乙级] 1029 旧键盘 C++实现

题目描述&#xff1a; 旧键盘上坏了几个键&#xff0c;于是在敲一段文字的时候&#xff0c;对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字&#xff0c;请你列出肯定坏掉的那些键。 输入格式&#xff1a; 输入在 2 行中分别给出应该输入的文字、以…

基于高通QCC5171的对讲机音频数据传输系统设计

一 研发资料准备 二 设计方法 蓝牙连接与配对&#xff1a;使用QCC5171的蓝牙功能&#xff0c;实现设备之间的蓝牙连接和配对。确保设备能够相互识别并建立起稳定的蓝牙连接。 音频采集与处理&#xff1a;将麦克风采集到的音频数据通过QCC5171的ADC&#xff08;模数转换器&…

简单的知识图谱可视化+绘制nx.Graph()时报错TypeError: ‘_AxesStack‘ object is not callable

绘制nx.Graph时报错TypeError: _AxesStack object is not callable 写在最前面知识图谱可视化预期报错可能的原因 原代码原因确认解决后的代码解决&#xff01; 写在最前面 实现一个简单的知识图谱的可视化功能。 使用了NetworkX库来构建知识图谱&#xff0c;并使用matplotlib…