zoukankan      html  css  js  c++  java
  • MMU、Icache、Dcache

    http://blog.csdn.net/iodoo/article/details/8954014

    i-cache(instruction cache)是指令高速缓冲存储器。 Cache存储体:存放由主存调入的指令与数据块.

    dcache(data cache):数据高速缓冲存储器

    CACHE:Cache是一种特殊的存储器,它由Cache 存储部件和Cache控制部件组成。Cache 存储部件一般采用与CPU同类型的半导体存储器件,存取速度比内存快几倍甚至十几倍。而Cache 控制器部件包括主存地址寄存器、Cache 地址寄存器,主存—Cache地址变换部件及替换控制部件等。

    MMU 负责地址映射,将CPU中虚拟地址VA映射到物理地址PA,CPU 启动时,默认是不开启MMU的,因此,需要有一段代码来开启MMU。

    这段代码有个条件是,所处的地址,虚拟地址必须等于物理地址。否则,映射之后,PC 中的地址会当做虚拟地址处理,寻址就会读取到其他不确定地方的数据。


    与在汇编的层面来看,地址就是存储地址,不会当做数据;而C语言中的变量地址,则会当做数据;这一点编译器会自动处理而不用关心。


    单核处理器,使用Dcache 只存在一个问题,即与 DMA 会数据不一致的问题。

    CPU 读取 RAM 数据,如果 Dcache 命中,则读取 Dcache 中的值,未命中则读取 RAM 中的值。写数据时,有两种方式: write through 和 write back。

    write through 方式:CPU 将数据同时写回到 Dcache 和 RAM 中,这个过程与不开 Dcache 消耗的时间一样。

    write back 方式: CPU 将数据写到 Dcache 中,并将该数值标志为 dirty, 当 Dcache 释放该数据时,将值写回到 RAM 中。这个过程是比较快捷的。


    DMA 通常负责外设与 RAM 的通信,是不经过 CPU 的。

    当 DMA 修改 RAM 中的数据时,CPU 是不知道的。

  • 相关阅读:
    Netflix Ribbon(负载均衡)介绍
    Annotation 注解
    框架设计的灵魂-反射
    idea maven java.lang.outofmemoryerror gc overhead limit exceeded
    洛谷P4427 [BJOI2018]求和
    洛谷P1196 [NOI2002]银河英雄传说
    CF191C Fools and Roads
    洛谷P2296 寻找道路
    洛谷P3389 【模板】高斯消元法
    洛谷P1351 联合权值
  • 原文地址:https://www.cnblogs.com/alan666/p/8312174.html
Copyright © 2011-2022 走看看