存储系统 —— Cache(高速缓冲存储器)_一个很懒的人的博客-程序员秘密

技术标签: 存储系统  计算机组成原理  Cache  

本文主要介绍以下几方面的知识:

  1. Cache 的基本工作原理
  2. Cach和主存之间的映射方式
  3. Cache中主存块的替换算法
  4. Cache写策略

1.Cache的基本工作原理

在这里插入图片描述

  • 存储系统存在的问题
    在这里插入图片描述

  • 局部性原理
    在这里插入图片描述

  • (3)Cache 工作原理
    在这里插入图片描述

  • 性能分析
    在这里插入图片描述
    在这里插入图片描述

  • 块地址形式
    在这里插入图片描述
    在这里插入图片描述

2.Cach和主存之间的映射方式

在这里插入图片描述
在这里插入图片描述

(1)全相联映射
  • 主存放置到Cache中
    在这里插入图片描述
  • CPU 访存某个地址
    在这里插入图片描述
(2)直接映射
  • 主存放置到Cache中
    在这里插入图片描述
  • CPU 访存某个地址
    在这里插入图片描述
(3)组相联映射
  • 主存放置到Cache中
    在这里插入图片描述
  • CPU 访存某个地址
    在这里插入图片描述

3.Cache中主存块的替换算法

在这里插入图片描述
注: 替换算法解决的问题,及其适用范围
在这里插入图片描述

(1)随机算法(RAND)

在这里插入图片描述

(2)先进先出算法(FIFO)

在这里插入图片描述

(3)近期最少使用算法(LRU)
  • 手算
    在这里插入图片描述
  • 机器实现
    在这里插入图片描述
    在这里插入图片描述
(4)最不经常使用算法(LFU)

在这里插入图片描述


4.Cache写策略

在这里插入图片描述
在这里插入图片描述

(1)写命中
  • 写回法
    在这里插入图片描述
  • 全写法
    在这里插入图片描述
(2)写不命中
  • 写分配法
    在这里插入图片描述
  • 非写分配法
    在这里插入图片描述
(3)多级Cache

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43715360/article/details/120385012

智能推荐

Linux2.6 内核的 Initrd 机制解析_毛毛虫的爹的博客-程序员秘密

Linux 的 initrd 技术是一个非常普遍使用的机制,linux2.6 内核的 initrd 的文件格式由原来的文件系统镜像文件转变成了 cpio 格式,变化不仅反映在文件格式上, linux 内核对这两种格式的 initrd 的处理有着截然的不同。本文首先介绍了什么是 initrd 技术,然后分别介绍了 Linux2.4 内核和 2.6 内核的 initrd 的处理流程。最后通过对 Lin

转---原码,反码,补码的深入理解与原理。_原码反码补码_JavenLaw的博客-程序员秘密

/*最近在重新学习一遍C语言,以更加深入的理解C语言,为C++打下比较坚实的基础。此次学习主要依据的书籍依然为《C Primer plus》中文版 第五版。至此,我创建了C/C++这一个分类,用以记录学习C/C++的过程,不断提高自己。*/ 在前面的两章的学习中,并未遇到很大的问题。其中的一个就是关于变量,变量名,声明,定义,初始化等的相关基础知识,这点会在下一篇的文章中进行讲解...

ubuntu下删除带锁文件夹_uebntu文件夹有个锁怎么删除_Tramac的博客-程序员秘密

文件夹所在目录下执行:sudo chmod -R 777 文件或文件夹

c语言中.cpp英文全称,请问在c++中后缀名.c 与.cpp的区别?_its斯弟文的博客-程序员秘密

qq_遁去的一_1二者区别如下:.c 是c语言的源程序,.cpp是c++语言的源程序,这是两种不同的语言,语法不同。但是c++兼容c语言的绝大部分语法特性,所以该段代码在C++中可以运行,但是在C语言中就会报错。想要在C中运行,可以将定义变量放置在函数开头,修改后程序段如下:#includevoid main(){int a;a=7;float x,y,z;x=2.5;y=4.7;z=x+...

杭电oj1108最小公倍数_平平无奇小白菜的博客-程序员秘密

#include <iostream>using namespace std; int main(){ int a,b,t,c; while (cin >> a >> b) { c = a * b; if (a < b) { t = a; a = b; b = t; } while (a % b != 0...

人脸识别概述整理_人脸识别 概述_everagain的博客-程序员秘密

国内外在该方向的研究现状及分析近年来,随着计算机技术的迅速发展,人脸自动识别技术得到广泛研究与开发,人脸识别成为近30年里模式识别和图像处理中最热门的研究主题之一。人脸识别作为一种显著的生物特征识别技术, 相较于其他的识别系统而言,具有非接触和相对友好的特点, 广泛应用于军事,金融,安全,日常生活,互联网电子类产品中。人脸识别类型分为人脸验证和人脸识别,人脸验证(1:1人脸识别),主要用于身份核实,常用手机人脸解锁,或者一些其他场景的身份核实。人脸识别1:N,主要指系统采集用户的一张人脸数据后,需要

随便推点

Java8 Optional的使用_Agger_chen的博客-程序员秘密

Optional简介Optional类是java8新增的类,主要是用来解决空指针异常(NullPointerException)。Optional类在函数式编程规范中具有重要意义。Optional方法可以避免频繁的判空操作。例如:public void function(User u){ if(u!=null){ Adder adder = u.getAdder(...

Java不同编码方式,中英文字符所占字节数_路口山水画的博客-程序员秘密

Java不同编码方式,中英文字符所占字节数有人说Java中英文字符占1个字节,也有人说占2个字节,甚至还有人说占4个字节;那么到底谁说的对?我的回答是都没错,具体要看是什么编码方式。纸上得来终觉浅,绝知此事要躬行,我编写了下边的代码,运行输出的结果就是答案。代码如下:public class Test { public static void main(String[] a...

Good Luck in CET-4 Everybody!_LiuXingLong的博客-程序员秘密

Good Luck in CET-4 Everybody!Time Limit : 1000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other)Total Submission(s) : 101   Accepted Submission(s) : 61Problem Description大

电脑连手机热点连得上微信,QQ上不了网_连手机热点后qq无法登陆_人间百岁山的博客-程序员秘密

这个原因是没有分配ip,只有ipv4的ip是192.168开头的才能上网。建议360的网络修复,外加重启路由器(手机,WiFi器等),网络配置器最好设置成自动连接,最好是公用网络,外加按流量计费。写这个是为了自己忘了好调回来。...

mysql 游标循环使用_mysql循环使用游标_o12321o的博客-程序员秘密

测试数据SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;DROP TABLE IF EXISTS `student`;CREATE TABLE `student` ( `stu_id` int(11) NOT NULL AUTO_INCREMENT, `stu_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, `stu_s

推荐文章

热门文章

相关标签