CHI中的exclusive访问

chatgpt/2023/9/24 2:35:14

Exclusive accesses
包含两类:
• Exclusive accesses to a Snoopable memory location. 
• Exclusive accesses to a Non-snoopable memory location.

(参考了(1条消息) CHI的Cache Stashing和DVM操作_谷公子的藏经阁的博客-CSDN博客)
=====================Snoopable memory location========================
□ 对于snoopable的memory空间,需要使用两个monitor来track;
LP monitor
□ 每个RNF中的LP, 需要实现一个exclusive monitor,来track exclusive sequence;
        □ 当执行exclusive load时,LP monitor将对应的地址标记为1;
        □ 当发生如下情况时,将LP monitor对应地址标记为0;    
                其他LP将我本地的这条cacheline给invalid掉了;
                当前这个LP, 发送了一个相同地址的store操作(exclusive的也要reset?);There is a store to the location by the same LP. Resetting the monitor, if the store from the same LP is Non-exclusive, is IMPLEMENTATION DEFINED.
    
Poc monitor:
□ HNF必须实现一个POCmonitor, 用来判断exclusive store pass or fail;
□ 如果成功,表明该transaction已经对其它一致性RN-F可见。如果失败,表明该transaction没有对其它一致性RN-F可见,因此Exclusive Store不能成功;
□ 这个monitor用来保证,某个LP发出的exclusive store操作,只有在没有收到其他LP发出的访问相同地址的snoop操作的时候,才会成功;
□ 对这个POC monitor最小的需求,就是可以记录其他LP发出了和当前的exclusive sequence相关的snoopable trans;
    
□ 如果某个RN已经发送了exclusive load命令,在此期间,其他RN没有发送exclusive store,那么当它发送exclusive store时,就一定会成功;
□ 该monitor可以并行检测所有LP的exclusive访问;
□ 当HNF接受了exclusive load/store的访问后,就会在monitor内部注册该LP正在进行exclusive的操作;
□ 当HNF收到exclusive store时:
        □ 如果当前monitor中,该LP已经注册了正在执行exclusive, 也就是说,没有被其他LP的exclusive store给reset, 那么这个exclusive store的操作是成功的,并且可以继续处理;这种场景下,其他LP注册的信息,都应该被复位;协议推荐,当前这个LP的exclusive注册信息可以被保留;
        □ 如果某个LP, 还没有在monitor中进行过exclusive sequence注册,也就是说,他被其他LP的exclusive store给复位了,则此次store操作不成功,不能继续处理,但是monitor还是要注册该LP正在进行exclusive sequence;
        □ 当某个exclusive store访问成功后,所有的LP的记录信息都会被reset, 直到这个exclusive store的compack收到后,其他LP才能够继续注册;


Additional address comparison
□ Poc monitor可以做一些升级,提供地址比对的能力;这种地址比对,只需要比对部分bits, 不需要比对整条cacheline(不一定是cacheline?), 这样可以减少不同LP访问同一条cacheline不同bit的exclusive store失败的概率;具体比对哪些bit, 是自定义的;
□ 该地址会在刚开始的时候被记录,当其他LP访问的地址match的时候,被reset;
□ 这种地址比较是额外添加的,所有对于POCmonitor而言,每个LP,仍然需要1bit的指示信号,用来检测每个LP的exclusive操作;
□ 在如下条件发生时,exclusive store可以被执行:
        □ Addr monitor已经被同一个LP, 访问相同地址的exclusive sequence给注册了,同时没有被其他LP的相同地址的exclusive store给reset掉;
        □ 1 bit的lp exclusive访问指示信号,没有被清掉;
Alternatives to a PoC monitor
□ HNF可以使用如下的一些机制,来代替POC monitor,决定exclusive access的结果:
        □ 精确的snoop filter; 跟踪当RN发送exclusive store时,是否有该某cacheline的copy;
        □ 通过检测HN发送的snoop, 来判断RN是否仍然保留该cahceline;


========================Non-snoopable memory location======================
只需要一个系统monitor;
System monitor
□ 用来跟踪记录对non-snooopable的exclusive访问;该monitor通过readnosnp(excl) trans set, 通过其他LP的写,reset;
□ 可以放在POS或者endpoint device;因为endpoint的个数肯定远远大于POS点的个数,因此,推荐放在POS点,可以:
        □ 减少monitor开销;
        □ 减少检测exclusive访问是否成功的时间开销;


