(计算机组成原理)Cache和主存之间的映射方式

2023-05-16

地址映射变换机构是将CPU送来的主存地址转换为Cache地址。由于贮存和Cache的块大小相同,块内地址都是相对于快的起始地址的偏移量(即低位地址相同),因此地址变换主要是主存块号与Cache块号之间的转换。


1.直接映射

 上图中Cache为8行,主存为256行。Cache被分为8块,因此在主存中每8块可以看成一个轮回,主存可以分为32个轮回。

优点:实现简单。只需要利用主存地址的某些位直接判断,就可以确定所需字块是否在Cache中。

缺点:1)不够灵活,由于每个主存块只能固定地对应某个Cache块,即使Cache内还空着许多位置也不能占用,所以存储空间得不到充分利用。

           2)冲突概率高(抖动);例如3号Cache要频繁的切换对应11,19,27号主存。

识别:

α. CPU访存指令指出一个内存地址,该内存地址包含tag,块号,字等字段。

β. 根据内存中的块号c找到Cache中对应的块号i(Cache中的块号=主存中的块号 mod Cache中的块数)

       *若相符合且有效位为‘1’,表示命中,然后用内存地址的低b位在Cache中读取所需的字即可。

       *若不符则需要从主存中读取所需要的块来替换Cache中旧的块,同时将信息送往CPU,并且修改标记位


2.全相联映射

全相联映射允许主存中每一个字块映射到Cache中的任何一块的位置上,如下图

优点:1) 由于全相联映射允许主存的每一字快映射到Cache中的任何一个字快,因此Cache的命中率可以提高

           2)通俗地说,全相联映射就是“有位置可以坐”,见笑了块的冲突率,进而提高了Cache的利用率。

缺点:1)tag的位数增加了,访问Cache时主存字块标记需要和Cache的全部“标记”进行比较。

识别:

α.  CPU访存指令指出一个内存地址,该内存地址包含块号,字等字段。

 β. Cache所有行的标记位和内存地址的块号一同送入比较器中比较(由于主存中有256=2^{8}块,则需要8位来作为标记位)


3.组相联映射

组相联映射是对直接映射和全相联映射进行折中的一种方式。

*注意事项:

1)当组相联只有一组时,此时组相联映射就等同于全相联映射:每组只有一块时就等同于直接映射。

2) 在组相联映射中,主存地址高位到低位划分成三部分:标记tag||组号||块内字地址

3)块内字地址=log_{2}(块大小)    组号=log_{2}(Cache组数)     标记tag=主存地址的其余位

识别:

α. CPU访存指令指出一个内存地址,该内存地址包含tag,组号,字等字段

β. 通过组号找到Cache中对应的组,然后将Cache中组的每一块tag和内存地址的tag比较是否符合


牛刀小试

1.容量为64块的Cache采用组相联映射方式,字块大小为128个字,每4块为一组如果主存为4K块,按字编制,那么主存地址位和主存标记位为多少?

主存地址位=字块大小×块数=128×4K=2^{19}

主存地址位(2^{19})=主存标记位×Cache组位(64/4)×字块位数(128)

主存标记位=8位

2.Cache用组相联映射,一块大小为128B,Cache共64块,4块分一组,主存有4096块,主存地址共需多少位?

