zoukankan      html  css  js  c++  java
  • 存储系统(2)cache

    1.目的

      解决CPU与主存速度不匹配 的问题。

    2.工作原理

      CPU发出访存地址。地址格式为 主存地址格式。

      访存地址被cache与主存同时接受。cache接受前经过地址映射与转换机构,用于判断是否命中。

        若命中,直接从cache取出数据;

        若未命中,从主存提取数据,并将数据装入cache。(若cache空间不足,设计替换策略)

      CPU与cache和主存间交换数据以 字/字节 为单位

      cache与主存之间交换数据以 块为单位

    3.地址映射:

      全相联映射, 直接映射, 组相联映射

      1).全相联映射

        • 主存与cache 块间随机映射

        • 最灵活,cache利用率最高,成本最高

        • 主存地址 = 块地址(高m位) + 块内地址(低n位)

         cache地址 = 块地址(高c位) + 块内地址(低n位)

        •目录表 记录映射关系:

            主存块号  -  cache 块号  - 有效位

      2).直接映射

        • 主存块映射到cache固定块,主存按照cache大小分区,区内块数相同。映射关系: j = i % 2^c

        • 简单,快。不灵活

        • 主存地址 = 区号(高t位) + 区内块号(中c位) + 块内地址(低n位)

         cache地址 = 块地址(高c位) + 块内地址(低n位)

        •区表 记录映射关系:

            区号  - 有效位

        •备注

          ♦主存第 i 块 调入cache 第 i 块

          ♦主存与cache块号相同,使得在登记区表时,只需记录块所在区号

          ♦访存地址 块号 字段存储块号 i ,在区表的第 i 个存储字(表示cache第 i 块)中取出区号,与访存地址区号字段比较。

          ♦cache 共 2^c 块,区表共 2^c 个存储字

      3).组相联映射

        • 主存按cache大小分区,与cache按相同大小区内分组,组内块数相同。组间直接映射,组内全相联映射。

        • 主存地址 = 区号(s位) + 组号(U位) + 组内块号(v'位) + 块内地址(低n位)

         cache地址 = 组号(U位) + 组内块号(v位) + 块内地址(低n位)

        •块表 记录映射关系:

            区号  - 组号  -  组内块号  -  有效位

        •备注

          ♦区号组号共同作为判断命中标志

    4.替换算法

      1).cache无空间时,替换出旧块,装入新块。

      2).

        •随机算法(RAND法):

          不考虑块使用情况,随机替换

          易实现,速度快。降低命中率和cache工作效率。

        •先进先出法(FIFO):

          不考虑块使用情况,先进者先被替换。

          装入块计数为0,其他块计数加一,替换计数最大者

        •最近最少未使用(LRU):

        •最不经常使用(LFU):

          替换后,所有计数器清零

          替换计数最小者

    5.写回策略

      1).保证一致性

        CPU写cache,未及时写主存;

        I/O写主存,为及时写cache。

      2).写策略:

        •写直达(Write through)

          写cache同时写主存;

          频繁访存,降低平均访存时间

          使用  不按写分配法(cache不命中,只写主存)

        •写回法(Write Back)

          简单写回(不管是否更新,一律写回) 、 标志位写回(只写回更新过的块)

          使用  按写分配法(cache不命中,写主存后,装入cache)

  • 相关阅读:
    Struts2学习笔记:DMI,多个配置文件,默认Action,后缀
    Sturts2中Action的搜索顺序
    配置Struts2后运行jsp出现404的解决方法
    Tomcat服务器启动后访问localhost:8080显示404的原因
    Error:Cannot find bean: "org.apache.struts.taglib.html.BEAN" in any scope
    Missing message for key "xxx" in bundle "(default bundle)" for locale zh_CN
    jQuery添加删除
    jQuery的offset、position、scroll,元素尺寸、对象过滤、查找、文档处理
    jQuery_$方法、属性、点击切换
    jQuery选择器
  • 原文地址:https://www.cnblogs.com/gstblog/p/6432855.html
Copyright © 2011-2022 走看看