以下摘录《步骤吓得核心——软-core处理器的室内设计与分析》一本书

13.7DCache使用情景之中的一个——存储指令运行阶段DCache失靶

存储指令运行阶段DCache失靶这样的情景在通写法、回写法策略下有不同的运行过程,在通写法策略下直接写存储器中相应的地址,不操作DCache。

在回写法策略下。首先推断目的地址相应的DCache中文件夹表的line是否被改动,假设是(Dirty为1)。则将该line写回到内存,然后将目的地址所在的内存块读入DCache,填充到相应line,然后再改动DCache中相应目的地址的数据。假设目的地址相应的line没有被改动(Dirty为0),那么直接将目的地址所在的内存块读入DCache,填充到相应line,然后再改动DCache中相应目的地址的数据。

如图13.7所看到的。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGVpc2hhbmd3ZW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

(详细分析过程參考书中正文)

13.8 DCache使用情景之二——存储指令运行阶段DCache命中

存储指令运行阶段DCache命中这样的情景在通写法、回写法策略下也有不同的运行过程,在通写法策略下,既要写DCache中文件夹表相应的line,还要写内存中相应的地址,在回写法策略下,仅仅是写DCache中文件夹表相应的line。如图13.11所看到的。

(详细分析过程參考书中正文)

13.9 DCache使用情景之三——l.mtspr指令写DCache中特殊寄存器

DCache中有三个特殊寄存器:DCBIR、DCBFR、DCBWR,其作用在13.3节已说明。从代码分析中能够发现,在通写法策略下,仅仅能使用DCBIR、DCBFR。在回写法策略下,能够使用所有三个特殊寄存器。这也是非常好理解的,在通写法策略下。DCache文件夹表中line的标志位Dirty始终为0。所以DCBIR、DCBFR的作用是一样。而且不是必需存在DCBWR寄存器,所以本章将指令l.mtspr写DCache中特殊寄存器这一情景又分为例如以下四种情景:

(1)通写法策略下。指令l.mtspr写DCBIR、DCBFR

(2)回写法策略下,指令l.mtspr写DCBIR

(3)回写法策略下,指令l.mtspr写DCBWR

(4)回写法策略下。指令l.mtspr写DCBFR

(详细分析过程參考书中正文)

13.10 DCache分析小结

DCache有多种使用情景,本章仅仅是分析了当中的三种,但这已经足够我们了解DCache的工作过程了。其余情景的处理过程与此是类似的。笔者个人感觉DCache模块是OR1200中最复杂的模块,由于要考虑到载入、存储指令,还要考虑採用的写策略是通写法、回写法,还要考虑DCache中相应文件夹项的标志位V、Dirty的情况,所以非常复杂。

为此。在本章最后分别给出在通写法、回写法情况下。DCache的工作流程图,如图13.18、13.19所看到的,当中也给出了DC_FSM模块中有限状态机各个状态之间的转换情况。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGVpc2hhbmd3ZW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

版权声明:本文博客原创文章,博客,未经同意,不得转载。

