计算机组成原理(笔记7高速缓冲存储器Cache,计算机组成原理的重难点全、直接、组相连)

为什么要设立高速缓冲存储器 (Cache)?

Cache是介于CPU和主存之间的小容量存储器,存取速度比主存快。它能高速地向CPU提供指令和数据,加快程序的执行速度。它是为了解决CPU和主存之间速度不匹配而采用的一项重要技术。
在这里插入图片描述
不过计算机本身是不知道自己是这样的执行,它只知道用

Cache工作原理

在计算机中,我们访问的速度快有个重要的原因,就是引入了cache
他提前,把主存的内容下载好,然后让我们快速访问,通常cache会比主存小很多
Cache与主存之间的数据交换是以块为单位
所为块,我们把主存和cache里面,我们分成一个一个的小房间,也就是块,这样你需要什么我们可以直接找到房间号,去拿出我们要的东西
在这里插入图片描述
Cache的基本概念

  • 命中 hit: CPU访问数据在cache中(上层存储器)
  • 缺失 miss: CPU访问数据不在cache中
  • 块 block: cache与主存交换最小单位
    块大小多少合适??? 实现预读
  • 行/槽 Line/Slot:标记、标志位、数据块容器
    有效位、查找标记、脏标志位、置换标志、数据块副本
  • Cold Cache、Warm Cache

Cache的性能参数

如果考到以下的例题那就是送分题
Cache的命中率
增加cache的目的,就是在性能上使主存的平均访问时间尽可能接近Cache的访问时间。因此,Cache的命中率应接近于1。由于程序访问的局部性,这是可能的。在一个程序执行期间,设Nc表示Cache完成存取的总次数,Nm表示主存完成存取的总次数,h定义为命中率(Hit Ratio),则有
在这里插入图片描述
平均访问时间(等效访问时间)ta
若tc表示命中时的Cache访问时间,tm表示未命中时的主存访问时间,1-h表示为缺失率(Miss Ratio),则Cache/主存系统的平均访问时间ta为:
在这里插入图片描述
访问效率
设立Cache/主存系统的目标,是以较小的硬件代价,使系统的平均访问时间ta越接近tc越好。设r=tm/tc表示主存慢于Cache的倍数,e表示访问效率,则有:
在这里插入图片描述
由上式可以看出,为提高访问效率,命中率h越接近1越好,r值以5—10为宜,不宜太大。
命中率h与程序的行为、Cache的容量、组织方式、块的大小有关。
在这里插入图片描述

Cache读、写流程与关键技术

  • CPU给出主存地址(块地址,块内地址)
  • 主存块地址为关键字进行查找
  • 如相符表示副本在cache中,命中,访问cache
  • 否则数据缺失,访问主存
    将数据所在块副本调入cache(块交换—局部性)
    载入副本过程可能引起替换
    更新查找表,记录当前数据块地址
    cache缺失时系统等待数据调入
    在这里插入图片描述
  • CPU给出主存地址
  • 主存块地址为关键字进行查找
    相符则表示命中,数据副本在cache中
    缺失根据写分配策略决定是否将该主存地址对应数据块调入
  • 写入数据到cache
  • 根据写策略决定是否写入主存
    在这里插入图片描述

CPU cache基本组织方式

  • CPU cache由较快的SRAM构成
  • cache与主存均分为固定大小的数据块,以块为单位交换数据
  • 相联存储器存放查找表
    表项:(有效位,调入cache的主存块地址,cache块地址)
    容量 = cache块数 * 表项大小
  • CPU给出的块地址与查找表中某单元相同且有效位为1表示命中
    全相联:硬件多路并发比较可以提升查找速度

下图是块与块内地址
在这里插入图片描述

重点

在这里插入图片描述

全相联

在这里插入图片描述
在这里插入图片描述
查找表和缓存副本一体(CPU片内缓存)
存放cache行
有效位,主存块地址,数据块副本,标志位(Dirty bit),置换标记
存储容量= cache行大小 × 行数

查找表和缓存副本分离(片内查找表,片外缓存)
存放查找信息
有效位,主存块地址, cache块地址,标志位(Dirty bit),置换标记
存储容量=查找表表项大小 × 行数

在这里插入图片描述
解释:根据上图,我们看到1F转换为二进制,就是000011111,至于为什么一共是9位,这是因为主存块的大小2的9次方

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

