计算机组成原理之机器:存储器之高速缓冲存储器

计算机组成原理之机器:存储器之高速缓冲存储器

笔记来源:哈尔滨工业大学计算机组成原理(哈工大刘宏伟)

Chapter3:存储器之高速缓冲存储器

3.1 概述

3.1.1 为什么用cache?

角度一:I/O设备向主存请求的级别高于CPU访存,这就出现了CPU等待I/O设备访存的现象,致使CPU空等一段时间,降低CPU工作效率。为避免CPU与I/O设备争抢访存,可在CPU与主存之间加一级缓存,这样主存可将CPU要取的信息提前送至缓存,一旦主存在与I/O设备交换时,CPU可直接从缓存中读取所需信息,不必空等而影响效率。—引自《计算机组成原理》唐朔飞

角度二:主存速度提高始终跟不上CPU的发展。希望由高速缓存cache来解决主存与CPU速度不匹配的问题—引自《计算机组成原理》唐朔飞

局部性原理是指CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。

时间局部性:程序中的某条指令一旦执行,不久后该指令可能再次执行
空间局部性:一旦程序访问了某个存储单元,不久后其附近的存储单元也将被访问

3.1.2 cache的工作原理

主存和缓存的编址
为了与cache映射,将主存与缓存都分成若干块,每块内又包含若干个字,并使它们的块大小相同(即块内的字数相同)


命中与未命中

任何时刻都有一些主存块处在缓存块中。
CPU欲读取主存某字时,有两种可能:
命中:一种是所需要的字已在缓存中,即可直接访问Cache(CPU与Cache之间通常一次传送一个字);
未命中:另一种是所需的字不在Cache内,此时需将该字所在的主存整个字块一次调入Cache中(Cache与
主存之间是字块传送)。如果主存块已调入缓存块,则称该主存块与缓存块建立了对应关系。
—引自《计算机组成原理》唐朔飞


cache的命中率
我们都希望CPU对主存的访问尽可能都转化为对缓存的访问,也就是说我们希望命中率越高越好

cache-主存系统的效率

3.1.3 cache的基本结构

cache和主存之间是以块为单位进行数据传送的,cache和主存的块内地址一致,再看块号,根据映射规则,检查是否命中(CPU所访问的数据在cache中是否存在),如果命中,则形成cache的块号。如果未命中,则检查当前cache是否仍可装入块,若可装入,则将要访问的块装入cache,若没有空间装入,则将某一块与要访问的块进行替换,也就是将要访问的块从内存中调入,把cache中暂时不访问的块换下

主存与cache映射就是主存中的块应该放在cache的哪个位置
主存与cache变换就是主存的地址转换为cache的地址,在cache中找到相对应的主存块
主存与cache之间有直接通路,它完成了两者之间的信息交换

3.1.4 cache的读写操作


写操作可能会造成主存和cache数据的不一致,例如只对主存写而没有对cache写

3.1.5 cache的改进

(1)增加cache级数
CPU内部装cache、CPU外部装cache
(2)统一缓存和分立缓存
统一缓存:把指令和数据统一放在一个cache中
分立缓存:将指令和数据分别放在不同cache中

3.2 cache-主存的地址映射

3.2.1 直接映射(固定的映射关系)

主存当中任意一个给定的块只能装载到某一个指定的cache的块当中



每个区的第0块放到cache中字块0中,每个区的第1块放到cache中字块1中以此类推
主存地址分为两部分:低c位指cache的字块地址、高t位指主存字块标记,它被记录在建立了对应关系的缓存的“标记”位中。
当缓存接到CPU送来的主存地址后,只需根据中间c位字段找到cache字块(如c位字段为00……01找到cache字块1),然后根据字块的“标记”是否与主存地址的高t位相符来判断。

每个缓存块可以和若干个主存块对应
每个主存块只能和一个缓存块对应

3.2.2 全相联映射(灵活性大的映射关系)

主存的任何一个字块可放到任何一个cache字块中

3.2.3 组相联映射(上述两种映射的折中)

主存中每个区的第0块可以放到cache中第0组两个字块的任意一个

3.3 替换算法

当cache中已满且CPU要访问的数据不在其中,这时就需要将cache中某个块与主存中CPU要访问的块进行替换

先进先出(FIFO)算法
最先被放入cache中的块被替换
近期最少使用(LRU)算法
在cache中选择最⻓时间没有被CPU访问的块进行置
换,也就是说,该算法假设已经很久没有使用的块很有可能在未来较长的⼀段时间内仍然不会被使⽤

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

el-form-item内的el-select如何自适应宽度

最近在使用element-ui做后台管理的时候,有个需求是在弹窗组件里面,添加一个el-select下拉框选项,但是给el-select设置的宽度无法自适应,原因很简单,我们不需要设置固定宽度,设置百分比就行了,让…

你适合学Python吗?学了Python可以做什么工作?

