首页 > 其他分享 >存储器层次结构

存储器层次结构

时间:2024-05-28 20:02:21浏览次数:6  
标签:缓存 存储器 更新 层次结构 命中 高速缓存

文章目录

存储器结构层次

RAM 随机访问存储器

  • SRAM
    高速缓存存储器
  • DRAM
    主存、图形系统的帧缓冲区

存储器层次结构中的缓存

在这里插入图片描述

图:存储器层次结构中基本的缓存原理

高速缓存存储器

在一个每个存储器地址有 m 位的计算机系统中,形成 M = x ^ m 个不同的地址。

此时高速缓存被组织成一个有 S = 2 ^ s 个高速缓存组(cache set)的数组,每个组包含 E 个高速缓存行(cache line)。

每个行是由一个 B = 2 ^ b 字节的数据块(block)组成的,一个有效位(valid bit)指明这个行是否包含有意义的信息,还有 t = m - (b + s) 个标记位(tag bit)(是当前块的内存地址的位的一个子集),唯一的标识存储在这个高速缓存行中的块。

在这里插入图片描述

图:高速缓存(S,E,B,m)的通用组织

参数 S 和 B 将 m 个地址位分为了三个字段:

  • s 个组索引位
  • t 个标记位
  • b 个块偏移位

为什么用中间位来作为高速缓存的索引?以中间位作为索引,相邻的块总是映射到不同的高速缓存行。

在这里插入图片描述

图:直接映射高速缓存(E = 1)

当程序访问大小是 2 的幂的数组时,直接映射高速缓存中通常会发生冲突不命中。

在这里插入图片描述

图:组相联高速缓存(1 < E < C / B)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图:组相联高速缓存(E = C / B)

  • 写命中( 假设要写一个已经缓存了的字 w 在高速缓存更新了它的 w 的副本之后,如何更新 w 在层次结构中紧接着第一层中的副本呢?)
    • 直写
      立即将 w 的高速缓存块写回到紧接着的第一层中,缺点是每次写都会引起总线流量
    • 写回
      尽可能的推迟更新,只有当替换算法要驱逐这个更新过的块时,才把它写到紧接着的低一层中。显著地减少了总线流量,但是增加了复杂性(需要维护块是否被修改过
  • 写不命中
    • 写分配
      加载相应的低一层得块到高速缓存中,然后更新这个高速缓存块。写分配试图利用写的空间局部性,缺点是每次不命中都会导致一个块从低一层传送到高速缓存
    • 非写分配
      避开高速缓存,直接把这个字写到低一层中

只写<==>非写分配

写回<==>写分配

实现FIFO、LRU、LRU-K、LFU

使用分块来提高时间局部性(提高内循环的时间局部性)

标签:缓存,存储器,更新,层次结构,命中,高速缓存
From: https://blog.csdn.net/liu_shibo/article/details/139276487

相关文章

  • 玩转STM32-直接存储器DMA(详细-慢工出细活)
    文章目录一、DMA介绍1.1DMA简介1.2DMA结构二、DMA相关寄存器(了解)三、DMA的工作过程(掌握)四、DMA应用实例4.1DMA常用库函数4.2实例程序一、DMA介绍1.1DMA简介DMA用来提供外设与外设之间、外设与存储器之间、存储器与存储器之间的高速数据传输,无需CPU干预,数据可......
  • LTO磁带备份存储器每一代制造年份
    LTO(LinearTape-Open)磁带机器是一种用于数据存储的磁带技术。以下是不同LTO代的发布时间:1.LTO-1:2000年2.LTO-2:2003年3.LTO-3:2005年4.LTO-4:2007年5.LTO-5:2010年6.LTO-6:2012年7.LTO-7:2015年8.LTO-8:2017年9.LTO-9:2020年请注意,随着技术的发展,LTO技术的新一代产品......
  • EasyFlash - 一款轻巧的嵌入式 Flash 存储器库
    1、BabyOS-一套管理功能模块和外设驱动的MCU项目开发框架BabyOS是由网友notrynohigh开发维护的适用于MCU项目的一套管理功能模块和外设驱动的框架。项目主页: https://github.com/notrynohigh/BabyOS对项目而言,使用BabyOS能缩短开发周期。项目开发时选择适用的功......
  • 计算机的硬件系统存储器
    如果说程序操作数据是计算机系统的主题,而程序指令本身也是数据,那么作为存放数据的存储体系是计算机系统不可或缺的重要组成。微机系统的存储体系,按照访问速度划分为寄存器、高速缓冲存储器、存储器(主存储器或内存)、外存储器(外存或辅存)。在CPU诞生之初,为了提高运算速度,也为了方便......
  • 【网络通信】初探网络层次结构(OSI七层网络模型)
    ​        随着信息技术的飞速发展,网络通信已经成为现代社会不可或缺的一部分。网络通信的实现离不开网络协议栈的支持,而网络协议栈则是由多个层次组成的。这些层次各自承担着不同的任务,共同构成了网络通信的基石。本文将对网络通信中的各类层进行详细介绍,包括它们的定......
  • CSCI 2122任缓存和内存层次结构 解析
    CSCI2122任务5截止日期:2024年4月9日星期二晚上11:59,通过git提交目标本课业的目的是练习用C进行编码,并强化中讨论的概念类的指针、缓存和内存层次结构。在这项任务中,您将实现一个使用有限内存的缓存模拟器。准备1.完成工作分配0,或确保已安装完成工作分配所需的工具。2.克隆......
  • vivado向赛灵思器件添加配置存储器器件
    使用VivadoIDE右键单击SVF链中的赛灵思器件时,可以选择创建配置存储器器件,并将配置存储器器件与该器件关联。这样会打开“添加配置存储器器件(AddConfigurationMemoryDevice)”对话框,如下所示。选择相应的存储器器件,然后单击“OK”。......
  • FIFO存储器选型参数,结构原理,工艺与注意问题总结
      ......
  • 存储器
    存储器分为寄存器Cache(高速缓冲存储器)主存储器辅存储器从下到上,速度越来越快,容量越来越小,成本越来越高 存储器的读取方式存取方式读/写装置数据块标志访问特性代表顺序存取共享读/写装置无特定线性顺序磁带直接存取......
  • 存储器与CPU的连接
    存储器与CPU的连接:1.存储容量的扩展:包括位扩展,字扩展等1.位扩展:是指增加存储字长。例如2片1K*4位的芯片可组成1K*8位的存储器。2.字扩展:是指增加存储器字的数量,例如用2片1K*8位的存储芯片可组成一个2K*8位的存储器。即存储字增加了一倍。3.字,位扩展:用8片1K*4位的存储芯片......