首页 > 其他分享 >06-高速缓冲存储器

06-高速缓冲存储器

时间:2023-05-16 20:00:13浏览次数:58  
标签:缓存 06 映射 Cache 主存 cache 相联 高速缓冲存储器

06-高速缓冲存储器

1.概述

1.1为什么使用cache

cpu发展速度很快,存储器发展速度很慢,CPU读取的指令,想要获取或者写入的数据必须等待存储器完成读写,cpu再快,存储器慢,cpu也只能进行空等,为了避免CPU空等的现象,在CPU和内存(DRAM)之间加入缓存,缓存采用SRAM
缓存容量小,速度高
主存 容量大 速度低

程序访问的局部性原理
时间局部性:当前正在使用的程序和数据在不久的将来还不使用到
空间局部性:当前正在使用的程序或者数据相邻的数据在不久的将来也会使用到

根据程序访问的局部性原理,将正在使用的程序和数据及其相邻的程序和数据放进缓存中

1.2 Cache的工作原理

主存和缓存的编址
主存和缓存都由块内地址和块号构成,块内地址就是偏移地址
主存和缓存的块内地址是相同的 主存中的块数是远远大于缓存块的块数

命中与未命中
缓存共有C块
主存共有M块 M>>C

命中 主存块调入缓存 主存块与缓存块建立了对应关系
用 标记 记录与某缓存块建立了对应关系
未命中 主存块未调入缓存 主存块与缓存块未建立对应关系
用 标记 记录与某缓存块建立了对应关系

Cache的命中率
使用命中率评估命中的指标 CPU欲访问的信息在Cache中的比率
命中率与Cache的容量与块长有关
一般每块可取4-8个字
块长取一个存取周期内从主存调出的信息长度

Cache-主存系统的效率
效率e和命中率有关
e=访问Cache的时间/平均访问时间100%
设Cache命中率为h, 访问Cache的时间为tc,访问主存的时间为tm
e=tc/(h
tc+(1-h)tm)100%

1.3 Cache的基本结构

图见
https://www.bilibili.com/video/BV1WW411Q7PF?p=42&vd_source=3c88fb7dae36f53e6a15081fb7cf9ff8[10分16秒]

1.4 Cache的读写操作

读操作: CPU发出访问地址的要求
如果命中缓存 访问Cache取出信息送入CPU
如果没有命中缓存 访问主存取出信息送入CPU,同时判断Cache是否满了如果没满,将新的主存块调入Cache中,如果满了,执行替换算法腾出空位,将新的主存块调入Cache中
结束

写操作: 需要解决cache和主存的一致性问题
写直达(Write-through)
写操作时数据既写入Cache又写入主存
写操作时间就是访问主存的时间,Cache块退出时,不需要对主存执行写操作,更新策略比较容易实现
问题:可能存在频繁对统一内存数据块写的情况,如计算累加时的情况,会不断对同一内存单元进行修改

写回法(Write-back)
写操作时数据写入Cache不写入主存
当Cache数据被替换时才回写主存
写操作时间就是访问cache的时间,cache块退出时,被替换的块需写回主存,增加了cache的复杂性

1.5 cache的改进

  1. 增加cache的级数
    片载(片内)Cache
    片外Cache
  2. 统一缓存和分立缓存
    指令Cache 数据Cache
    与指令执行的控制方式有关 是否流水
    Pentium 8K指令Cache 8K数据Cache
    PowerPC620 32K指令Cache 32K数据Cache

2.Cache-主存的地址映射

2.1 直接映射

直接映射
将主存按照cache的大小进行划分,划分为多个区
每个区内的第0个字块放在Cache中的第0个字块,每个区内的第i个字块放在Cache中的第i个字块
标记为放置区的编号
特点:
每个缓存块i可以和若干个主存块对应
每个主存块j只能和一个缓存块对应
缺点:
调入冲突会很多

2.2 全相联映射

全相联映射

特点
主存中的任一块可以映射到缓存中的任一块

2.3 组相联映射

全相联映射

组相联映射是直接相联映射和组相联映射的折中
某一主存块j按模Q映射到缓存的第i组中的任一块上
电路结构比较简单

在多层次的cache中,靠近cpu的层次使用直接相联或者是路数比较少的组相联,中间的层次采用组相联,距离cpu最短的层次采用全相联的方式,距离越远,对速度的强调就越低,对cache利用率就要求越高

3.替换算法

3.1 先进先出(FIFO)算法

最早放进去的先移出去

3.2 近期最少使用(LRU)算法

在最近的一段时间最少使用的cache,以后也很少使用,或者很久才会使用到

总结

直接映射 某一主存块只能固定映射到某一缓存块 不灵活,cache利用率低,速度快
全相联 某一主存块能映射到任意缓存块 成本高,cache利用率比较高,速度慢
组相联 某一主存块只能映射到某一缓存组中的任一 速度比较快,cache的利用率比较高

