`

Cache的工作原理

 
阅读更多
http://blog.csdn.net/zhuliting/article/details/6210997

缓存(cache)大小是CPU的重要指标之一,其结构与大小对CPU速度的影响非常大。简单地讲,缓存就是用来存储一些常用或即将用到的数据或指令,当需要这些数据或指令的时候直接从缓存中读取,这样比到内存甚至硬盘中读取要快得多,能够大幅度提升cpu的处理速度。

CPU与cache之间的数据交换是以"字"为单位,而cache与主存之间的数据交换是以"块"为单位,一个块由若干字组成,是定长的,以体现"保存下级存储器刚才被存取过的数据及其邻近小范围的数据"这一概念。

CPU进行存储器读操作时,根据主存地址可分成命中和未命中两种情况。对于前者,从Cache中可直接读到所需的数据;对于后者,需访问主存,并将访问单元所在的整个块从内存中全部调入Cache,接着要修改Cache标记。若Cache已满,需按一定的替换算法,替换掉一个旧块。

一级缓存中还分数据缓存(data cache,d-cache)和指令缓存(instruction cache,i-cache)。二者分别用来存放数据和执行这些数据的指令,而且两者可以同时被cpu访问,减少了争用cache所造成的冲突,提高了处理器效能。

采用分立Cache技术,也就是将指令和数据分开,分别存放在指令Cache 和数据Cache中。这种分立Cache技术有利于CPU采用流水线方式执行指令。在流水线中,往往会发生在同一个操作周期同时需要预取一条指令和执行另一条指令的取数据操作的情况。若采用指令和数据统一的Cache,则这种情况会造成取指令和取数据的访存冲突,冲突的结果就是使得流水线产生断流的情况发生,从而严重影响流水线的效率。采用分立Cache技术,因为取指令和取数据分别在不同的Cache中同时进行,因而不会产生冲突,有利于流水线的实现

二级缓存(L2 CACHE)出现是为了协调一级缓存与内存之间的速度。最初缓存只有一级,后来处理器速度又提升了,一级缓存不够用了,于是就添加了二级缓存。二级缓存是比一级缓存速度更慢,容量更大的内存,主要就是做一级缓存和内存之间数据临时交换的地方用。“L1级Cache-L2级Cache-主存”这种层次从工作原理上讲与前述的Cache工作原理是完全相同的,即CPU首先访L1级Cache,若不命中,再访问L2级Cache和主存。




Cache/主存系统的读操作原理:
当CPU试图读取主存一个字时,发出此字内存地址同时到达cache和主存,此时cache控制逻辑依据地址的标记部分进行判断此字当前是否在cache中。若是(命中),此字立即递交给CPU,若否(未命中),则要用主存读取周期把这个字从主存读出送到CPU,与此同时把含有这个字的整个数据块从主存读出送到cache中。由于程序的存储器访问具有局部性,当为满足一次访问需求而取来一个数据块时,下面的多次访问很可能是读取此块中的其它字。

<!--[endif]-->

图1 Cache/主存系统的读操作原理





图2 cache的读操作流程示意





更多参考:
http://baike.baidu.com/view/27650.htm
另推荐两篇关于Cache的不错的文章
http://www.eefocus.com/book/09-06/741961276059787.html
分享到:
评论

相关推荐

    cache工作原理

    Cache 工作原理 Cache 工作原理是计算机科学中的一种重要概念,它描述了 Cache 在计算机系统中的工作机制。 程序访问的局部性 Cache 工作原理基于程序执行的两个特征:程序访问的局部性和数据存取的局部性。程序...

    Cache 工作原理 & Cache 一致性

    "Cache 工作原理 & Cache 一致性" Cache 工作原理是计算机科学中一个非常重要的概念,它对计算机系统的性能产生了极大的影响。在这篇文章中,我们将详细地介绍 Cache 工作原理和 Cache 一致性。 首先,让我们从 ...

    计算机中的cache工作原理解析

    计算机系统中的Cache工作原理是计算机体系结构中的一个重要概念,它对于提高处理器的性能至关重要。Cache是一种高速缓存存储器,它位于中央处理器(CPU)和主内存之间,用于临时存储频繁访问的数据和指令,以减少...

    cache仿真程序.cpp

    根据直接映射的cache工作原理,针对一个8行的cache工作过程进行仿真,每行(块)为一个字,1字4字节,需要读取的内存地址在trace.txt文件中列出。请编写程序,实现8行的cache工作过程进行仿真,可显示每个内存地址,...

    cache的工作原理

    ### Cache的工作原理与基本结构详解 #### Cache的概念与工作原理 **Cache**,又被称为高速缓冲存储器,是一种为了提高计算机系统性能而设计的小容量、高速度存储器。它的主要目的是通过缓存近期频繁访问的数据来...

    2017计算机组成原理自主实验第四章Cache的实现报告

    本次实验旨在通过设计并实现Cache的基本功能,加深学生对Cache工作原理的理解。 ### 实验要求 实验要求基于2114存储芯片的设计,在此基础上实现Cache的基本功能。具体来说,需要按照教科书第112页的图4.50来实现...

    Cache 工作原理,Cache 一致性,你想知道的都在这里.zip

    计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习...

    cache的结构和工作原理

    Cache 结构和工作原理 Cache 是一种高速缓冲存储器,位于主存和 CPU 之间,用于存放近期需要运行的指令和数据,以提高 CPU 对存储器的访问速度。Cache 的结构主要由三大部分组成:Cache 存储体、地址转换部件和替换...

    存储体系实验-利用高速缓存(Cache)的局部性优化矩阵乘法

    本实验“存储体系实验-利用高速缓存(Cache)的局部性优化矩阵乘法”旨在深入理解Cache的工作原理及其对程序性能的影响,特别是通过优化矩阵乘法来体现这一点。 矩阵乘法是计算密集型任务,广泛应用于图像处理、科学...

    实验3 直接相联Cache设计1

    计算机组成原理实验指导书中的“实验3 直接相联Cache设计”着重讲解...这个实验旨在帮助学生掌握直接相联Cache的设计与实现,通过实际操作加深对Cache工作原理的理解,增强硬件描述语言(如Verilog或VHDL)的应用能力。

    Linux驱动中的DMA和Cache一致性问题

    在Cache工作原理、CPU流水线特性、Linux内存管理以及内核中DMA接口函数的知识点上,开发者需要有足够的理解才能正确处理DMA与Cache之间的一致性问题。 DMA所使用的地址问题,涉及到了处理器的MMU(内存管理单元)和...

    网站Cache全分析.doc

    本文将详细探讨为何需要Cache、当前流行的Cache模型以及前端Cache的工作原理,并通过实例解析Cache在实际应用中的表现。 1. 为什么需要Cache? Cache的主要目标是加速和减压。在互联网环境中,尤其是在中国,由于...

    Cache性能分析1.5.docx

    - **实践背景**:本实践基于张晨曦的计算机体系结构教材第四节相关内容展开,旨在通过实验加深学生对于Cache工作原理的理解,并掌握其关键性能指标。 - **实践目的**: - 深化理解Cache的基本概念、组织结构及工作...

    Cache相关资料手册

    本手册将深入探讨Cache的工作原理、设计策略以及在嵌入式系统中的应用,尤其是STM32处理器中的Cache使用。 一、Cache基本原理 1. **缓存层次结构**:现代计算机系统通常有多级Cache,如L1、L2、L3等,各级Cache的...

    头歌平台 计算机组成原理  存储系统设计.zip

    2. **Cache 工作原理**:Cache 通过缓存最近频繁使用的数据来提高性能。它基于局部性原理,即程序执行时倾向于在一段时间内重复访问同一块内存区域。理解替换策略(如LRU、LFU)和写策略(如写直达、写回)是学习...

    计算机体系结构Cache模拟python.zip

    本项目通过Python实现Cache模拟,旨在帮助学生深入理解Cache的工作原理及其优化策略。 在Python实现Cache模拟时,主要涉及以下几个核心概念: 1. **Cache的基本结构**:Cache通常由多个存储块(或称为行)组成,每...

    实验4 直接映射Cache设计-实验报告1

    实验报告的主题是“直接映射Cache设计”,这是计算机组成原理中的一个重要部分,主要涉及Cache的工作原理和实现。直接映射Cache是一种简单的缓存组织方式,其中主存中的每一行都有一个固定的位置在Cache中。 Cache...

    老二牛车教育NET程序员面试题之Cache试题

    在面试中,候选人需要展示对Cache工作原理、生命周期管理、缓存操作以及性能优化等方面的理解,以证明其在.NET开发中的专业能力。通过不断实践和学习,开发者可以更好地利用Cache来优化应用程序,提供更高效的服务。

Global site tag (gtag.js) - Google Analytics