OR1200数据Cache的通写、回写应用举例

本文深入分析了OR1200软核处理器的DCache,介绍了DCache中的特殊寄存器DCBFR、DCBIR、DCBWR在通写法和回写法下的应用。通过讲解DCache使用情景,如l.mtspr指令操作,展示了不同写策略下的工作流程。此外,还提供了修改简单SOPC以排除取指过程影响的方法,以便更精确地观察加载和存储指令在添加DCache后的处理过程。
摘要由CSDN通过智能技术生成

以下内容摘自《步步惊芯——软核处理器内部设计分析》一书

 

13.3 DCache中的特殊寄存器

      在DCache中定义了三个特殊寄存器:DCBFR DCBIRDCBWR,这三个寄存器都是只可写寄存器,即只能使用指令l.mtspr操作这三个特殊寄存器。其中在通写法策略下只能使用DCBIRDCBFR,在回写法策略下可以使用全部三个特殊寄存器。各特殊寄存器的含义如表13.1所示,格式都如表13.2所示。

 

  •  当使用指令l.mtspr向数据缓存块刷新寄存器DCBFR中写入地址时,有如下几种情况:
    •   如果该地址对应DCache目录表中line的标志位Dirty0V1,那么直接设置该line标志位V0
    •   如果该地址对应DCache目录表中line的标志位Dirty1,V1,那么首先把该line中的16个字节写回内存,然后设置该line的标志位V0
    •   其余情况没有操作
  • 当使用指令l.mtspr向数据缓存块无效寄存器DCBIR中写入地址时,那么直接设置该地址对应DCache目录表中line的标志位V0
  • 当使用指令l.mtspr向数据缓存块回写寄存器DCBWR中写入地址时,有如下几种情况:
    •   如果该地址对应DCache目录表中line的标志位Dirty1V1,那么需要把该line中的16个字节写回内存
    •   其余情况没有操作

      从指令l.mtspr对这三个寄存器操作的工作过程可知,其中很重要的影响因素就是标志位Dirty的值,而采用通写法时,DCache目录表中每一个lineDirty标志位始终为0,所以在通写法策略下,寄存器DCBWR没有作用,并且此时DCBFRDCBIR的作用是一样的,在后面的代码分析中也可以发现在通写法策略下,DCache处理指令l.mtsprDCBFRDCBIR的过程是一样的。

13.4 DCache使用情景

      第12章通过对使用ICache各种情景的分析实现了对ICache模块的剖析,本章采用同样的方法,通过对使用DCache各种情景的分析以实现对DCache模块的剖析,使用到DCache的情景有如下几种:

      (1l.mtspr指令写DCache中的特殊寄存器(分通写法、回写法)

      (2)存储指令执行阶段DCache失靶(分通写法、回写法)

      (3)加载指令执行阶段DCache失靶(分通写法、回写法)

      (4)存储指令执行阶段DCache命中(分

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值