CHI协议之DVM操作

本文部分内容参考了CHI的Cache Stashing和DVM操作_谷公子的藏经阁的博客-CSDN博客


□ 注意此处RNF发送的noncopyback data, 只有8byte;
□ MN会发送两个SNP给每个RNF, 因为一个SNP,携带的信息不够;
□ 如果MN具备将来自同一个源头的non-sync/sync dvmop操作,排序的能力,那么对于non-sysn的dvm操作,可以不用等待snoop响应返回,直接返回comp; 否则,必须等待snoop结果之后再返回;
□ 对于上述这种能力,可以将comp和dbid合并返回,CompDBIDResp;


□ 区别点在于每个RN, 需要dvm操作真正完成之后,才会返回SnpResp_I;


Flow control
□ DVMPOp可以被retry;
□ 同一个RN, 再之前的DVMOp没有完成时,不能发送下一个;
□ MN至少要有一个entry,用来接收DVMOp;
□ 两个SNPdvmop的txnid, 是一样的;
□ 两个snp之间,没有顺序关系,可以任意先接收其中一个;
□ MN中多个SnpDVMOp(Non-sync), 可以outstanding发送;
□ MN中到RN的SnpDVMOp(Sync)  outstanding为1;
□ 为了避免死锁,RN中必须要能够接收两个snpdvmop的能力时,MN才能发送snpdvmop的操作;
□ 对于invalidated page entries的sync-dvm, RN会发送stashonceseq;
□ 只有当RN可以接收下一个snpdvmop时,才会返回snopdvmop resp;
□ 每个RN节点,至少要能够接收一个snpdvmop(Non-Sync) 和一个SnpDVMOp(Sync) transaction;


DVMOp field value restrictions
Request message field value restrictions for DVMOp
□ DCT/STASH相关的域段必须全为0;
□ size: 8byte;
□ NS/likelyshared/Order/MemAttrr/excl/expack/mpam/tagop必须为0;
□ ADDR域段,拆分并复用成如下含义;---参考DVMOp payload

 

Data message field value restrictions for DVMOp
□ HomeNID/Resp/CBusy/CCID/DATAID等必须为0(贴图);
□ Opcode:NonCopyBackWriteData
□ RespErr: Must be 0b00 or 0b10
□ BE: Only BE[7:0] must be asserted

Snoop message field value restrictions for DVMOp
□ 看协议;

DVM Operation types
• TLB Invalidate. 
• Branch Predictor Invalidate. 
• Instruction Cache Invalidate: 
— Physical address invalidate. 
— Virtual address invalidate. 
• Synchronization.

DVMOp payload:
dvm的payload, 是放在req通道的addr域段,以及data通道的低8byte数据;
分布如下:

 

后续内容copy CHI的Cache Stashing和DVM操作_谷公子的藏经阁的博客-CSDN博客

图片未copy,可以直接看原文; 

DVMOp and SnpDVMOp packet
表4为使用8bytes write格式的RN发送的DVMOp request的payload分布,以及MN发送的SnpDVMOp requests的payload的分布。
在DVMop request中,request的address域段和write data的8bytes共同完成完整的request payload,其中request的Addr[3]没有用,且必须设置为0。
在SnpDVMOp中,两笔SnpDVMOp的address域段组成完整的request payload。SnpDVMOp request的Addr[3]指示哪一笔SnpDVMOp正在传输。
Maximum PA(MPA)和Maximum VA(MVA) address的有效组合是:

MPA = 44 : MVA = 49.
MPA = 45 : MVA = 51.
MPA = 46 to 52 : MVA = 53.
表4为Address和Data的数字指示哪些bit被用于DVMOp field。例如Addr[4]是被VA Valid所替代。在Request packet中,该bit会在address域段的第五bit,但是在snoop packet中,该bit会在address的第二bit,因为snoop packet没有包含地址的低3bits;
同样的,write data packet的Data[4]被PA[6]所替代,在snoop packet中,Addr[4]同样也被占用了。对于两个snoop packets,PA[6]是在第二个packet中,但是VA Valid是在第一个packet中。
表4 DVMOp and SnpDVMOp request payloads using a 49-bit VA and 44-bit PA


