计算机组成原理(四)Cache存储器
文章目录
- Cache存储器的基本原理
- cache命中率、平均访问时间、效率
- 地址映射
- 全相联映射
- 直接映射
- 组相联映射
- 查找算法
- cache 存储器替换策略
- cache 存储器-写操作策略
- 习题
Cache存储器的基本原理
- Cache是一种高速缓冲寄存器,是为了解决CPU和主存之间速度不匹配而采用的一项关键技术。
- Cache能够高速地向CPU提供指令和数据,从而加快程序的执行速度。
- Cache 为了追求高速,包括管理在内的全部功能由硬件完成。
cache命中率、平均访问时间、效率
理解
地址映射
主存容量远大于cache容量,所以当你要把一个主存块调入cache时,就有一个如何放置的问题(映射问题)
全相联映射
- 全相联映射:将主存种一个块的地址与块的内容一起存入cache的行中,其中块地址存入cache行的标记部分中。
- cache的数据块大小称为行。主存的数据块大小称为块。行与块是等长的。
- 可以使得主存中的一个块直接拷贝到cache的任意一行,非常灵活。
- 缺点:比较电路难于设计和实现,只适合小容量cache使用
直接映射
- 这是一种多对一的映射方式,但是一个主存块只能拷贝到cache的一个特定行位置上。
- cache 的行号i 和主存的块号 j 有如下函数关系:
i = j m o d m ( n 为 c a c h e 中的总行号) i = j mod m (n为cache中的总行号) i=jmodm(n为cache中的总行号)- 直接映射方式的优点:硬件简单,成本低。
缺点:每一个主存块只有一个固定的行位置可以存放,容易发生冲突。适合大容量的cache采用。
区别于组相联映射
组相联映射
- 组相联映射方式是全相联映射和直接映射的混合:将cache 分成u 组,每一组v行,主存存放到哪一个组是固定的,至于存到该组的哪一行是灵活的。
m = u ∗ v 组号 q = j m o d u m = u*v 组号 q = j mod u m=u∗v组号q=jmodu- 组相联映射方式中,每一组的行数v一般取值较小,这种规模的v路比较器容易设计和实现。而块在组中的排放又有一定的灵活性,冲突减少。
查找算法
- 通过查找目录表实现
- cache中设有一个目录表,该表所包含的项数与cache的块数相同,每一项对应cache中的一块,用于指出当前该块中存放的信息是哪一个主存块的。它实际上记录了该主存块的块地址的高位部分,称为标识(tag).每一个主存块能唯一地由其标识来确定。
cache 存储器替换策略
- cache的工作原理要求它尽量保存最新数据
cache 存储器-写操作策略
习题
简单点评:
(1)全相联方式:其实就是组号为1的组相联方式,那么对于主存的地址的分配,就只有标记+块内地址
,同时,这个标记的位置也就是内存中块的数目
(2)直接映射方式:需要直接映射到cache中,所以要留有到底映射到哪一个cache的行,所以地址的组成是’标记+块数+块内地址’,其中,标记加上块数的部分的总的位数是主存中的块的数目,其中的块数应该是cache的行数
(3)组相联映射:在全相联映射的基础上,增加了组号的问题,主存中地址的形式标记+组号+块内地址
,其实,和直接映射相比,也就是将cache的行数换成了组数。
cache 的地址组成刚刚好是 块数加上块内地址
相关文章:
计算机组成原理(四)Cache存储器
文章目录 Cache存储器的基本原理cache命中率、平均访问时间、效率地址映射全相联映射直接映射组相联映射 查找算法cache 存储器替换策略cache 存储器-写操作策略习题 Cache存储器的基本原理 Cache是一种高速缓冲寄存器,是为了解决CPU和主存之间速度不匹配而采用的一…...
怎么做成的文件二维码?扫阅览文件的制作方法
现在用二维码来分享或者查看文件是一种很常用的方式,比如常见的文件内容有简历、资料、作品、压缩包等等。通过将文件生成二维码能够在提升文件传输速度的同时还有利于用户体验的提升,那么如何制作可以长期提供文件预览或者下载的二维码呢? …...
js 前端 Function.prototype.call.call(0[‘toString‘], *, 16)
这个函数将 数组转任意进制 Function.prototype.call.call(0[toString], *, 16)...
李沐:用随机梯度下降来优化人生!
大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 今天我们来聊聊达叔 6 大核心算法之 —— 优化 算法。吴恩达:机器学习的六个核心算法! 梯度下降优化算法是机器…...
Linux 环境.Net程序堆栈查询
# 安装 dotnet tool install --global dotnet-dump# 收集信息, 产生 core_XXX 文件 dotnet-dump collect -p pid# 分析 core_XXX 文件 dotnet dump analyze core_XXX# 列出 大于 XXX 字节的 对象 dumpheap -stat -min XXX# 查看对象具体信息 dumpobj address_XXX# 查看对应引用…...
志愿服务管理系统的设计
管理员账户功能包括:系统首页,个人中心,管理员管理,基础数据管理,广场论坛管理,志愿活动管理,活动报名管理 前台账户功能包括:系统首页,个人中心,志愿活动&a…...
微信小游戏5月畅销榜,新老产品更替显著,亿级爆款频出
小游戏由于微信的平台扶持,被视为可以大力发掘的蓝海,成为国内游戏最大的增长机会之一,随着越来越多的大厂和中小厂转向了小游戏赛道,每个月的小游戏畅销榜单都有不同变化。 5月的小游戏畅销榜显示,小游戏市场正经历显…...
自己想要公开自己的学习方法,但是自己很害怕自己的学习方法是一个错误的,因为对于自己而言,专升本的机会只有一次
分享自己的学习方法可能需要一定的勇气,特别是当你担心可能会受到批评或是不被理解时。以下是一些建议,可以帮助你克服这种恐惧:(kimi编辑器自己对于这些内容的基础批注) 自我肯定:首先,认识到你…...
linux centos consul1.15.2一键安装部署
consul原理、作用、安装相关内容 一、理论部分二、安装下载版本地址三、安装consul服务 一、理论部分 1、consul的原理 Consul的原理及作用可以归纳为以下几点: ①、基于Gossip协议的通信:Consul使用了基于Gossip协议的Serf实现来进行通信。 Gossip协议…...
速盾:dns和cdn区别?
DNS(Domain Name System)和CDN(Content Delivery Network)是互联网中两个不同但相互关联的服务。下面将详细解释DNS和CDN的区别。 功能和作用: DNS:DNS是将域名转换为IP地址的服务,它充当着互联…...
多目标跟踪中用到的求解线性分配问题(Linear Assignment Problem,LAP)C++
多目标跟踪中用到的求解线性分配问题(Linear Assignment Problem,LAP)C flyfish python实现,说的比这里详细 lapjv.h和lapjv.cpp代码在https://github.com/shaoshengsong/DeepSORT C代码调用 #include <iostream> #include <ve…...
Unity | Shader基础知识(第十四集:简单效果练习)
目录 前言 一、效果预览 1.弧形边缘光 二、效果制作 1. 制作弧形边缘光 2.弧形边缘光进阶 3.弧形边缘光调节渐变范围 4.边缘光突变 5.同心圆 三、加入世界坐标做效果 1.绘制结界 2.斑马球 3.效果合并 四、作者的碎碎念 前言 有粉丝建议说,让我继续更新…...
Vue48-ref属性
一、需求:操作DOM元素 1-1、使用原生的id属性 不太好! 1-2、使用 ref属性 原生HTML中,用id属性给元素打标识,vue里面用ref属性。 给哪个元素加了ref属性,vc实例对象就收集哪个元素!!࿰…...
【SpringCloud学习笔记】RabbitMQ(中)
1. 交换机概述 前面《RabbitMQ上篇》我们使用SpringAMQP来演示如何用Java代码操作RabbitMQ,当时采用的是生产者直接将消息发布给队列,但是实际开发中不建议这么做,更加推荐生产者将消息发布到交换机(exchange),然后由exchange路由…...
【C++】类和对象的引入
文章目录 前言一、类的定义二、类的访问控制与封装三、类的作用域四、类的实例化五、类的存储方式及大小计算六、隐藏的this指针 前言 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 C是基于面向对象的&…...
11.5.k8s中pod的调度-cordon,drain,delete
目录 一、概念 二、使用 1.cordon 停止调度 1.1.停止调度 1.2.解除恢复 2.drain 驱逐节点 2.1.驱逐节点 2.2.参数介绍 2.3.解除恢复 3.delete 删除节点 一、概念 cordon节点,drain驱逐节点,delete 节点,在对k8s集群节点执行维护&am…...
Java中线程的创建方式
一、继承Thread类,重写run方法 public class MyThread{public static void main(String[] args) {Thread threadDome new ThreadDome();threadDome.start();} }class ThreadDome extends Thread{Overridepublic void run() {for (int i 0; i < 5; i) {try {Th…...
猫头虎推荐20个值得体验的通用大模型
猫头虎推荐20个值得体验的通用大模型 🚀 大家好,我是猫头虎,一名专注于科技领域的自媒体博主。今天是周一,新的开始,我们来深入探讨一下当前最值得体验的通用大模型。这些AI模型不仅功能强大,而且在各自领…...
Novartis诺华制药社招综合能力性格动机问卷入职测评笔试题库答案及包过助攻
【华东同舟求职】由资深各行业从业者建立的一站式人才服务网络平台,现阶段目标是“提升全市场各行业岗位信息的流动性和透明度”。我们接受众多行业机构的直接委托发布,并尽力通过各种方法搜寻高价值岗位信息。事实上,我们以发现不为人知的优…...
Adam优化算法
Adam优化算法 Adam(Adaptive Moment Estimation)是一种用于训练深度学习模型的优化算法,由Diederik P. Kingma和Jimmy Ba在2014年提出。Adam结合了动量和自适应学习率的方法,具有高效、稳定和适应性强的特点,被广泛应…...
MYSQL 三、mysql基础知识 7(MySQL8其它新特性)
一、mysql8新特性概述 MySQL从5.7版本直接跳跃发布了8.0版本 ,可见这是一个令人兴奋的里程碑版本。MySQL 8版本在功能上 做了显著的改进与增强,开发者对MySQL的源代码进行了重构,最突出的一点是多MySQL Optimizer优化器进行了改进。不仅在速度…...
git error: does not have a commit checked out fatal: adding files failed
git add net error: net/ does not have a commit checked out fatal: adding files failed这个错误是因为尝试将一个尚未被提交的文件夹添加到Git中。解决这个问题的方法是先将文件夹中的文件提交到Git仓库中,然后再将文件夹添加到Git中。 首先,需要进…...
Java Websocket分片发送
一、分片发送和接收(复杂) 如果数据量太大,需要分多次发送, 需要考虑数据划分和重组的问题。 二、具体思路 每次发送和接收用一个布尔值变量指定是否为最后一个分片。 三、具体使用 (一)字符串分片发送: sendText(文本, 布尔值)…...
vivado NODE、PACKAGE_PIN
节点是Xilinx部件上用于路由连接或网络的设备对象。它是一个 WIRE集合,跨越多个瓦片,物理和电气 连接在一起。节点可以连接到单个SITE_, 而是简单地将NETs携带进、携带出或携带穿过站点。节点可以连接到 任何数量的PIP,并且也可以…...
JavaEE、SSM基础框架、JavaWeb、MVC(认识)
目录 一、引言 (0)简要介绍 (1)主要涉及的学习内容 (2)学习的必要性 (3)适用学习的人群(最好有这个部分的知识基础) (4)这个基础…...
【漏洞复现】飞企互联-FE企业运营管理平台 treeXml.jsp SQL注入漏洞
0x01 产品简介 飞企互联-FE企业运营管理平台是一个基于云计算、智能化、大数据、物联网、移动互联网等技术支撑的云工作台。这个平台可以连接人、链接端、联通内外,支持企业B2B、C2B与020等核心需求,为不同行业客户的互联网转型提供支持。其特色在于提供…...
Android基础-运行时权限
一、引言 随着智能手机和移动互联网的普及,Android操作系统作为其中的佼佼者,其安全性问题日益受到关注。为了保障用户数据的安全和隐私,Android系统引入了权限机制来管理和控制应用程序对系统资源和用户数据的访问。特别是在Android 6.0&am…...
postman断言及变量及参数化
1:postman断言 断言:判断接口是否执行成功的过程 针对接口请求完成之后,针对他的响应状态码及响应信息进行判断,代码如下: //判断响应信息状态码是否正确 pm.test("Status code is 200", function () { pm.response.…...
安装和使用TrinityCore NPCBot
安装TrinityCore NPCBot 官网:GitHub - trickerer/Trinity-Bots: NPCBots for TrinityCore and AzerothCore 3.3.5 基本安装方法 Follow TrinityCore Installation Guide (https://TrinityCore.info/) to install the server firstDownload NPCBots.patch and put …...
Hvv--知攻善防应急响应靶机--Linux2
HW–应急响应靶机–Linux2 所有靶机均来自 知攻善防实验室 靶机整理: 夸克网盘:https://pan.quark.cn/s/4b6dffd0c51a#/list/share百度云盘:https://pan.baidu.com/s/1NnrS5asrS1Pw6LUbexewuA?pwdtxmy 官方WP:https://mp.weixin.…...
电影网站怎么做友情链接/网络营销渠道的功能
\XXX表示斜扛后面的1到3位为八进制表示的 字符。 "\018"含2个字符,一个是’\01’,一个 字’8’。注意:018不是八进制,八进制没有字 符8。 "\08"含2个字符,一个是’\0’,一个 字’8’。…...
大兴网站制作/西安专业做网站公司
下面是主要的验证注解及说明: 注解 适用的数据类型 说明 AssertFalse Boolean, boolean 验证注解的元素值是false AssertTrue Boolean, boolean 验证注解的元素值是true DecimalMax(valuex) BigDecimal, BigInteger, String, byte,…...
网站关于我们怎么做/百度大数据
定义函数function 函数名 {函数的功能体......}函数名(){函数的功能体......}如何调用函数函数名函数的使用规则?1)先定义后调用,可以只定义不调用2)定义放上…...
牟长青 做网站推广的四个基本要点/seo全网推广
分析: 首先考虑如何计算整个数组有多少个good区间 容易发现一个区间是good区间当且仅当max-min-len-1,且任意区间max-min-len>-1 我们可以枚举右端点,然后维护前面每个位置到当前右端点的max-min-len值,容易发现我们只需要维护…...
外贸网站建设560/百度seo免费推广教程
题目描写叙述 给你一个有N个数的集合S和一个数X,推断是否存在S的一个子集,子集里的数的最小公倍数正好是X。 输入 第一行是数据组数T。 接下来有多组数据,每组数据包括两行: 第一行有2个数N和X,1<N<100000 &…...
网站已备案添加新域名/吉林seo推广
操作系统:windows 2008 R2 SP1 vCenter版本:5.0 数据库版本:SQL 2008 R2 企业版 在安装完数据库,继续安装VC时,会提示80端口被占用,这是由于SQL 2008的"SQL Server Reporting Services"服务造成的…...