【CHI协议-1】CacheLine状态

本文讲述了CHI协议中的Read事务,重点介绍了cacheline状态,包括unique、shared、dirty、clean等概念,以及它们在协议事务流程中的作用。作者解释了脏数据的严格定义,并详细讲解了UC、UD、SC、SD、UCE和UDP等状态的含义和效率考虑。
摘要由CSDN通过智能技术生成

从这一章开始就和大家一起分享一下CHI协议中具体的一些事务以及场景。今天主要梳理一下Read事务,但是要讲清楚这些乱七八糟的事务,还需要了解其他很多知识点,不然就是云里雾里的,比如cacheline的状态啊,什么是snoop啊,以及一致性节点啊等等。但是这些太多了,如果先要把这些都讲清楚再讲协议,那估计得讲个好几章。所以我就不单独用章节来分享这些了,穿插着和大家分享一下,遇到了这些概念我们就大概描述一下,好伐啦!

  1. Cacheline States
    不过cacheline状态还是比较重要,贯穿了整个协议的所有事务,单独把这块来说说还是很有必要的。

其实也很简单啦,我们需要认识几个中学的英语单词,unique,shared,dirty,clean,这几个顾名思义,独有的,共享的,脏的,干净的,简单吧。OK,这几个就是cache的状态了。但是独有和共享好理解,那什么叫脏的和干净的数据呢。注意了,干净的就是指cache和memory的数据一致,不需要去更新主存,这时候我们就说cache里面的数据是干净的。那脏和干净是一对反义词,自然脏数据就是指cache和memory数据不一致,需要我们去更新主存,不过这里千万要注意,**dirty严格的定义是具有更新主存的责任。**仅仅数据不一致的话,不能说他是脏数据。什么意思呢,就是假如cache1和cache2数据都和主存数据不一致,这时候cache1给2说你去更新主存吧,我今天特别累不想去,那么更新的责任就给了2 ,所以cache2的数据就是dirty,而cache1不是。所以dirty一定是和主存数据不一致,但和主存数据不一致,不一定是dirty哦。(表达能力有限,不知道说清楚没~~)

不会以为到这里就结束了吧!想啥呢,CHI作为如此复杂的协议,这么几个cache状态完全不够用。因此接下来把这几个排列组合,就有了UC,SC,UD,SD,UCE,UDP,这才是CHI中事务流用到的几种cacheline状态。我们挨个来看:

UC和UD就是unique clean和unqiue dirty,这两个首先都是独占的状态,都有unique嘛,UC就是独占且和主存数据一致,所以如果cache拿到这个数据状态可以进行修改,记住只有unique态才可以修改数据,因为你修改了数据必然就和主存数据不一致了嘛,所以你得去更新主存,同时把其他的cahce中同地址的数据都无效掉,这时修改数据的cache也就变为UD态了。把UDP顺便也说了吧,这里的p指的是patial,也就是独占且部分数据为脏,部分数据需要去更新主存。注意这里的部分是相对一个完整的cahcheline来说的,因为我们更新主存必须是一个完整的缓存行去更新的(这个原因这里不多说了,和cache的底层结构有关,有空了聊聊这个,先记着就行了,总之这样设计是为了提高效率),因此部分脏数据更新主存时需要merge下级缓存的数据一起更新。

SC和SD就是shared clean和shared dirty,这个大家应该也能猜出来什么含义了吧,共享干净和共享的脏。这里的共享就是意思其他的cache里面也有这份数据,但注意哦,SC态可不一定就是共享且和主存的数据一致,他可能数据也被修改了,只是不需要他去更新主存而已(注意上文中说的clean和dirty的定义)。SD就不多说了,共享且脏,有更新主存的责任。

那还有一个状态UCE,这玩意儿是啥呢,unique clean empty,翻译完是不是也没懂,,,其实也好理解啦,首先unique就是独占呗,然后clean就是不需要更新主存,那empty呢,空的?没有数据?没错就是这个意思。拿到一个uc态的没有数据的cahceline,猜猜要干嘛,是的就是往里写数据,还记得我前面说写数据必须得是u态吧。那UC态不也可以吗,为啥UCE呢,设计这个状态的意义呢?效率呗,那些架构师搞cache不也是为了效率嘛。想象一下,假设我现在就是要往a地址写数据,只是想写,不关心他以前的数据,那我就申请我要一个UCE态的cacheline,这样我就不需要读旧的数据了,是不是节省了带宽也提高了效率啊。

本来说把cache状态说完再说read事务呢,结果没收住说了这么多,时间太晚了,我得去睡觉了哈哈。下次再说read事务吧。(顺便把标题read事务改了吧,)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值