iCache和dCache一致性
我们的程序在执行的时候,指令一般是不会修改的。这就不会存在任何一致性问题。但是,总有些特殊情况。例如某些self-modifying code,这些代码在执行的时候会修改自己的指令。例如gcc调试打断点的时候就需要修改指令。当我们修改指令的步骤如下:
1.将需要修改的指令数据加载到dCache中。
2.修改成新指令,写回dCache。
我们现在面临2个问题:
1.如果旧指令已经缓存在iCache中。那么对于程序执行来说依然会命中iCache。这不是我们想要的结果。
2.如果旧指令没有缓存iCache,那么指令会从主存中缓存到iCache中。如果dCache使用的是写回策略,那么新指令依然缓存在dCache中。这种情况也不是我们想要的。
解决一致性问题既可以采用硬件方案也可以采用软件方案。
一致性的测量可以用什么?
一致性的测量可以用于描述多个作者评价的一致程度,可使用Kappa统计量计算两个作者在作简单的纳入/排除决策时的测量一致性,见表1。对于用Kappa值判断一致性的建议参考标准为:①Kappa =+1,说明两次判断的结果完全一致;②Kappa =-1,说明两次判断的结果完全不一致;③Kappa =0,说明两次判断的结果是机遇造成;④Kappa<0,说明一致程度比机遇造成的还差,两次检查结果很不一致,但在实际应用中无意义;⑤Kappa>0,此时说明有意义,Kappa愈大,说明一致性愈好;⑥Kappa<0.4,说明一致程度不够理想;⑦Kappa≥0.75,说明已经取得相当满意的一致程度
关键词: iCache和dCache一致性 一致性的测量 可以用什么