cacheline state

cache state讲的是属性,有这么些个属性,有点像软件定义的,跟硬件没啥关系,就是一纸协议。cacheline state呢,就有点硬了,这是要硬件实现滴。cacheline state都有哪些呢?

【我的理解就是把cache的状态属性组合起来描述一个实际的cacheLine状态】

  • I: invalid,就是cache state的那个invalid的意思
  • UC: Unique Clean
  • UD: Unique Dirty
  • UDP: Unique Partial Dirty
  • SC: shared clean
  • SD: shared Dirty
  • UCE: Unique clean Empty

CHI用的cacheline state就是以上这几个。

举2个例子来详细说明下:

1)SC

        CPU0读一个地址0x0010,数据0x1111,那L00里面就有这个数据,状态是UC。

        CPU1也读这个地址,那L00和L01都有数据,状态就都是SC了!

2)UCE

        假设现在CPU2要这个地址,但是不需要这个数据,为什么不需要这个数据呢,因为CPU2即将自己给这个地址赋值,那CPU2就申请说我的L02要这个地址是UCE的,然后要把CPU0和CPU1里面的这个地址的数据invalid掉。

        此时CPU0和CPU1里面这个地址数据就Invalid了,而CPU2就是UCE!

        为什么要这么搞?首先在SOC里面知道,CPU2要往地址0x0010这个地址写一个数据进去,L02里面必须要有这个地址的数据。所以如果没有UCE这个状态,CPU2就必须去把地址0x0010的数据读到自己的cache里面去,但CPU2知道他要改写这个地址,你读回来的数据我不用,读了就是浪费时间浪费带宽呀。所以就搞了这个UCE,我只要一个地址,我不需要读数据。

为啥说cacheline state是硬的呢?这些cacheline state怎么用呢?

这些cacheline state呢,是实实在在在芯片里面对每个地址每个cache记录下来的,记录在哪呢,记录在HN里面,称呼为目录结构“directory”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值