chi中的trans简析---Allocating Read

        此处仅简单分析每个命令的含义,背景,以及可能的状态变化,对于每个trans具体包含的流程,将在下文描述;

    read类型的操作分为两类,allocating read和non-allocating read;

    Allocating read

   ==============================================================

   ReadClean

        --此类命令只能接收cacheline状态为UC/SC的数据,即不能接收dirty的数据;

        --一般用于,当某个RNF不具备将dirty的数据flush入内存的能力时,会使用这种命令;

        --也就是说,当前这个RNF的cache的写回策略是write through, 所以只能支持clean态;

        --readclean触发的snpclean, 会将其他RNF中的dirty的数据写入主存,然后将clean的数据返回给发起ReadClean的RNF;

        --允许的初始状态:(根据tagop做区分) 所有状态都可以发送该命令;

        --响应返回后的状态:UC/SC;

        --被SNP的RNF,SNP后的状态:I / SC / SD;

   ==============================================================

   ReadNotSharedDirty

        --当RNF本身只支持MESI协议,不支持MOESI时,此RNF不能存在O态,即shared dirty, 该RNF不能够接收该状态;

        --允许的初始状态:I / UCE;

        --响应返回后的状态:UC/UD/SC;

        --被SNP的RNF,SNP后的状态:I / SC / SD;

        

   ==============================================================

   ReadShared

        --此命令和上一命令相对应,支持MOESI状态模型

        --允许的初始状态:I / UCE;

        --响应返回后的状态:UC/UD/SC/SD;

        --被SNP的RNF,SNP后的状态:I / SC / SD;

        

   ==============================================================

   ReadUnique

        --RN想要写非完成的cacheline, 所以先要获得最新的数据和写(unique)的权限,接着进行partial的写并与最新的数据merge;

        --访问的是snoopable的地址空间;

        --初始状态建议最好是I/SC/SD, 但是也允许在UC/UD/UDP/UCE时发送;

        --命令完成后状态,只能是UC/UD;

        

   ==============================================================

   ReadpreferUnique

        --访问的是snoopable的空间,想要获得一个unique的cacheline;

        --使用场景上,发送此命令,是希望获得unique状态,但是如果不是unique的,也允许;

           1. 发送该命令时,其他RN正在对这个地址进行exclusive的访问,此时返回的状态时shared;

           2. 允许返回的状态一直是shared;

        --此命令主要是用来提高exclusive访问的效率,具体提升点在exclusive访问处描述;

        --当前RN的状态转换图示如下:     

           ​  

   ==============================================================

   MakeReadUnique

        --访问snoopable的空间,想要获取该cacheline的unique状态;

        --典型使用场景是当前RN有该cacheline的shared copy, 想要获得写该cacheline的权限;

        --此命令分为exclusive/非exclusive两种,具体后文再介绍;

        --

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值