==========================Exclusive transactions=============================
• Exclusive Load transaction to a Snoopable location: 
— ReadClean 
— ReadNotSharedDirty 
— ReadShared 
— ReadPreferUnique 
• Exclusive Store transaction to a Snoopable location: 
— CleanUnique 
— MakeReadUnique

• Exclusive Load transaction to a Non-snoopable location: 
— ReadNoSnp 
• Exclusive Store transaction to a Non-snoopable location: 
— WriteNoSnp

Responses to exclusive requests
□ 基本同正常的命令,只有如下区别:
□ ReadClean, ReadNotSharedDirty, and ReadShared Exclusive transactions: 
        □ Must not use separate Comp and data response. 
        □ Requests that do not fail must not use either DMT or DCT.
        □ ReadNoSnp Exclusive transactions that do not fail, must not use DMT.
□ WriteNoSnpFull and WriteNoSnpPtl transactions, must not use DWT if the Exclusive monitor is located at the Home and the Exclusive check passes.
□ RespErr域值为0b01表示Exclusive Okay,即exclusive成功,RespErr域值为0b00表示Normal Okay,即exclusive失败;
□ 对于exclusive访问的一些场景,可以参考Table 6-1 Responses to an Exclusive access request
 

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

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

Day10-作业(SpringBootWeb案例)

作业1:完成课上预留给大家自己完成的功能 【部门管理的修改功能】 注意: 部门管理的修改功能,需要开发两个接口: 先开发根据ID查询部门信息的接口,该接口用户查询数据并展示 。(一定一定先做这个功能) 再开发根据ID…

知识体系总结(八)SSM框架体系

文章目录 Spring基础1-1、Spring、SpringMVC、Mybatis与SpringBoot的区别1-2、Spring中常用的注解及作用1-3、Spring 框架中用到了哪些设计模式? Spring IoC 、 DI、Bean2-1、Spring IoC是什么,有什么好处,Spring中是怎么实现的?2…

Qt实现思维导图锦集

序号简述文章导航1思维导图树形结构、不重叠且均匀分布、支持折叠和展开核心树2菜单按钮风格、菜单提示风格、侧滑菜单、侧滑功能窗口UI设计3支持JPEG、PNG、XML、JSON、PDF、SVG格式文件数据导入导出4支持撤销回撤功能、显示节点操作流程、点击可跳转历史撤销回撤5思维导图横向…

element-tree-line el-tree 添加结构线 添加虚线

概览:给element组件添加上虚线,通过使用插件element-tree-line 参考连接: 参考别人的博客 安装插件: # npm npm install element-tree-line -S # yarn yarn add element-tree-line -S main.js全局注册引入插件: imp…

Linux系统安装Nginx(保姆级教程)

目录 一、环境准备 二、开始安装 2.1、解压Nginx文件 2.2、编译安装 2.3、启动Nginx 2.4、安装成系统服务(脚本) 2.5、常见问题 本机如何访问虚拟机中的Nginx? 编译安装的过程中出现如下几种警告错误 一、环境准备 系统&#xff1a…

mysql(二) 索引-基础知识

继续整理复习、我以我的理解和认知来整理 "索引" 会通过 文 和 图 来展示。 文: 基本概念知识(mysql 的索引分类、实现原理) 图: 画B树等 MySQL官方对索引的定义是:索引(Index)是帮…

【链表分割(牛客网)(和答案一样的写上去但是就是通过不了你试一试)】

链表分割 现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。 /* struct ListNode {int val;struct ListNode *next;ListN…

死锁产生的原因以及解决方案

一.原因: 1.使用互斥锁. 2.除非主动释放,负责不能被抢占. 3.占用一把锁不释放,等待其它锁资源(保持现状). 4.锁形成环路. 二.解决方案: 给锁编号,上锁的时候从小到大依次上锁,譬如如果一个线程要上1号和2号两把锁,如果1号锁被占用,不能上2号锁,等其它线程释放1号锁资源后…
推荐文章