主存地址位=字块大小×块数=128*4096=2^{19}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(计算机组成原理)Cache和主存之间的映射方式 的相关文章

  • 计算机系统的多级层次结构

  • 在极高负荷情况下oracle redolog的配置建议

    在极高负荷情况下oracle redolog的配置建议 在oracle数据库的现有体系结构下 redolog承担了很大的压力 这是因为所有提交给数据库的交易都需要在commite确认前通过LGWR进程将相关信息写入redolog 而一个or
  • 5.5_数据的存储和排列

    文章目录 一 大小端模式 二 边界对齐 在这个小结中 我们要探讨的是 数据的存储和排列 一 大小端模式 首先来看一个之前提到过的问题 叫做大小端模式 我们在内存里经常会存储某一些多字节的数据 比如 c 语言里的 Int 型变量 在很多时候占
  • kzalloc 函数详解

    用kzalloc申请内存的时候 效果等同于先是用 kmalloc 申请空间 然后用 memset 来初始化 所有申请的元素都被初始化为 0 kzalloc allocate memory The memory is set to zero
  • [计算机组成原理] 以低字节地址为字地址

    以低字节地址为字地址 就是小端存储模式 数据低位 或者说低字节 存储在内存低地址 以高字节地址为字地址 就是大端存储模式 数据低位 或者说高字节 存储在内存高地址 现在看一个例题 这个题目有一个需要明确的地方 什么是第一 第二 第三字节 对
  • 计算机组成原理--基于Logisim的8位可控加减法器实验的应用(超详细/设计/实验/作业/练习)

    目录 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Logisim的8位可控加减法器实验 一 前言 二 环境与设备 三 内容 四 结果与分析 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Lo
  • readis windows servrer 搭建与Java客户端的连接

    1 首先下载redis redis 2 0 2 zip 32 bit 解压 从下面地址下 http code google com p servicestack wiki RedisWindowsDownload 看到下面有redis 2
  • 计算机组成原理——万字详解

    引言 作为还在学习的学生和不断进步的同事 学习计算机组成原理具有以下几个重要的好处 它可以帮助你深入理解计算机系统的工作原理 包括处理器 存储器 输入输出设备等组成部分之间的交互关系 这种深入理解可以提高你对计算机系统的整体把握能力 让你能
  • Spring Cache缓存技术的介绍

    缓存用于提升系统的性能 特别适用于一些对资源需求比较高的操作 本文介绍如何基于spring boot cache技术 使用caffeine作为具体的缓存实现 对操作的结果进行缓存 demo场景 本demo将创建一个web应用 提供两个Res
  • 同步通讯和异步通讯(简单理解)

    同步通信和异步通信 简单理解 注 本篇文章只是告诉你什么是同步通信 什么是异步通信 即使没有计算机基础的同学也适合阅读 同时也能帮助计算机专业同学更好理解这个知识点 但是如果想深入学习 还需自己翻阅资料 一 电脑完成一个读命令需要的步骤 主
  • IRQL 和 分页内存

    IRQL是Interrupt ReQuest Level 中断请求级别 一个由windows虚拟出来的概念 划分在windows下中断的优先级 这里中断包括了硬中断和软中断 硬中断是由硬件产生 而软中断则是完全虚拟出来的 处理器在一个IRQ
  • ecshop缓存清理-限制或禁用ECShop缓存

    ECSHOP的缓存存放在templates caches 文章夹下 时间长了这个文件夹就会非常庞大 拖慢网站速度 还有很多情况我们不需要他的缓存 本文介绍禁用ECSHOP缓存的方法 ECSHOP的缓存有两部分 一部分是SMARTY的页面缓存
  • 计算机组成原理--基于Logisim的4位并行加法器实验的应用(超详细/设计/实验/作业/练习)

    目录 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Logisim的4位并行加法器实验 一 前言 二 环境与设备 三 内容 四 结果与分析 课程名 计算机组成原理 内容 作用 设计 实验 作业 练习 学习 基于Log
  • 当绘图遇上Caché之元数据代理

    很久以前到沈阳实习的时候还一个个问度娘C 画图 画了电路图绘制软件的毕业设计 雪花屏保等等 搞LIS软件后绘制各种仪器图 对C 画笔 画字符串 画线 画圆等等耳熟能详 然而却碰到一个问题 我们的仪器大部分是盒子用数据库M连接的 如果盒子仪器
  • 计算机组成原理——单周期CPU

    单周期CPU 项目代码 实验原理 MIPS指令 rom coe文件 代码 顶层模块SingleCycleCPU display外围模块 PC instructionMemory Alu模块 DataMemory ControlUnit 旧的
  • 【计组笔记-5】详细测试c++中类型转换的溢出截断处理

    计组笔记 5 详细测试c 中类型转换的溢出截断处理 1 将小数赋值给float 2 将整数赋值给float 3 将整数赋值给int 3 1 算术溢出 3 2 非算术溢出 等于32位 3 3 非算术溢出 大于32位 4 将小数赋值给int 5
  • oracle alter system命令使用

    我們可以利用alter system語句在數據庫咝羞 程中修改初始化參數的值 如果instance在啟動時使用的是文本初始化參數文件 那樣我們在利用alter system語句修改的初始化參數僅在當前的instance中有效 并且所做的修改
  • 【计算机组成原理】总线宽度和总线带宽的区别,总线带宽的计算

    总线宽度 总线的宽度 指总线在单位时间内可以传输的数据总数 即平常说的32位 64位 总线宽度 总线位宽 数据线的根数 总线带宽 总线带宽 指总线在单位时间内可以传输的数据总数 等于总线的宽度与工作频率的乘积 通常单位 MB s MBps
  • 计算机组成原理期末复习【超实用】

    计算机组成原理 第二版 唐朔飞 编著 课本有些地方还不错 可以下载电子版看看 b站2小时讲解链接 https www bilibili com video BV1x4411q7Fz 初次录讲解视频 各种差错和画音不同步请各位谅解 我录到后面
  • 第三章 总线

    一 系统总线概念 系统总线是计算机内部各个组件之间传输数据和控制信息的通信线路 连接中央处理器 内存 输入输出设备 扩展插槽等各个组件 是计算机系统中最重要的硬件组成部分之一 具有数据传输 控制信号传输和总线协议等功能 系统总线的性能对计算

随机推荐