直接相连

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
cache容量 = 行大小 × 行数
  =(标志位+标记位+数据块+置换标记) × 行数
标记位=区地址
标志位(有效标志位,脏数据位)
无相联存储器,一个比较器

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

在这里插入图片描述

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

组相连

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

存放数据副本

多个相联存储器共享一个多路比较器

相对于全相联 多路比较器复杂度低

查找表表项内容(valid位,标记,dirty位,置换标记位)

相联存储器总容量

cache行数*(1+标记宽度+1+置换标记位)

片外缓存如果查找表在CPU内部?

查找表中必须增加cache行地址? why
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

例题

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

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

对于初学的难题

这道题的难点
1.脑子对字和字节要转换过来
2.对于倍数,2进制的运算,要理解清楚
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/56312.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Mockaroo生成测试数据

使用Mockaroo生成测试数据 最近在学习【Spring Boot & React】Spring Boot和React教程视频的P51.Generating 1000 students一课中,看到了https://www.mockaroo.com/网站可以用来模拟生成测试数据,觉得还不错,特此记录一下。感觉每次看老…

centOS部署Jenkins实现项目可持续自动化部署

个人看的是尚硅谷的视频,跟着实战,但因为视频是21年的,所以很容易出现jenkins插件不适配问题。 因而个人直接用较新版的jdk和jenkins. 先切换到root用户 sudo su一、安装jdk 先查询可安装版本 yum list java*安装jdk(只复制圈…

【Python爬虫实战】正则:中文匹配与贪婪非贪婪模式详解

🌈个人主页:https://blog.csdn.net/2401_86688088?typeblog 🔥 系列专栏:https://blog.csdn.net/2401_86688088/category_12797772.html 目录 前言 一、匹配中文 (一)匹配单个中文字符 (二…

DeepFM模型代码详解

直到看到这篇文章,我才搞明白类别特征怎么做lookup的,也看明白了代码逻辑。如果你看完没懂,私信留下wx,给你讲懂。 1、Deepfm 的原理,DeepFM 是一个模型还是代表了一类模型,DeepFM 对 FM 做了什么样的改进…

单细胞copyKat分析学习和整理

CopyKAT(肿瘤拷贝数核型分析)是一种使用综合贝叶斯方法的计算工具,能够在单细胞中以5MB分辨率检测全基因组非整倍体,以便从高通量单细胞RNA测序数据中区分肿瘤细胞与正常细胞,并识别肿瘤亚克隆。 (这里提一下,“5MB”是指 5兆碱基对(5 megab…

CTF-PWN方向 栈溢出等基础知识笔记(2)

C语言基本函数补充 write函数 ret2syscall 要求有0x80这种系统调用存在 (0x0A是回车的意思) 案例 通过file查看这个文件 发现是静态编译的文件 所以很多库函数都被编译进去了 但是不存在bin/sh字符串 不存在system和backdoor函数 修改,rea…

【环境搭建】远程服务器搭建ElasticSearch

参考: 非常详细的阿里云服务器安装ElasticSearch过程..._阿里云服务器使用elasticsearch-CSDN博客 服务器平台:AutoDL 注意: 1、切换为非root用户,su 新用户名,否则ES无法启动 2、安装过程中没有出现设置账号密码…

AD9361 在低至 1MHz 的频率下运行

AD9361 在低至 1MHz 的频率下运行 AD -FREQCVT1-EBZ是包含AD9361的FMCOMMS3/4/5板的附加板。虽然完整的芯片级设计包可在此 RF 收发器的ADI产品页面上找到,但有关此卡的信息及其使用方法、围绕它的设计包以及可使其工作的软件可在此处找到。 AD-FREQCVT1-EBZ 模块…

山西农业大学20241015

02-VUE 一. Vue中常用的指令1. Vue指令概述2 Vue中指令的分类3 Vue中指令3.1 内容渲染指令3.2 条件渲染指令3.2.1 v-show3.2.2 v-if3.2.3 v-else 和 v-else-if 3.3 事件绑定指令 v-on--重要3.3.1 内联语句3.3.2 methods中的函数名 一. Vue中常用的指令 1. Vue指令概述 概念: 指…

安装Node.js环境,安装vue工具

一、安装Node.js 去官方网站自行安装自己所需求的安装包 这是下载的官方网站 下载 | Node.js 中文网 给I accept the terms in the License Agreement打上勾然后点击Next 把安装包放到自己所知道的位置,后面一直点Next即可 等待它安装好 然后winr打开命令提示符cmd 二、安装…

MySQL中表的约束

1,概念 表中一定要有各种约束,通过约束,让我们来插入数据库中的数据是符合预期的。 约束本质是通过技术手段,倒逼程序员插入正确的数据;反过来,站在MySQL的角度来单,内部已经插进来的数据&…

Web安全 - 跨站点请求伪造CSRF(Cross Site Request Forgery)

文章目录 OWASP 2023 TOP 10CSRF 导图CSRF的基本概念CSRF的工作原理常见CSRF攻击模式CSRF防御策略补充建议应用场景实战防御策略选择1. CSRF Token(首选)2. SameSite Cookie属性3. 验证Referer和Origin4. 多因素认证 实现方案CSRF Token实现SameSite Coo…

(39)MATLAB生成高斯脉冲及其频谱

文章目录 前言一、MATLAB仿真代码二、仿真结果画图 前言 高斯脉冲在通信中是很重要的调制符号波形,本文使用MATLAB生成高斯脉冲,并使用FFT变换给出其频谱。 一、MATLAB仿真代码 代码如下: % 信号参数 fs 100; % 采样…

【Vercel】Vercel部署项目遇到的问题

部署问题1&#xff1a; 问题详情 部署提示报错&#xff0c;vite的命令找不到 13:18:21.159 13:18:21.160npm error This is an error with npm itself. Please report this error at: 13:18:21.160npm error 13:18:221.16 npm error A complete l <https://github.com/np…

【自动驾驶汽车通讯协议】I2C(IIC)总线通讯技术详解

文章目录 0. 前言1. I2C简介2.I2C的工作原理2.1 硬件要求&#xff1a;2.2 半双工通信&#xff1a; 3. 通信时序4. 其他特性4.1 通信速率4.2 抗干扰措施4.3 注意事项 5. 在自动驾驶汽车中的应用5.1 I2C操作模式5.2 I2C的用途 6. 总结 0. 前言 按照国际惯例&#xff0c;首先声明&…

Java—类和对象习题讲解

如果您觉得这篇文章对您有帮助的话 欢迎您一键三连&#xff0c;小编尽全力做到更好 欢迎您分享给更多人哦 目录 习题一&#xff1a; 习题二&#xff1a; 习题三&#xff1a;.import static 能够导入一些静态方法 习题四&#xff1a; 习题五&#xff1a; 习题六&#xff1…

【刷题册】2024.10.13 - 2024.10.15

目录 一、2024.10.131.1 BC153 [NOIP2010]数字统计1.2 NC313 两个数组的交集1.2.1 思路一&#xff1a;暴力O(N^2)1.2.2 思路二&#xff1a;hash 1.3 AB5 点击消除 二、2024.10.142.1 BC64⽜⽜的快递2.2 DP4 最⼩花费爬楼梯2.3 数组中两个字符串的最⼩距离 三、2024.10.153.1 BC…

Visual Studio Code基础:使用debugpy调试python程序

相关阅读 VS codehttps://blog.csdn.net/weixin_45791458/category_12658212.html?spm1001.2014.3001.5482 一、安装调试器插件 在VS code中可以很轻松地调试Python程序&#xff0c;首先需要安装Python调试器插件&#xff0c;如图1所示。 图1 安装调试器插件 Python Debugge…

Redis --- 第四讲 --- 常用数据结构 --- Hash、List

一、Hash哈希类型的基本介绍。 哈希表&#xff1a;之前学过的所有数据结构中&#xff0c;最最重要的。 1、日常开发中&#xff0c;出场频率非常高。 2、面试中&#xff0c;非常重要的考点。 Redis自身已经是键值对结构了。Redis自身的键值对就是通过哈希的方式来组织的。把…

16年408计算机网络

第一题&#xff1a; 解析&#xff1a; 首先我们要清楚R1,R2,R3是路由器&#xff08;网络层&#xff09;&#xff0c;Switch是以太网交换机&#xff08;数据链路层&#xff09;&#xff0c;Hub是集线器&#xff08;物理层&#xff09;。 由此可见路由器实现的最高功能层是3层&am…