OR1200数据Cache运用情景分析的更多相关文章

  1. OR1200数据Cache介绍

    以下摘录<步骤吓得核心--软-core处理器的室内设计与分析>一本书 上一章剖析了ICache模块. 本章将剖析DCache模块.首先指出DCache模块相比ICache的特别之处.由于这 ...

  2. Linux内核源代码情景分析系列

    http://blog.sina.com.cn/s/blog_6b94d5680101vfqv.html Linux内核源代码情景分析---第五章 文件系统  5.1 概述 构成一个操作系统最重要的就 ...

  3. OR1200指令Cache使用举例

    下面内容摘自<步步惊芯--软核处理器内部设计分析>一书 12.4 ICache中的特殊寄存器 通过ICache的接口可知其具有特殊寄存器,而且是不可读的特殊寄存器,OR1200处理器中IC ...

  4. 《Android系统源代码情景分析》连载回忆录:灵感之源

    上个月,在花了一年半时间之后,写了55篇文章,分析完成了Chromium在Android上的实现,以及Android基于Chromium实现的WebView.学到了很多东西,不过也挺累的,平均不到两个 ...

  5. Android系统--Binder系统具体框架分析(二)Binder驱动情景分析

    Android系统--Binder系统具体框架分析(二)Binder驱动情景分析 1. Binder驱动情景分析 1.1 进程间通信三要素 源 目的:handle表示"服务",即向 ...

  6. Android系统--输入系统(十四)Dispatcher线程情景分析_dispatch前处理

    Android系统--输入系统(十四)Dispatcher线程情景分析_dispatch前处理 1. 回顾 我们知道Android输入系统是Reader线程通过驱动程序得到上报的输入事件,还要经过处理 ...

  7. go语言调度器源代码情景分析之五:汇编指令

    本文是<go调度器源代码情景分析>系列 第一章 预备知识的第4小节. 汇编语言是每位后端程序员都应该掌握的一门语言,因为学会了汇编语言,不管是对我们调试程序还是研究与理解计算机底层的一些运 ...

  8. go语言调度器源代码情景分析之四:函数调用栈

    本文是<go调度器源代码情景分析>系列 第一章 预备知识的第3小节. 什么是栈 栈是一种“后进先出”的数据结构,它相当于一个容器,当需要往容器里面添加元素时只能放在最上面的一个元素之上,需 ...

  9. go语言调度器源代码情景分析之三:内存

    本文是<go调度器源代码情景分析>系列 第一章 预备知识的第2小节. 内存是计算机系统的存储设备,其主要作用是协助CPU在执行程序时存储数据和指令. 内存由大量内存单元组成,内存单元大小为 ...

随机推荐

  1. 呈现怎样的香蕉饼路线Android系统

    无话可说,该系统的第一版,Android有的还可以,路由设置确实有闪光现象背.与其他的稳定版本发布,被能够机顶盒和路由组合.其次是SSD,还是很不错的. 硬件 watermark/2/text/aHR ...

  2. POJ 2250 Compromise (UVA 531)

    LCS问题.基金会DP. 我很伤心WA非常多.就在LCS问题,需要记录什么路. 反正自己的纪录path错误,最后,就容易上当. 没有优化,二维阵列,递归打印,cin.eof() 来识别 end of ...

  3. 【原创】leetCodeOj ---Construct Binary Tree from Preorder and Inorder Traversal 解题报告

    原题地址: https://oj.leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/ 题目 ...

  4. hdu 4944 FSF’s game(数论)

    题目链接:hdu 4944 FSF's game 题目大意:给定N,能够用不大于N的长a和宽b.组成N∗(N−1)2种不同的矩形,对于每一个矩形a∗b要计算它的值,K为矩形a,b能够拆分成若干个K∗K ...

  5. 剖析html对标准标签和自定义标签闭合与不闭合渲染问题

    昨天在修改去年写的系统的时候无意中看到了当时写的一个利用标准标签未闭合在单元格内把整个单元格颜色渲染成红色的效果,如下: 当时的问题是从后台返回来的是个int整数而%是写在页面上的如图 这 时候就出现 ...

  6. JAVA Socket超时浅析(转)

    套接字或插座(socket)是一种软件形式的抽象,用于表达两台机器间一个连接的“终端”.针对一个特定的连接,每台机器上都有一个“套接字”,可以想象它们之间有一条虚拟的“线缆”.JAVA有两个基于数据流 ...

  7. ZeroMQ注意事项

    Request-Reply状态 供client它必须是严肃的格在根据第一呼叫zmq_send() 函数,然后调用zmq_recv()函数的顺序来运行 对于server来说,运行时序相反 假设不依照这个 ...

  8. 深入理解JavaScript系列(33):设计模式之策略模式(转)

    介绍 策略模式定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化不会影响到使用算法的客户. 正文 在理解策略模式之前,我们先来一个例子,一般情况下,如果我们要做数据合法性验证,很 ...

  9. IT忍者神龟之使用 PowerDesigner

    1. 启动 PowerDesigner 新建物理数据模型 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdmlweWhk/font/5a6L5L2T/fon ...

  10. ios 多线程开发(一)简介

    简介 线程是在一个程序中并发的执行代码的方法之一.虽然有一些新的技术(operations, GCD)提供了更先进高效的并发实现,OS X和iOS同时也提供了创建和维护线程的接口. 这里将要介绍线程相 ...