【考研408计算机组成原理】存储系统之Cache考点

                                                                            苏泽 

“弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家

另外,利用了工作之余的一点点时间,整理了一套考研408的知识图谱,

我根据这一套知识图谱打造了这样一个408知识图谱问答系统

里面的每一个回答都是根据考研408的考点回复的

目前暂时只接入了微信,如果大家对这个问答系统感兴趣的话可以在我的主页里找到我的微信号

找我拉进测试群免费体验哦


这一篇来复习计算机组成原理当中 存储系统章节之Cache的知识点

目录

这一篇来复习计算机组成原理当中 存储系统章节之Cache的知识点

Cache和高速缓冲器

存储器层次化结构

映射方式:

考点考题解答示例

替换算法:

写策略:

1. 全写法(Write-Through Cache)

2. 写回法(Write-Back Cache)

3. 写分配法(Write-Allocate Cache)

4. 非写分配法(No-Write-Allocate Cache)

写策略的选择

要注意的细节

Cache写策略的考点

考题示例


Cache和高速缓冲器

Cache通常指的是高速缓冲存储器(High-Speed Buffer Storage),它是一种特殊的存储结构,用于提高数据访问速度。Cache的目的是解决CPU(中央处理单元)与主存(主存储器)之间的速度不匹配问题。

存储器层次化结构

以下是Cache的一些关键特性和功能:

  • 引入目的:Cache是为了缓解CPU和主存之间的速度差异而设计的。由于CPU的处理速度通常远远超过主存的访问速度,Cache作为两者之间的缓冲,存储了频繁访问的数据,从而加快了数据的访问速度

映射方式

  • 直接映射:主存数据块只能装入到Cache中唯一的位置。
  • 全相联映射:可以把主存数据块装入Cache中的任何位置。
  • 组相联映射:将Cache分为若干组,组间直接映射,组内全相联映射。

考点考题解答示例

  • 问题:如果一个系统有2GB的地址空间,Cache大小为256KB,使用直接映射和组相联映射,需要多少位来表示Tag?

    • 解答
      • 直接映射

        首先确定地址总长度,2GB地址空间需要 log⁡2(2×109)=31log2​(2×109)=31 位。Cache大小为256KB,即 218218,所以索引部分需要 log⁡2(218)=18log2​(218)=18 位。因此,Tag的长度为 31−18=1331−18=13 位。

      • 组相联映射:假设Cache分为16组(仅为示例,实际组数由Cache大小和路数决定),则组号需要 log⁡2(16)=4log2​(16)=4 位。剩余的位用于Tag,即 31−4=2731−4=27 位。
  • 问题:如果一个Cache使用组相联映射,每组有8个Cache行,且Cache大小为1MB,需要多少位来表示Tag和组号?

    • 解答
      • Cache大小为1MB,即 220220。每组8行,所以每组大小为128KB,即 2^17。索引部分需要 log⁡2(217)=17log2​(217)=17 位来确定组内Cache行的位置。组号需要 log⁡2(8)=3log2​(8)=3 位。因此,Tag的长度为 20−17=3 位,组号为3位。

替换算法

当Cache满时,需要决定哪些数据被替换。常见的替换算法包括先进先出(FIFO)、近期最少使用(LRU)、最不经常使用和随机算法。

当Cache满了,需要引入新的数据时,就需要决定哪些旧数据需要被替换。以下是几种常用的Cache替换算法:

  • 先进先出(FIFO - First In, First Out)算法

    • 这种方法按照数据被加载到Cache中的顺序来决定哪些数据被替换。最先进入Cache的数据块将最先被替换。
  • 近期最少使用(LRU - Least Recently Used)算法

    • LRU算法会替换那些在最近一段时间内最少被访问的数据块。这种方法假设如果数据最近被访问过,那么它在未来可能还会被访问。
  • 最不经常使用(LFU - Least Frequently Used)算法

    • LFU算法替换那些在总的访问历史中被访问次数最少的数据块。这种方法关注于整体访问频率,而不是近期访问模式。

写策略

几种常见的Cache写策略:

