CHI中一致性状态简介

Coherence Protocol
各个状态描述(只描述有意思的);

Invalid:


UC  Unique Clean:
□ 当前cacheline可以直接修改,不用通知其他RN或HN;
□ HNF来snoop时,数据可以返回给HNF, 也可以不返回;
□ HNF来snoop时,数据可以直接返回给原始的RN;

UCE  Unique Clean Empty:
□ 当前cacheline可以直接修改,不用通知其他RN或HN;
□ 虽然当前是unique的,但是没有有效的数据;
□ HNF来snoop时,其数据不能返回给HNF, 也不能返回给原始的RN;

UD  Unique Dirty:
□ Evict的时候,数据必须写回下一级cache或者memory;
□ HNF来snoop时,数据必须返回给HNF;
□ HNF来snoop时,数据最好直接返回给原始的RN;

UDP  Unique Dirty Partial:
□ The cache line might have some bytes valid, where some includes none or all bytes.
□ 当想要evict给下级cache时,必须先从下级cache, 或者mem中,读取整条cacheline, 合并成一条完成的cachleine后再evict;
□ HNF来snoop时,数据必须返回给HNF;
□ HNF来snoop时,数据不能直接返回给原始的RN;

SC Shared Clean:
□ 其他RN可能也有当前的cacheline, 并且其他人可能已经修改了该cacheline的数据;
□ SC的cacheline, 不承担将数据写入mem的角色;
□ SC的cacheline想要做修改,必须先invalid其他RN中的相同cacheline, 并且获得unique的权限;
被snoop时:
□ RetToSrc==1,返回数据,==0,不返回数据;
□ 可以将数据直接返回给源端;

SD Shared Dirty:
□ 其他RN可能也有该cacheline;
□ 当前cacheline的数据,相较于memeory, 已经有所修改;
□ Evict时,数据必须写入下级cache或者memory;
□ SC的cacheline想要做修改,必须先invalid其他RN中的相同cacheline, 并且获得unique的权限;
被snoop时:
□ 必须要返回数据;
□ 可以直接返回给RN;

Empty cache line ownership
  UCE/UDP;
  可能发生的场景:
        □ 如果某个RN后续想要写某个cacheline, 可以先直接获取Empty的状态,然后直接在内部修改;这样就省去了发送写操作,传输数据的带宽;
        □ 如果当前某个RN已经有该cacheline的缓存,后续想要获得写权限,可以先请求获得empty的状态,然后直接修改;

Ownership of cache line with partial Dirty data
□ 先获得UC的状态,然后修改部分,变成UDP;

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

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

相关文章

clickhouse数据库里聚合函数any的用法

文章目录 需求场景any相关函数any函数anyHeavy函数介绍anyLast函数 生产使用 需求场景 进行分组聚合统计时,有几个字段也需要返回,但是不在聚合的需求里面。对于同一聚合条件的记录,这些字段的值,有可能会不同,但是这…

华为OD机考--食堂供餐--带答案

题目描述: 某公司员工食堂以盒饭方式供餐。为将员工取餐排队时间降低为0,食堂的供餐速度必须要足够快。现在需要根据以往员工取餐的统计信息,计算出一个刚好能达成排队时间为0的最低供餐速度。即,食堂在每个单位时间内必须至少做出…

Psim 2022仿真软件的安装--Psim电力仿真实战教程

文章目录 Psim 2022 仿真软件安装及使用教程软件介绍1.下载psim 2022安装软件,有需要的亲请联系作者。2.点击安装文件3.点击进行安装:4.安装完成,打开软件,开始仿真5.仿真模型介绍5.1.单相全控整流电路仿真5.2 三相PFC可控整流电路…

红黑树深入剖析【C++】

目录 一、红黑树概念 二、红黑树节点结构设计 三、插入操作 处理情况1 处理情况2 处理情况3 插入总结: 四、插入操作源码 五、红黑树验证 一、红黑树概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色&#xff0…

Selenium+Java环境搭建(测试系列6)

目录 前言: 1.浏览器 1.1下载Chrome浏览器 1.2查看Chrome浏览器版本 1.3下载Chrome浏览器的驱动 2.配置系统环境变量path 3.验证是否成功 4.出现的问题 结束语: 前言: 这节中小编给大家讲解一下有关于Selenium Java环境的搭建&…

Docker 的数据管理 与 Dockerfile

目录 Docker 的数据管理容器互联(使用centos镜像)Docker 镜像的创建1.基于现有镜像创建2.基于本地模板创建3.基于Dockerfile 创建镜像加载原理 Dockerfile 操作常用的指令(1)FROM 镜像&#xff…