标签:缓存,06,映射,Cache,主存,cache,相联,高速缓冲存储器
From: https://www.cnblogs.com/Oh-mydream/p/17406664.html

相关文章

  • ASEMI代理ADI亚德诺ADM706SARZ-REEL原厂芯片
    编辑-ZADM706SARZ-REEL参数描述:型号:ADM706SARZ-REELVCC工作电压范围:1.0-5.5V电源电流:100μA重置阈值滞后:20mV复位脉冲宽度:200msPFI输入阈值:1.25VPFI输入电流:+0.01nAVCC:-0.3Vto+6V所有其他输入:-0.3VtoVCC+0.3V数字输出电流:20mA工作温度范围:-40℃to+85℃储存......
  • DIY伺服驱动器方案,某成熟量产型号,基于TMS320F28 DIY伺服驱动器方案,某成熟量产型号,基于
    DIY伺服驱动器方案,某成熟量产型号,基于TMS320F28DIY伺服驱动器方案,某成熟量产型号,基于TMS320F28069设计开发。原理图和PCB源格式(AD打开)-控制板/驱动板/电源板/滤波板基于TMS320F28069的控制源代码产品资料,代码注释少,需要有一定基础,建议小白不要拿ID:27260669815636452......
  • 伺服驱动器方案,某成熟量产型号,基于TMS320F28069 设计开发。 ★原理图
    伺服驱动器方案,某成熟量产型号,基于TMS320F28069设计开发。★原理图和PCB源格式(AD打开)-控制板/驱动板/电源板/滤波板★基于TMS320F28069的控制源代码产品资料,代码注释少,需要有一定基础,建议小白不要购买。-控制板/驱动板/电源板/滤波板★基于TMS320F28069的控制源代码产品资料,代码......
  • 06-面试必会-MQ篇
    RabbitMQ01-你们项目中哪里用到了RabbitMQ?我们项目中很多地方都使用了RabbitMQ,RabbitMQ是我们项目中服务通信的主要方式之一,我们项目中服务通信主要有二种方式实现:通过Feign实现服务调用通过MQ实现服务通信基本上除了查询请求之外,大部分的服务调用都采......
  • Netty实战(06)-ChannelPipeline 接口
    1概述把ChannelPipeline看成拦截流经Channel的入、出站事件的ChannelHandler的实例链,就易看出这些ChannelHandler之间的交互如何组成一个应用程序数据和事件处理逻辑的核心。每个新建的Channel都会被分配一个新的ChannelPipeline。这项关联是永久性的;Channel既不能附加另外......
  • 【题解】Luogu[P1879] [USACO06NOV]Corn Fields G
    Link→状压dp典题,看数据范围就能多半猜到是状压。\(M\)行\(N\)列很不舒服,本篇题解规定为\(N\)行\(M\)列。因为说没有哪两块草地相连,我们不妨一行一行考虑,一行中每格只可能是\(0\)或\(1\),所以一行的总不同状态数是\(2^M\)。我们用二进制表示每一行的状态,对于每一行,暴......
  • 华硕 PRIME H610M-A D4 i5-12490F 1060电脑 Hackintosh 黑苹果efi引导文件
    原文来源于黑果魏叔官网,转载需注明出处。(下载请直接百度黑果魏叔)硬件型号驱动情况主板华硕PRIMEH610M-AD4(LPCController/eSPIControllerH610芯片组)处理器12thGenIntelCorei5-12490F六核已驱动内存 16GB(酷兽DDR43200MHz8GBx2)已驱动硬盘三星SSD860EVO250G......
  • DTS106TC数据库
    XJTLUEntrepreneurCollege(Taicang)CoverSheetModulecodeandTitle DTS106TC:IntroductiontoDatabaseSchoolTitle SchoolofAIandAdvancedComputingAssignmentTitle AssessmentTask001(CW):IndividualCourseworkSubmissionDeadline 17May2023at5:......
  • 昆仑通态与欧姆龙温控器 台达变频器 联合通讯控制器件:昆仑通态MCGS TPC7062,欧姆龙E5C
    昆仑通态与欧姆龙温控器台达变频器联合通讯控制器件:昆仑通态MCGSTPC7062,欧姆龙E5CC型号温控器,台达VFD-M变频器。控制说明:采用modbus通讯方式,设定温控器温度值,报警值,实际温度,监控输出状态。变频器设定频率,实际频率,控制启停,正反转,点动,检测电流电压温度等。说明:只是程序,非实物硬......
  • 代码随想录算法训练营第三天|203.移除链表元素 、707.设计链表 、206.反转链表
    一.链表基础1.最后一个节点的指针域指向null(空指针的意思)。2.链表在内存中不是连续分布的。3.链表的长度可以是不固定的,并且可以动态增删,适合数据量不固定,频繁增删,较少查询的场景。1#链表节点的定义2classListNode:3def__init__(self,val,next=None):4......