热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

计算机高速缓冲存储器工作原理,高速缓冲存储器部件结构及原理解析

高速缓冲存储器部件结构及原理解析高速缓存CACHE用途设置在CPU和主存储器之间,完成高速与CPU交换信息,尽量避免CPU不必要地多次直接访问慢速的主存储器,从而提高计算机系统的运

高速缓冲存储器部件结构及原理解析

高速缓存 CACHE用途设置在 CPU 和 主存储器之间,完成高速与 CPU交换信息,尽量避免 CPU不必要地多次直接访问慢速的主存储器,从而提高计算机系统的运行效率。

高速缓存 CACHE实现原理把CPU最近最可能用到的少量信息(数据或指令)从主存复制到CACHE中,当CPU下次再用到这些信息时,它就不必访问慢速的主存,而直接从快速的CACHE中得到,从而提高了速度。

评价CACHE性能的关键指标要有足够高的命中率,当CPU需用主存中的数据时,多数情况下可以直接从CACHE中得到,尽量少读主存储器。称二者之比为命中率。

一、CACHE的基本运行原理

1、 CACHE的存储单元的组成

CACHE的存储单元是由三部分组成的

1位有效位:“0”表示该单元尚未使用,“1”表示数据有效

《计算机高速缓冲存储器工作原理,高速缓冲存储器部件结构及原理解析》

(1) CACHE单元不一定以字为单位与主存实现相互对应,因为存储一个完整的主存地址占用位数太多。

(2) CACHE与主存交换信息时,不一定每次以一个主存字为单位进行交换,常用的是以字块的形式(cache line size)进行数据传送。

二、CACHE的3种映像方式

地址映像:把主存地址的数据复制到cache时,还要把该主存的地址经过某种函数关系处理后写进CACHE的标志字段,这一过程称为CACHE的地址映像。

地址变换:在程序执行时,要把主存地址变换为访问CACHE的地址,这一过程称为CACHE的地址变换。

这二者的处理方案是密切相关的。

1、全相联映像方式

《计算机高速缓冲存储器工作原理,高速缓冲存储器部件结构及原理解析》

全相联映像方式的优缺点

地址映像:写入CACHE时,要将主存的全部地址写入CACHE的标志字段

地址变换:用读主存的整个地址去与CACHE中的每一个单元的标志字段进行比较。

优点:使用灵活、方便

缺点:比较地址字段必须与整个CACHE中每一个单元的标志字段都进行比较,所以线路复杂,成本太高,难以实现,只是适用于容量小的CACHE。

2、直接映射方式

《计算机高速缓冲存储器工作原理,高速缓冲存储器部件结构及原理解析》

直接映射方式

地址映像:写入CACHE时,仅将主存的区段号写入CACHE的标志字段

地址变换:要将读主存地址中的区段内偏移地址去访问CACHE的一个单元,只需用主存地址的区段号与标志字段内容进行比较。

3、多路(两路)组相联方式

《计算机高速缓冲存储器工作原理,高速缓冲存储器部件结构及原理解析》

多路(两路)组相联方式实现原理

把 CACHE存储器组织为同等容量的多体结构,例如2个存储体。主存仍然划分成容量等于每个CACHE存储体的多个区段。

主存地址格式如下:

区段号

区段内的偏移量

多路(两路)组相联方式

地址映像:写入CACHE时,仅将主存的区段号写入CACHE的标志字段

地址变换:要将读主存地址中的区段内偏移地址去访问每一个CACHE体的一个单元,只需用主存地址的区段号与标志字段内容进行比较。

三、 CACHE存储器实用中的几个问题

CACHE存储器的重要技术指标是它的命中率,影响 CACHE 命中率的因素有:

1.CACHE 的容量与命中率的关系

虽然容量大一些好,但CACHE 容量达到一定大小之后,再增加其容量对命中率的提高并不明显。

2、 Cache Line Size ( CACHE每次与内存交换信息的单位量)与命中率的关系:

每次交换信息的单位量适中,不是以一个字为单位,而是以几个字(称为CACHE行容量,通常为4~32个字节)在主存与CACHE之间实现信息传送。

