当前位置: 首页 > news >正文

【计算机组成原理】 Cache存储器

一、Cache概述1.1 什么是CacheCache高速缓冲存储器是位于CPU和主存之间的一种高速小容量存储器用于解决CPU与主存之间速度不匹配的问题。由于CPU速度远快于主存如果CPU每次都要等待主存响应会造成大量时间浪费。Cache通过存储最近使用过的数据和指令使CPU能够以接近自身速度访问存储器。1.2 程序访问的局部性原理Cache的设计基于程序访问的局部性原理包括时间局部性最近被访问的数据很可能在不久的将来再次被访问。空间局部性与最近被访问数据相邻的数据很可能被访问。例如循环体内的变量会被反复访问时间局部性数组元素通常按顺序访问空间局部性。二、Cache的基本结构2.1 Cache的组成Cache主要由以下部分组成存储体存放从主存调入的数据块地址映射机构将主存地址转换为Cache地址替换机构Cache满时决定替换哪个块写操作机构处理写命中和写不命中的策略2.2 基本概念块Block/LineCache和主存之间数据交换的基本单位。主存和Cache都被划分为大小相等的块。标记Tag用于标识Cache中存放的是主存中哪个块的数据。有效位Valid Bit表示该Cache行是否有效。三、地址映射方式重点地址映射是指主存块如何放置到Cache行中主要有三种方式3.1 直接映射Direct Mapped原理每个主存块只能映射到Cache中唯一确定的位置。映射公式Cache行号 主存块号 mod Cache行数地址结构标记TagCache行号Index块内地址Offset优点实现简单访问速度快无需替换算法。缺点不够灵活容易发生冲突不同块映射到同一行。3.2 全相联映射Fully Associative原理每个主存块可以映射到Cache中任意位置。地址结构标记Tag块内地址Offset优点最灵活冲突最少Cache利用率高。缺点硬件复杂需要比较所有行的标记成本高。3.3 组相联映射Set Associative原理Cache分成若干组每组包含若干行。主存块先映射到组直接映射再在组内任意放置全相联。映射公式组号 主存块号 mod 组数地址结构标记Tag组号Index块内地址OffsetK路组相联每组有K个Cache行称为K路组相联。如2路、4路、8路组相联。优点兼顾灵活性和实现复杂度是实际应用最广泛的方式。3.4 三种映射方式对比特性直接映射全相联映射组相联映射灵活性低高中冲突率高低中硬件复杂度低高中访问速度快慢较快四、替换算法重点当Cache已满且需要调入新块时需要选择一个块替换出去。4.1 随机算法Random随机选择一个块进行替换。实现最简单但可能替换掉即将使用的块。4.2 FIFO先进先出替换最早进入Cache的块。实现简单但没有考虑访问频率可能替换常用块。4.3 LRU最近最少使用★替换最久未被访问的块。符合局部性原理命中率较高是实际应用最广泛的算法。实现方式为每行设置计数器命中时清零未命中时计数器1替换计数器最大的行。4.4 LFU最不经常使用替换访问次数最少的块。需要记录访问次数实现较复杂。五、写策略重点写策略解决Cache与主存数据一致性问题分为写命中和写不命中两种情况。5.1 写命中Write Hit写直达Write Through同时写Cache和主存。优点是数据一致性好缺点是写速度慢。写回Write Back只写Cache替换时才写回主存。需要设置修改位Dirty Bit。优点是写速度快缺点是数据一致性差。5.2 写不命中Write Miss写分配Write Allocate先将主存块调入Cache再写入。通常与写回策略配合使用。非写分配No Write Allocate直接写入主存不调入Cache。通常与写直达策略配合使用。5.3 常见组合写直达 非写分配写回 写分配数据一致性好实现简单适合单处理器写效率高适合多处理器六、Cache性能分析重点6.1 命中率与缺失率命中率Hit RateCPU访问Cache命中的次数占总访问次数的比例。缺失率Miss Rate 1 - 命中率6.2 平均访问时间公式平均访问时间命中时间缺失率×缺失代价其中命中时间访问Cache所需时间通常1-3个时钟周期缺失代价从主存调入块所需时间通常50-100个时钟周期6.3 加速比加速比无Cache时的访问时间/有Cache时的平均访问时间6.4 影响Cache性能的因素Cache容量容量越大命中率越高但成本也越高访问速度可能降低。块大小块太小不能充分利用空间局部性块太大则块数减少且调入时间长。相联度相联度越高冲突越少但硬件越复杂访问时间越长。替换算法好的替换算法能提高命中率。
http://www.gsyq.cn/news/1393023.html

相关文章:

  • Claude Code工作区管理技术方案:实现多项目开发效率提升50%的智能切换
  • 3分钟实现Windows 11极致优化:Win11Debloat完整实用指南
  • 2026新榜单:长治CMA甲醛检测治理公司及洁净室公共卫生检测报告排行榜(2026版) - 五金回收
  • Burp Suite新手避坑指南:抓包、改包、重放三大断层实战解析
  • 初次使用Taotoken Token Plan套餐在月度账单上体现的成本节省
  • 轴承故障诊断中数据泄漏的陷阱与可靠评估方法
  • 2026年AI市场将爆发这5大颠覆性赛道:Gartner未公开的拐点模型首次披露
  • 安吉拉烘焙:全周期扶持的全国连锁烘焙加盟品牌 - 奔跑123
  • 机器学习与可解释AI如何揭示董事会性别多样性与企业排放的非线性关系
  • 残差注意力与高效上采样:提升遥感水体污染图像分类鲁棒性的工程实践
  • 老旧Mac性能焕新:OpenCore Legacy Patcher完整解决方案深度解析
  • std::condition_variable 深度拆解:从 Linux futex 到 AI 数据管道的七大致命陷阱
  • JMeter Ramp-Up 原理与实战:并发节奏控制的底层逻辑
  • 【ChatGPT语音对话功能深度拆解】:20年AI架构师亲测的5大隐藏能力与3个致命兼容陷阱
  • 全球仅17家通过LCAI认证的低代码AI平台,国内唯一入选者技术白皮书核心节选首次流出
  • Unity+Mirror语音集成避坑指南:VoiceChat资源体系与网络耦合深度解析
  • 突破网盘下载困境:LinkSwift直链助手让你的文件下载速度飞起来
  • TDD-YOLO:一种用于番茄病害精准检测的新型模型
  • 【企业级ChatGPT接入合规排查】:OAuth2.0重定向异常、CORS跨域拦截、JWT过期时间偏差——生产环境真实故障复盘
  • 结构保持模型降阶:结合神经自编码器与哈密顿力学的非线性系统控制
  • 大语言模型如何自动化构建可解释机器学习模型?基于SHAP的评估实践
  • GitHub Codespaces 深度实践:从环境一致性到云原生开发范式
  • QQ音乐加密音频终极解码指南:5步实现全平台自由播放 [特殊字符]
  • 网盘直链下载助手:8大主流网盘下载限速的终结者
  • 19 OneNET平台MQTT属性远程下发测试(MQTTX客户端实操)
  • 浙江建德寄件省钱指南|多款实用寄件渠道实测,发全国性价比拉满 - 时讯资讯
  • Unity Sprite Editor核心原理与2D性能优化指南
  • 深度学习结合fMRI优化脑深部电刺激治疗帕金森病参数
  • 语音版ChatGPT已悄然升级,90%用户不知的实时语义中断续写功能,如何开启企业级低延迟双工模式?
  • Wine 5.0配置避坑大全:从解决中文乱码到安装Flash插件的那些‘骚操作’