2.3 DVM Operations
本节描述CHI支持的DVM operations。
表5为DVM operations的Part Num域段值。
表5 Part Num field values


2.3.1 TLB Invalidate
TLB Invalidate operations的各个具体含义值参考CHI issue-C P265的表8-5。

2.3.2 Branch Predictor Invalidate
Branch Predictor Invalidate的各个具体含义值参考CHI issue-C P267的表8-6。

2.3.3 Physical Instruction Cache Invalidate
Physical Instruction Cache Invalidate的各个具体含义值参考CHI issue-C P268的表8-9。

2.3.4 Virtual Instruction Cache Invalidate
Virtual Instruction Cache Invalidate的各个具体含义值参考CHI issue-C P269的表8-11。

2.3.5 Synchronization
Synchronization的各个具体含义值参考CHI issue-C P270的表8-12。
 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python post请求发送的是Form Data的类型

常规的Form Data 大部分的Form Data 可以直接都是可以通过正常的post请求进行提交的 import requestsheaders {自己设置的请求头键: 自己设置的请求头键,Content-Type: 网页接受的数据类型 }form_data {对应的键1:对应的值1,对应的键2:对应的值2, }r…

7、Java入门教程【面向对象】

面向对象是Java编程的核心概念,如果不能充分了解面向对象的思想,那么会给你在实际的项目开发过程中,带来很多业务设计上的困扰。 一、构造器 我们在设计完一个类,在使用这个类去创建对象实例的时候,有些场景是需要对…

css实现鼠标滑动左下角弹框带动画效果

