以下内容摘自《步步惊芯——软核处理器内部设计分析》一书
13.3 DCache中的特殊寄存器
在DCache中定义了三个特殊寄存器:DCBFR、 DCBIR、DCBWR,这三个寄存器都是只可写寄存器,即只能使用指令l.mtspr操作这三个特殊寄存器。其中在通写法策略下只能使用DCBIR、DCBFR,在回写法策略下可以使用全部三个特殊寄存器。各特殊寄存器的含义如表13.1所示,格式都如表13.2所示。
- 当使用指令l.mtspr向数据缓存块刷新寄存器DCBFR中写入地址时,有如下几种情况:
- 如果该地址对应DCache目录表中line的标志位Dirty为0、V为1,那么直接设置该line标志位V为0
- 如果该地址对应DCache目录表中line的标志位Dirty为1,、V为1,那么首先把该line中的16个字节写回内存,然后设置该line的标志位V为0
- 其余情况没有操作
- 当使用指令l.mtspr向数据缓存块无效寄存器DCBIR中写入地址时,那么直接设置该地址对应DCache目录表中line的标志位V为0
- 当使用指令l.mtspr向数据缓存块回写寄存器DCBWR中写入地址时,有如下几种情况:
- 如果该地址对应DCache目录表中line的标志位Dirty为1、V为1,那么需要把该line中的16个字节写回内存
- 其余情况没有操作
从指令l.mtspr对这三个寄存器操作的工作过程可知,其中很重要的影响因素就是标志位Dirty的值,而采用通写法时,DCache目录表中每一个line的Dirty标志位始终为0,所以在通写法策略下,寄存器DCBWR没有作用,并且此时DCBFR、DCBIR的作用是一样的,在后面的代码分析中也可以发现在通写法策略下,DCache处理指令l.mtspr写DCBFR与DCBIR的过程是一样的。
13.4 DCache使用情景
第12章通过对使用ICache各种情景的分析实现了对ICache模块的剖析,本章采用同样的方法,通过对使用DCache各种情景的分析以实现对DCache模块的剖析,使用到DCache的情景有如下几种:
(1)l.mtspr指令写DCache中的特殊寄存器(分通写法、回写法)
(2)存储指令执行阶段DCache失靶(分通写法、回写法)
(3)加载指令执行阶段DCache失靶(分通写法、回写法)
(4)存储指令执行阶段DCache命中(分