每天叫醒你的不是闹钟,而是梦想 目前在很多行业中都在越来越多的应用Python,这也是很多行业学习Python的原因,Python主要的应用领域有哪些呢?今天我们就来详细看一下。 谁适合学Python? 我们首先来看一看谁在学Pytho…

【AI+应用】模仿爆款视频二次创作短视频操作步骤

本来不想水这篇的, 剪辑软件估计很多人用的比我还6。 今天自己遇到1个需求,我看到一篇公众号文章的视频觉得有意思,但视频有点长,我没带耳机看视频的习惯,就想着能不能下载下来, 提取视频的音频转为文字&am…

腾讯:《智能科技 跨界相变——2024数字科技前沿应用趋势》

1月23日,腾讯发布了题为《智能科技 跨界相变——2024数字科技前沿应用趋势》的报告,报告从计算重塑、智能升维、沉浸交互、未来连接四个方面,对100多项未来技术和重点方向给出了趋势性判断。并表示我们正驶向一个由连接衍生交互、由计算催生智…

JavaWeb笔记 --- 二、Maven

二、Maven Maven概述 所有的IDE创建的Maven项目都可以使用 Maven简介 Maven模型 Maven常用命令 Maven生命周期 Maven坐标 依赖管理 dpendencies:依赖 依赖范围

2016年认证杯SPSSPRO杯数学建模C题(第一阶段)如何有效的抑制校园霸凌事件的发生解题全过程文档及程序

2016年认证杯SPSSPRO杯数学建模 C题 如何有效的抑制校园霸凌事件的发生 原题再现: 近年来,我国发生的多起校园霸凌事件在媒体的报道下引发了许多国人的关注。霸凌事件对学生身体和精神上的影响是极为严重而长远的,因此对于这些情况我们应该…

C#实现归并排序算法

C#实现归并排序算法 以下是 C# 中的归并排序算法实现示例: using System;class MergeSortAlgorithm {// 合并两个子数组static void Merge(int[] arr, int left, int mid, int right){// 计算左子数组和右子数组的长度int n1 mid - left 1;int n2 right - mid;/…

LSF live reconfiguration

背景 LSF的配置管理相对比较原始,通过配置文件设置集群中的各种参数。管理员在修改LSF参数时需要很多的手工操作:先通过编辑器修改配置文件,然后还要运行一个或两个命令才能激活配置,而且配置也不是立即生效,还有几秒…

【性能测试】Jmeter性能压测-阶梯式/波浪式场景总结(详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、阶梯式场景&am…

从huggingface下载模型像本地加载但是UnicodeDecodeError

我自己是在Linux下出现了这个问题 原文:https://github.com/huggingface/transformers/issues/13674 The path for the AutoModel should be to a directory pointing to a pytorch_model.bin and to a config.json. Since you’re pointing to the .bin file dire…

【二】【算法分析与设计】编程练习

数字三角形 链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 KiKi学习了循环,BoBo…

代码随想录 回溯算法-排序

目录 46.全排序 47.全排列|| 332.重新安排行程 46.全排序 46. 全排列 中等 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,…

Java零基础 - 数组的定义和声明

哈喽,各位小伙伴们,你们好呀,我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。 我是一名后…

Git 远程操作

1.分布式版本控制系统 我们目前所说的所有内容(工作区,暂存区,版本库等等),都是在本地!也就是在你的笔记本或者计算机上。而我们的 Git 其实是分布式版本控制系统!什么意思呢 可以简单理解为&am…

Windows下PostgreSQL安装教程

一、下载 https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

提醒一下!今年考研的人不要太老实了!!

今年准备计算机考研的同学,别太老实了!别人说什么你就信什么 如果你的工作能力不足以支撑找到一个满意的工作,那我建议再沉淀两年! 很多同学其实有点眼高手低,在计算机专业,低于1w的工作看不上&#xff0…

论文阅读:Scalable Diffusion Models with Transformers

Scalable Diffusion Models with Transformers 论文链接 介绍 传统的扩散模型基于一个U-Net骨架,这篇文章提出了一种新的扩散模型结构,将U-Net替换为一个transformer,并将这种结构称为Diffusion Transformers (DiTs)。他们还发现&#xff…

【网络】:HTTP服务器

HTTP服务器 一.预备知识二.HTTP的请求和响应三.写一个简单的HTTP服务器四.返回响应五.HTTP方法和状态码 一.预备知识 1.域名 https://www.baidu.com,这是一个域名。在技术角度上,访问一个服务器其实只需要知道它的ip和域名就行了,而域名主要…

电力物联网系统设计

电力物联网系统设计 简介 在新能源行业从业多年,参与和负责过大大小小的的项目,发电侧、电网侧、用户侧系统都有过实际的项目经验,这些项目或多或少都有物联网采集方面的需求,本篇文章将会对电力行业物联网经验做一个总结分享。 …

LeetCode 刷题 [C++] 第3题.无重复字符的最长子串

题目描述 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 题目分析 可以使用滑动窗口加哈希表来实现: 使用start和end两个变脸来表示滑动窗口的头部位置和尾部位置,两者开始均为0;借助哈希表来记录已经遍…