以前计算机是两层存储结构:主存和辅存。
现在大多出计算机中的三层存储结构是:高速缓存Cache、主 存储器和辅助存储器。
那为什么要提出高速缓存呢?
主要的原因是为了提高存储器的平均访问速度。使存储器的速度与CPU的速度想匹配。
那高速缓存是如何提高存储器的速度?
首先介绍一下高速缓存,名叫Cache,Cache有两部分组成:控制部分和Cache部分。Cache部分用来存放主存的部分复制信息。(后面会介绍)控制部分的功能是:判断CPU要访问的信息是否在Cache中。
CPU与Cache之间的数据交换是以字交换的,而Cache与主存储器之间的数据交换是以块交换的。一个数据块是由若干个字组成的。
所以当CPU访问主存的一个信息时,于是把信息的内存地址通知给Cache和主存。此时Cache中的Cache部分(上面提到的)会根据内存地址判断此信息是否在Cache中,若在,则命中,即直接把信息从Cache传给CPU,若不在,则未命中。那如何办呢?首先主存会把此信息的传递给CPU,然后再把此信息的数据块存放到Cache,防止CPU下次读取。
其实CPU访问的过程中,若是Cache未命中,主存把信息数据块存放到Cache中,涉及到局部性原理。
那既然提到了局部性,那么我们介绍一下局部性原理,记得这在操作系统中虚拟存储器页面置换中提到过。
局部性可以分为时间局部性和空间局部性。
时间局部性是指:当一个数据访问完之后,在最近一段时间内再次访问。
这种情况我们可以想想循环,循环就是此种情况。
空间局部性是指:当一个数据访问完之后,在最近一段时间内会访问它周围的数据。
这种情况我们可以想想数组,是不是这种情况哈。
刚才提到命中,理论是有了,那如何计算命中率呢?
命中率=Cache完成存取的次数/Cache完成存取的次数+主存完成的次数
h=N/N+M
那系统的访问时间:
= 命中率*Cache的周期+(1-命中率)*主存的周期
主存与Cache的地址映射:若是Cache中未命中,为了防止下次访问,则需要把主存中的字存放到Cache中,那如何定位主存的地址呢?
Cache的地址映射可以分为三种:直接映射、全相联映射、组相联映射
介绍一下这三种的原理。
首先Cache中的数据块称为行,而主存中的数据块称为块。
直接映射:主存中的地址只能映射到Cache中的确定的某一行。
主存的地址分为:块号地址S位和块内容(字)w位。
在直接映射中,Cache把主存块地址S分为两部分:r和s-r,其中r位作为cache的行地址, s-r位作为标记(tag)与块数据(字)保存在此行。若CPU访问主存中的数据,则cache用r位找到此行,然后用地址中的s-r 的标记部分与cache中r行的标记部分做对比,若相等则命中,否则失中。
在全相联映射中,Cache把主存地址s直接作为标记部分。若访问,直接把地址中的标记部分和cache中的标记部分进行比较。
在组相联映射中,主存地址首先确定分到cache的那个组(采用直接映射),然后分到确定组的任意行(采用全相联映射)。
直接相联优点:地址变换简单。
缺点:若是主存地址映射到Cache同一行中,则会出现冲突,灵活性较差。
全相联优点:主存地址可以存放cache中的任意一行,灵活。
缺点:地址变换复杂。
组相联:集上述两种优点一身。
分享到:
相关推荐
高速缓冲存储器Cache的原理、设计及实现 更多资源请访问http://www.59186618.com
PC系统高速缓冲存储器Cache的原理、设计及实现
高速缓冲存储器是存在于主存与CPU之间的一级存储器, 由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多, 接近于CPU的速度。 Cache的功能是用来存放那些近期需要运行的指令与数据。目的是提高CPU对存储器...
高速缓冲存储器是存在于主存与CPU之间的一级存储器, 由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多, 接近于CPU的速度。 Cache的功能是用来存放那些近期需要运行的指令与数据。目的是提高CPU对存储器的...
高速缓冲存储器详解,个人感觉写得比较详细,分享一下
计算机专业术语大全 chm,扩充你的电脑知识,成为计算机专业人士的必备专业用语,部分术语摘录: BIOS (Basic Input-Output System...Cache Memory-高速缓存存储器 CAS (Column Address Strobe)-列地址选通脉冲 ……
Cache是高速缓冲存储器 一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问 凡是位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为 Cache
ADI高速缓冲存储器在Blackfin?处理器中的应用pdf,ADI高速缓冲存储器在Blackfin?处理器中的应用
3.主板上高速缓冲存储器CACHE是设在( )。 ①主存与CPU之间 ②主存与外存之间 ③接口板上 ④CPU内部 4.进位计数制中的最大数是指( )。 ①一个数允许使用的最大数码 ②一个数位允许使用的数码个数 ③一...
纵观计算机系统和微处理器的发展,随着半导体加工工艺水平的不断提高,CPU和存储器的性能都有了很大的提高。CPU频率的提高,必然要求系统中存储器...在它们之间加入高速缓冲存储器Cache,就是这个问题的解决方案之一。
cache(高速缓冲存储器)是一种特殊的存储器子系统,其中保存了频繁 使用的数据及这些数据的存储地址,以利于快速访问。当处理器引用cache中的某些数据 时,其便检查是否保存有该数据。当保存有该数据时,就将数据...
目前,大多数计算机都采用的Cache(高速缓冲存储器)、主存储器和‘’磁盘存储器(辅存)构成的三级存储系统,这个存储系统可以看成是“Cache-主存”和“主存-辅存”层次组成的系统。 这一设计是为了解决存储容量和...
采用一级cache设计对五级流水线CPU进行优化,Cache的工作原理是基于程序访问的局部性。根据程序的局部性原理,可以在主存和CPU通用寄存器之间...这个介于主存和CPU之间的高速小容量存储器称作高速缓冲存储器(Cache)。
本人花了3元钱从网上下载的一篇论文,讲解Cache比较好。分享之 -------------------------------------------- 摘要:该文提出了一种合理地应用Cache的方法,以解决VxWorks环境下操作...高速缓冲存储器;直接存储器存取
5.1 存储体系概述 5.2 主存储器 5.3 主存储器与CPU的连接 5.4 高速存储器 5.5 高速缓冲存储器Cache 5.6 虚拟存储器 5.7 外存储器 5.8 存储保护 作业
计算机的外围设备是指_____ A:输入/输出设备 B:外存设备 C:通信设备 D:除主机外的其他设备 答案:D 有关高速缓冲存储器Cache的说法正确的是( )。 A:只能在CPU以外 B:CPU内外都可以设置Cache C:只能在CPU以内 D:若...
3.1 存储系统原理 3.2 虚拟存储器 3.3 高速缓冲存储器(Cache)
中央处理器主要包括运算器(算术逻辑运算单元,ALU,Arithmetic Logic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。它与内部存储器(Memory)和输入/输出(I/O)...
包括以下主要内容,需要的看看吧,讲的比较清楚 5.1 存储体系概述 5.2 主存储器 5.3 主存储器与CPU的连接 5.4 高速存储器 5.5 高速缓冲存储器Cache 5.6 虚拟存储器 5.7 外存储器 5.8 存储保护
3.简述高速缓冲存储器Cache为什么能够实现高速的数据存取? 4.有一个由20个字组成的数据区,其起始地址为3500H:0320H。试写出数据区首末单元的实际地址。 5.设有一个具有16位地址和8位数据的存储器,问:(1)该...