3、多级的CACHE结构与命中率的关系:

《计算机高速缓冲存储器工作原理,高速缓冲存储器部件结构及原理解析》

4.CACHE的不同映像方式与命中率的关系:

全相联映像方式不适用

直接映像方式命中率低

多路组相联方式性能/价格比更好

直接映像方式中CACHE容量为8K字,被分成1024组,每组8个字,同时,主存也分成8个字的组,1024组构成一页。主存的0组只能映射到CACHE的0组,主存的1组只能映射到CACHE的1组,依次类推。地址结构如下:

5、写CACHE的策略和对系统的影响

(1)一个外设向主存写入了一个数据,该主存单元原先的副本在CACHE中,出现不一致,此时最简单的办法就是把CACHE中相应单元的有效位清除掉,当CPU再次需这一主存单元时,只能从主存重新取得而不会使用CACHE中的旧值。

(2)改写主存储器的策略

若CPU改写了 CACHE 一单元内容后且尚未改变主存相应单元内容,则出现数据不一致性。两种解决办法:

第1.接下来直接改写主存单元内容。简便易行, 但可能带来系统运行效率不高的问题,该后未被使用。

第2.拖后改写主存单元内容,一直拖到有另外的设备要读该内容过时的主存单元时。首先停止这一读操作,接下来改写主存内容,之后再起动已停下来的读操作,否则不必改写。

矛盾是如何检查是否应该改写,通过监视地址总线完成,记下无效单元地址用于比较。 控制复杂些,但可以提供更高系统的运行效率。


推荐阅读
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 使用Numpy实现无外部库依赖的双线性插值图像缩放
    本文介绍如何仅使用Numpy库,通过双线性插值方法实现图像的高效缩放,避免了对OpenCV等图像处理库的依赖。文中详细解释了算法原理,并提供了完整的代码示例。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 深入理解Java中的volatile、内存屏障与CPU指令
    本文详细探讨了Java中volatile关键字的作用机制,以及其与内存屏障和CPU指令之间的关系。通过具体示例和专业解析,帮助读者更好地理解多线程编程中的同步问题。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 配置Windows操作系统以确保DAW(数字音频工作站)硬件和软件的高效运行可能是一个复杂且令人沮丧的过程。本文提供了一系列专业建议,帮助你优化Windows系统,确保录音和音频处理的流畅性。 ... [详细]
  • 本文详细介绍了在企业级项目中如何优化 Webpack 配置,特别是在 React 移动端项目中的最佳实践。涵盖资源压缩、代码分割、构建范围缩小、缓存机制以及性能优化等多个方面。 ... [详细]
  • 深入理解一致性哈希算法及其应用
    本文详细介绍了分布式系统中的一致性哈希算法,探讨其原理、优势及应用场景,帮助读者全面掌握这一关键技术。 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
  • FinOps 与 Serverless 的结合:破解云成本难题
    本文探讨了如何通过 FinOps 实践优化 Serverless 应用的成本管理,提出了首个 Serverless 函数总成本估计模型,并分享了多种有效的成本优化策略。 ... [详细]
  • 2018年3月31日,CSDN、火星财经联合中关村区块链产业联盟等机构举办的2018区块链技术及应用峰会(BTA)核心分会场圆满举行。多位业内顶尖专家深入探讨了区块链的核心技术原理及其在实际业务中的应用。 ... [详细]
  • MySQL PMM:MyISAM 和 Aria 存储引擎的性能优化
    本文探讨了 MyISAM 和 Aria 存储引擎在 MySQL 中的关键性能指标,包括密钥缓冲区效率、页面缓存读写性能以及事务日志同步策略。通过优化这些参数,可以显著提升数据库的整体性能。 ... [详细]
  • 本文详细介绍了SDCMS中的全局标签和循环标签。全局标签是在任何模板页面中均可调用的标签,而循环标签用于数据查询和展示。文章解释了这些标签的功能、使用方法及参数配置。 ... [详细]
author-avatar
涩味122_508
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有