代码 <div classNamekuang></div> css代码 .kuang {height: 500px;width: 400px;// background-color: #fff;position: absolute;z-index: 10;bottom: 0;transform: translateX(-390px)}.kuang:hover {animation: myanimation 3s linear 1;animation-fill-mode:f…

Django学习笔记-视图(views)的使用

Django中可以使用views进行管理&#xff0c;类似于WPF的MVVM的ViewModel层&#xff0c;也相当于MVC架构的模Controller层。 一、基于函数的视图FBV&#xff08;Function-Based View&#xff09; 通过定义一个函数&#xff0c;包含HttpRequest对象作为参数&#xff0c;用来接受…

QT项目代码去UI界面常用开发步骤

QT项目代码去UI界面常用开发步骤 因项目开发需求&#xff0c;领导要求整个QT项目中不要用UI方式来实现界面&#xff0c;这样能保障程序运行稳定性以及代码的逻辑和可读性,先记录具体操作步骤如下&#xff1a; 1、首先我们通过拖控件的方式来实现界面的设计效果&#xff0c…

【动态规划part07】| 70.爬楼梯(进阶)、322.零钱兑换、完全平方数

目录 &#x1f388;LeetCode70. 爬楼梯 &#xff08;进阶&#xff09; &#x1f388;LeetCode322. 零钱兑换 &#x1f388;LeetCode279.完全平方数 &#x1f388;LeetCode70. 爬楼梯 &#xff08;进阶&#xff09; 链接&#xff1a;70.爬楼梯进阶 假设你正在爬楼梯。需要 …

linux 内核总结

注意&#xff1a;队列只是一格以前的称呼&#xff0c;底层是链表 进程 多个cpu&#xff0c;每个cpu都有自己的进程队列 进程分类&#xff1a; 实时进程 与用户交互的进程&#xff0c;需要及时的响应&#xff08;优先级 0~100&#xff09; 普通进程 响应不需要那么及时的…

Python(四十一)流程控制语句——break

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

Docker 全栈体系(六)

Docker 体系&#xff08;高级篇&#xff09; 三、Docker微服务实战 1. 通过IDEA新建一个普通微服务模块 建Module docker_boot 改POM <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" …

微信小程序数字键盘(仿微信转账键盘)

微信小程序input自带数字输入键盘&#xff0c;不过是直接调用的系统键盘&#xff0c;无法个性化。 代码中使用使用了Vant WeappVant UI小程序版&#xff0c;这里就不介绍相关安装说明了&#xff0c;大家自行安装Vant Weapp。 json 用到的组件 {"usingComponents": …

双智城市进展全扫描

本文将综合盘点16座智慧城市基础设施与智能网联汽车协同发展试点城市&#xff08;简称“双智试点城市”&#xff09;建设进展情况。2021年4月和12月&#xff0c;住建部和工信部两次联合印发通知&#xff0c;先后确定北京、上海、广州、武汉、长沙、无锡6个城市为第一批双智试点…

Visio文件编辑查看工具Visio Viewer for Mac

Visio Viewer for Mac可以打开和查看Visio文件&#xff08;.vsd、.vdx和.vsdm文件&#xff09;。它具有简单易用的用户界面&#xff0c;可以快速加载和显示Visio文件。此外&#xff0c;它还支持导出文件为PDF、PNG、JPEG等格式&#xff0c;方便用户进行文件转换和共享。 Visio…

(202307)wonderful-sql:基础查询与排序(task2)

教程链接&#xff1a;Datawhale - 一个热爱学习的社区 知识学习 前提&#xff1a; 上一次任务中提出了本课程的用表&#xff0c;但是我并没有加入这个表&#xff0c;这次学习前先对这个表进行插入。 INSERT INTO product VALUES(0001, T恤衫, 衣服, 1000, 500, 2009-09-20)…

DevOps系列文章 之GitLabCI模板库的流水线

目录结构&#xff0c;jobs目录用于存放作业模板。templates目录用于存放流水线模板。这次使用​​default-pipeline.yml​​作为所有作业的基础模板。 作业模板 作业分为Build、test、codeanalysis、artifactory、deploy部分&#xff0c;在每个作业中配置了rules功能开关&…

【广州华锐互动】AR智慧机房设备巡检系统

AR智慧机房设备巡检系统是一种新型的机房巡检方式&#xff0c;它通过使用增强现实技术将机房设备、环境等信息实时呈现在用户面前&#xff0c;让巡检人员可以更加高效地完成巡检任务。 首先&#xff0c;AR智慧机房设备巡检系统具有极高的智能化程度。该系统可以根据用户设定的…

java代码审计6之ssrf

文章目录 1、java支持的网络请求协议&#xff1a;2、Java 中能发起⽹络请求的类2.1、仅⽀持 HTTP/HTTPS 协议的类2.2、⽀持 sun.net.www.protocol 所有协议的类2.3、审计关键词 3、靶场3.1、漏洞代码13.2、ftp协议读取技巧3.3、无回显之探测内网3.4、无回显之探测文件 之前的文…

区间预测 | MATLAB实现基于QRF随机森林分位数回归多变量时间序列区间预测模型

区间预测 | MATLAB实现基于QRF随机森林分位数回归多变量时间序列区间预测模型 目录 区间预测 | MATLAB实现基于QRF随机森林分位数回归多变量时间序列区间预测模型效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于QRF随机森林分位数回归多变量时间序列区间…

Android 耗时分析(adb shell/Studio CPU Profiler/插桩Trace API)

1.adb logcat 查看冷启动时间和Activity显示时间&#xff1a; 过滤Displayed关键字&#xff0c;可看到Activity的显示时间 那上面display后面的是时间是指包含哪些过程的时间呢&#xff1f; 模拟在Application中沉睡1秒操作&#xff0c;冷启动情况下&#xff1a; 从上可知&…

SpringBoot 集成 Elasticsearch

一、版本 spring-boot版本&#xff1a;2.3.7.RELEASEElasticsearch7.8.0版本说明详见 二、Elasticsearch 下载和安装 Elasticsearch 下载 kibana下载 ik分词器下载 配置IK分词器 2.1 解压&#xff0c;在elasticsearch-7.8.0\plugins 路径下新建ik目录 2.2 将ik分词器解压放…

pytest---环境切换(base-url)

前言 前面小编介绍了如何通过pytest的插件来实现自动化测试的环境的切换&#xff0c;当时使用的方法是通过钩子函数进行获取命令行参数值&#xff0c;然后通过提前配置好的参数进行切换测试环境地址&#xff0c;今天小编再次介绍一种方法&#xff0c;通过pytest的插件&#xff…