1. 全写法(Write-Through Cache)

  • 在这种策略下,每次对Cache中的写操作都会同时更新主存中的相应数据块。这意味着Cache和主存的数据始终保持一致。
  • 优点是实现简单,数据一致性容易维护。
  • 缺点是每次写操作都需要访问主存,这可能会降低写操作的性能

2. 写回法(Write-Back Cache)

  • 写回法只在Cache中进行数据的写操作,并不立即同步到主存。只有当Cache中的块被替换时,才会将数据写回主存。
  • 这种方式可以减少对主存的写操作,提高写操作的性能。
  • 优点是写操作速度快,因为不需要每次都访问主存。
  • 缺点是实现相对复杂,需要额外的标记(如脏位,用于标记数据块是否被修改过)来追踪数据块的状态。

3. 写分配法(Write-Allocate Cache)

  • 在写分配法中,当发生Cache未命中时,会将主存中的数据块加载到Cache中,然后执行写操作。
  • 这种方法适用于写操作不频繁的场景,可以减少不必要的数据加载。

4. 非写分配法(No-Write-Allocate Cache)

  • 非写分配法在发生Cache未命中时,不将数据块加载到Cache中,而是直接在主存中进行写操作。
  • 这种方式适用于写操作非常频繁的场景,可以避免不必要的数据加载和替换。

写策略的选择

选择哪种写策略取决于具体的应用场景和性能需求。例如,如果写操作非常频繁,可能会选择写回法以提高性能;如果数据一致性非常关键,可能会选择全写法。

要注意的细节

  • 脏位(Dirty Bit):在写回法中,每个Cache行通常都有一个脏位,用于标记该行数据是否被修改过。这样,在替换数据块时,只有被修改过的块才需要写回主存。
  • 同步操作:在全写法中,每次写操作都需要同步到主存,这可能会引入额外的延迟。

Cache写策略的考点

Cache写策略是计算机组成原理中的一个重要考点,主要涉及以下几个方面:

  1. 写策略的概念:了解和区分不同类型的Cache写策略,包括全写法和写回法。

  2. 全写法(Write-Through Cache)

    • 写操作在Cache和主存中同步更新。
    • 适用于非写分配策略。
  3. 写回法(Write-Back Cache)

    • 写操作仅在Cache中进行,当Cache块被替换时再写回主存。
    • 适用于写分配策略。
  4. 未命中时的处理

    • 写分配法:在发生写未命中时,先将主存数据调入Cache,再进行写操作。
    • 非写分配法:直接在主存中进行写操作,跳过Cache。
  5. 写策略的选择:理解不同写策略的优缺点和适用场景。

  6. 写策略与存储器性能:分析写策略对存储器性能的影响。

  7. Cache一致性:在多级Cache系统中,理解如何维护Cache一致性。

考题示例

  1. 选择题:选择正确的Cache写策略,并解释其工作原理。

    在Cache的写回法中,当发生写操作时,数据是先写入到Cache还是主存?
    A. 主存
    B. Cache写回法(Write-Back)也被称为写回缓存或写分配缓存。
    在这种策略中,当发生写操作时,数据首先被写入到Cache中,而不是直接写入到主存。
    只有在Cache行被替换时,脏行(即那些已经被修改的行)才会被写回主存。
    这种方式可以减少对主存的写操作次数,因为只有在必要时才进行写回,从而提高性能。
  2. 简答题:简述全写法和写回法的区别,并说明各自的优缺点。

    描述全写法和写回法在处理写操作时的不同之处,并分析它们各自可能的性能特点。全写法(Write-Through):数据在写入Cache的同时,也会立即写入主存。
    优点:保证了Cache和主存的数据一致性。
    缺点:每次写操作都会涉及到主存,可能会降低写操作的性能。
    写回法(Write-Back):数据首先写入Cache,只在必要时(如替换时)写回主存。
    优点:减少了对主存的写操作,提高了写操作的性能。
    缺点:需要额外的机制来跟踪哪些数据块是脏的,增加了复杂性。
  3. 计算题:给定一个场景,计算在不同的写策略下,Cache的写操作性能。

    假设有一个系统使用写回法的Cache,每次写操作需要10个时钟周期来写入Cache,
    而写回主存需要50个时钟周期。
    如果系统在1秒内发生了1000次写操作,请计算Cache写操作的总延迟时间。1秒内发生1000次写操作。
    每次写操作的延迟时间 = 写入Cache的时间 + 写回主存的时间(如果发生)。
    由于写回法只在Cache行替换时写回主存,假设1000次写操作中有10%的行被替换,即100次写回主存。
    Cache写操作总延迟 = (1000 * 10) + (100 * 50) = 10000 + 5000 = 15000个时钟周期。
  4. 分析题:分析在多级Cache系统中,如何通过写策略来维护数据一致性。

    在一个具有L1和L2 Cache的多级Cache系统中,
    当L1 Cache发生写命中时,如何确保L2 Cache中相应的数据块保持一致性?
    请分析可能的策略及其影响。
    

        写回(Write-Back):L1 Cache的写操作只更新L1 Cache,L2 Cache中的数据被视为过时的。当L2 Cache需要该数据块时,会从L1 Cache中获取最新的数据。

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

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