docker—springboot服务通信

文章目录 docker—springboot服务通信一、方式1、host 二、坑点末、参考资料 docker—springboot服务通信 一、方式 1、host 步骤: host文件增加域名解析: 127.0.0.1 rabbitmqapplication.yml: application.yml中,连接方式使用…

[STL]list使用介绍

[STL]list使用 注:本文测试环境是visual studio2019。 文章目录 [STL]list使用1. list介绍2. 构造函数3. 迭代器相关函数begin函数和end函数rbegin函数和rend函数 4. 容量相关函数empty函数size函数 5. 数据修改函数push_back函数和pop_back函数push_front函数和pop…

Python MySQL

pymysql 除了使用图形化工具以外,我们也可以使用编程语言来执行SQL从而操作数据库。 在Python中,使用第三方库:pymysql 来完成对MySQL数据库的操作。 安装: pip install pymysql 或在pycharm中搜索pymysql插件安装 创建到MySQ…

在CSDN学Golang云原生(Docker容器)

一,Doker 命令行操作 在Go语言中,可以通过调用Docker命令行工具来进行容器管理和操作。下面是一些基本的Docker命令行操作示例: 启动一个新容器 cmd : exec.Command("docker", "run", "-d", "nginx&qu…

C++(14):重载运算与类型转换

当运算符被用于类类型的对象时,允许我们为其指定新的含义;同时,也能自定义类类型之间的转换规则。和内置类型的转换一样,类类型转换隐式地将一种类型的对象转换成另一种我们所需类型的对象。 当运算符作用于类类型的运算对象时&a…

设计模式-策略模式

文章目录 策略模式 策略模式 策略模式是一种行为型设计模式,它允许在运行时动态改变对象的行为。在策略模式中,算法被封装在独立的策略类中,使得它们可以互换使用。下面是一个简单的例子: 假设我们有一个计算税收的系统&#xf…

2022年全国职业院校技能大赛高职组软件测试赛项赛题评分标准

任务 考查点 评分标准 评分细则 分值 任务一 环境搭建及系统部署 (5分) 环境搭建及系统部署包括搭建与配置测试环境,安装与部署应用系统等,对过程和结果进行截图,完成环境搭建及系统部署报告 1.测试环境搭建与…

小程序附件下载并预览功能

一、实现的功能: 1、word、excel、图片等实现下载并预览 2、打开文件后显示文件名称 二、代码: // 判断文件类型whatFileType(url) {let sr url.lastIndexOf("."); // 最后一次出现的位置let fileType url.substr(sr 1); // 截取url的…

超越传统测试:如何构建可靠的持续集成测试管道

超越传统测试:如何构建可靠的持续集成测试管道 引言 持续集成测试是现代软件开发中至关重要的一环,它可以帮助团队及时发现和解决代码问题,提高软件质量。然而,传统的测试方法往往存在效率低、容易出错等问题。本篇博客将介绍如…

Java接口通过token登录实现页面跳转到登录成功后的页面

首先,你需要在接口请求中将token作为参数传递给后端,后端需要对token进行验证并获取登录用户的信息。 在验证通过后,你可以将登录成功后的页面链接返回给前端,前端通过跳转到该链接来实现页面跳转。 以下是一个简单的Java代码演…

手机图片转pdf?两种方法介绍

手机图片转pdf?如今,随着生活的数字化,我们的手机中储存了大量的照片。但是,如果需要将这些照片转换成PDF格式,该怎么办呢?下面,小编就给大家介绍三种方法来实现这一目标。 第一种方法&#xff…

12页线性代数图解教程,github星标9.1k,适合小白

线性代数“困难户”注意,今天我给大家分享一个超适合小白的线性代数学习笔记,只有12页纸,一半都是图解,不用担心看不懂。 这份笔记名为《线性代数的艺术》,是日本学者Kenji Hiranabe基于Gilbert Strang教授的《每个人…

JS常用操作数组的方法整理

JavaScript提供了许多用于操作数组的方法。以下是其中一些常见的方法: 1. push() : 将一个或多个元素添加到数组的末尾,并返回新数组的长度。 2. pop() : 移除并返回数组的最后一个元素。 3. unshift() : 将一个或多个元素添加到数组的开头&#xff0…

【Pytorch学习】pytorch中的isinstance() 函数

描述 isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。 isinstance() 与 type() 区别: type() 不会认为子类是一种父类类型,不考虑继承关系。 isinstance() 会认为子类是一种父类类型,考虑继承关系。 如果要判…