相关文章

【C++题解】1324 - 扩建鱼塘问题

问题:1324 - 扩建鱼塘问题 类型:分支问题 题目描述: 有一个尺寸为 mn 的矩形鱼塘,请问如果要把该鱼塘扩建为正方形,那么它的面积至少增加了多少平方米? 输入: 两个整数 m 和 n 。 输出&…

LeetCode 54.螺旋矩阵

1.题目要求如图所示: 各位看官们,大家好呀,今天小编用的方法比较麻烦,就是按顺时针遍历,但也挺好理解的,因为就是迭代法循环,所以就不给大家讲步骤了,直接就发代码了: /*** Note: The returne…

深入浅出Netty:高性能网络应用框架的原理与实践

深入浅出Netty:高性能网络应用框架的原理与实践 1. Netty简介 Netty是一个基于Java的异步事件驱动的网络应用框架,广泛用于构建高性能、高可扩展性的网络服务器和客户端。它提供对多种协议(如TCP、UDP、SSL等)的支持,…

【计算机网络篇】数据链路层(11)在数据链路层扩展以太网

文章目录 🍔使用网桥在数据链路层扩展以太网🥚网桥的主要结构和基本工作原理🎈网桥的主要结构🔎网桥转发帧的例子🔎网桥丢弃帧的例子🔎网桥转发广播帧的例子 🥚透明网桥🔎透明网桥的…

网络基础篇:网络模型

目录 一、初识网络 二、网络的分层 OSI七层模型 TCP/IP四层模型 网络与系统的关系 网络传输基本流程 数据包封装和分用 三、IP地址与MAC地址 认识IP地址 认识MAC地址 IP与MAC的关系 一、初识网络 同一台设备上的进程间通信有很多种方式 : 管道&#xff08…

需求虽小但是问题很多,浅谈JavaScript导出excel文件

最近我在进行一些前端小开发,遇到了一个小需求:我想要将数据导出到 Excel 文件,并希望能够封装成一个函数来实现。这个函数需要接收一个二维数组作为参数,数组的第一行是表头。在导出的过程中,要能够确保避免出现中文乱…

二叉树(数据结构篇)

数据结构之二叉树 二叉树 概念: 二叉树(binary tree)是一颗每个节点都不能多于两个子节点的树,左边的子树称为左子树,右边的子树称为右子树 性质: 二叉树实际上是图,二叉树相对于树更常用。 平衡二叉树的深度要比…

正版 navicat 下载

1. 打开浏览器访问 navicat 官网 Navicat | 下载 Navicat Premium 14 天免费 Windows、macOS 和 Linux 的试用版 windows 用户选择这三项其中一个就可以 2. 下载 点击之后等个几秒钟就会开始下载了 3. 双击打开 下载好的 .exe 程序 进入安装程序 (不影响之前已经安装过的) 可…

客户ITSS案例 — 江苏中友讯华信息科技有限公司

● 2019年12月17日至12月20日,中国电子工业标准化技术协会信息技术服务分会(以下称ITSS分会)组织召开了运行维护服务能力成熟度符合性评估专家评审会。在江苏新世纪信息科技有限公司的咨询辅导下,江苏中友讯华信息科技有限公司顺利…

猫头虎分享已解决Bug || **Mismatched Types**: `mismatched types`

🐯 猫头虎分享已解决Bug || Mismatched Types: mismatched types 🐯 关于猫头虎 大家好,我是猫头虎,别名猫头虎博主,擅长的技术领域包括云原生、前端、后端、运维和AI。我的博客主要分享技术教程、bug解决思路、开发…

ECharts 雷达图案例001-自定义节点动画

ECharts 雷达图案例001-自定义节点动画 引言 在数据可视化的领域中,ECharts 提供了一种强大的工具来展示多维数据。本文将介绍如何使用 ECharts 创建一个自定义节点样式的雷达图,让数据展示更加生动和个性化。 效果预览 通过自定义节点样式&#xff…

AI早班车2024.6.19

全球AI新闻速递 1.广东 / 山东警方破获两起“AI 换脸伪造不雅照”案。 2.腾讯混元、港科大、清华推出表情包框架:Follow Your Emoji。 3.抖音联合博纳影业推出首部 AIGC 科幻短剧集《三星堆:未来启示录》。 4.亚马逊:宣布向全球创企提供 …

【Java】BigDecimal类型——BigDecimal 为什么可以保证精度不丢失

目录 简介类介绍案例分析总结BigDecimal类型的使用场景MySQL中存储BigDecimal类型数据补充:BigDecimal类型使用时的注意事项BigDecimal类型的其他使用 简介 BigDecimal是Java中的一个类,用于处理大数运算。它提供了精确的数值计算,可以处理任…

真空玻璃可见光透射比检测 玻璃制品检测 玻璃器皿检测

建筑玻璃检测 防火玻璃、钢化玻璃、夹层玻璃、均质钢化玻璃、平板玻璃、中空玻璃、真空玻璃、镀膜玻璃夹丝玻璃、光栅玻璃、压花玻璃、建筑用U形玻璃、镶嵌玻璃、玻璃幕墙等 工业玻璃检测 钢化安全玻璃、电加温玻璃、玻璃、半钢化玻璃、视镜玻璃、汽车安全玻璃、汽车后窗电热…

Walrus:去中心化存储和DA协议,可以基于Sui构建L2和大型存储

Walrus是为区块链应用和自主代理提供的创新去中心化存储网络。Walrus存储系统今天以开发者预览版的形式发布,面向Sui开发者征求反馈意见,并预计很快会向其他Web3社区广泛推广。 通过采用纠删编码创新技术,Walrus能够快速且稳健地将非结构化数…

数据库选型实践:如何避开分库分表痛点 | OceanBase用户实践

随着企业业务的不断发展,数据量往往呈现出快速的增长趋势。使用MySQL的用户面对这种增长,普遍选择采用分库分表技术作为应对方案。然而,这一方案常在后期会遇到很多痛点。 分库分表的痛点 痛点 1:难以保证数据一致性。由于分库分…

CCNA 0基础入门

OSI & TCP/IP OSI参考模型 TCP/IP协议 应用层 ------↓表示层 ------>应用层会话层 ------↑传输层 ------>传输层网络层 ------>网络互联层链路层 ------>网络接口层物理层 ------>↑ 物理层 传输的信号以及网线以及接线 主要作用是产生并检测电…

高压电阻器支持牙科 X 射线成像的准确性

为了捕获患者牙齿和颌骨的足够图像,牙医依靠锥形束计算机断层扫描 (CBCT) 系统的先进 3D 成像。CBCT系统的输出对于准确诊断口腔健康问题和随后的治疗计划至关重要。为了确保这些图像的可靠性,CBCT系统制造商利用了Exxelia Ohmcra…

数据库 |试卷八试卷九试卷十

1.基数是指元组的个数 2.游标机制 3.触发器自动调用 4.count(*)统计所有行,不忽略空值null,但不但要全局扫描,也要对表的每个字段进行扫描; 5.eacherNO INT NOT NULL UNIQUE,为什么不能断定TeacherNO是主码&#xff…

Samtec制造理念系列一 | 差异变量的概念

【摘要/前言】 制造高端电子产品是非常复杂精密的过程。制作用于演示或原型的一次性样品可能具有挑战性,但真正的挑战在于如何以盈利的方式持续生产。 这就是Samtec风险投资研发工程总监Aaron Tucker在一次关于生产高密度微小型连接器的挑战的演讲中所强调的观点。…