一、CPU为啥用cache
为什么存在cache?
由于CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期,
Cache中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调用,这样就减少了CPU的等待时间,提高了系统的效率。
1:利用了空间局部性和时间局部性的原理
CPU Cache利用时间局部性和空间局部性原理来优化数据访问性能。这两个原理在Cache工作中扮演关键角色,以下是对CPU
Cache工作原理与时间局部性、空间局部性的详细解释:
一、时间局部性:
- 概念:时间局部性意味着一旦数据被访问,它在不久的将来会再次被访问。
Cache应用:当处理器访问一个数据后,该数据会被保留在Cache中,因为存在时间局部性,表示该数据在短期内可能再次被访问。
3.优势:通过利用时间局部性,Cache能够减少对主存的访问次数,提高数据访问速度,因为处理器在未来访问相同数据时可以直接从Cache中获取。
二、 空间局部性:
1.概念:空间局部性表明一旦访问了一个数据,其临近的数据也有可能被访问。
2.Cache应用:由于空间局部性,Cache可能会预先加载邻近数据块,以提高整体的Cache命中率。
3.优势:通过存储相邻数据块,Cache利用空间局部性可以更有效地提供处理器可能需要的数据,减少Cache未命中的情况。
三、 工作原理:
1.缓存命中:当处理器请求数据时,首先在Cache中查找。如果数据存在于Cache中,发生缓存命中,处理器直接从Cache读取数据。
2.缓存未命中:如果请求的数据未在Cache中找到,发生缓存未命中,需要从主存加载数据到Cache中。- 时间局部性应用:当数据被访问并存储在Cache中,根据时间局部性,该数据在不久的将来可能再次被访问。
4.空间局部性应用:根据空间局部性,Cache可能会预取与即将被访问的数据相关的邻近数据块,以提前加载可能被访问的数据。
四、优化策略:- 数据块大小:选择适当的数据块大小以最大化空间局部性的利用。 替换策略:设计针对时间局部性的替换策略,保留最近使用的数据。
- 预取策略:根据空间局部性预先加载可能被访问的数据,以提高Cache命中率。 综合利用时间局部性和空间局部性原理,CPU
- Cache能够极大地优化数据访问性能,减少主存访问延迟,提高处理器的运行效率,是计算机系统中至关重要的组件之一。
CPU Cache 为啥是通过 SRAM 实现的
在现代计算机中,我们最熟悉的半导体存储体有三种:
用于存储BIOS信息的EEPROM(Electrically Erasable Programmable Read Only
Memory,电可擦写可编程只读存储器) 用于存储临时工作数据的DRAM(Dynamic Random Access
Memory,动态随机访问存储器) SRAM(Static Random Access Memory,静态随机访问存储器)。
EEPROM由于成本过高,速度太慢,肯定不能做为Cache材料的选择,而DRAM和SRAM两种,为什么是SRAM用来做Cache,而不是DRAM呢?当然最大的原因是速度。我们知道DRAM目前最常见的应用就是内存了,它是利用每个单元的寄生电容来保存信号的,正因如此,它的信号强度就很弱,容易丢失,所以DRAM需要时时刷新来确定其信号(根据DRAM制造商的资料,DRAM至少64ms要刷新一次,并且由于每次读取操作都会破坏DRAM中的电荷,所以每次读取操作之后也要刷新一次,这就表示,DRAM至少有1%的时间是用来刷新的)。这样,DRAM的存储周期就增大了,当然潜伏期也变大了。我们从Cache的起源可以看出,正是因为内存的读取时间过高而引入Cache的,所以DRAM不符合做Cache的标准。
而SRAM不是通过电容充放电来存储数据,而是利用设置晶体管的状态来决定逻辑状态,让其保存数据,并且这种逻辑状态和CPU本身的逻辑状态相象,换句话说,SRAM可以以接近CPU频率的速度来运行(在今年秋季的IDF上,Intel公布的65nm工艺的SRAM,可以���行在3.4GHz的频率上),再加上读取操作对SRAM是不具破坏性的,不存在刷新问题,大大的缩短了潜伏期。所以这种低延迟,高速度的SRAM才是Cache材料的首选。
1、寄存器:CPU的内部组成单元,是CPU运算时取指令和数据的地方,速度很快
2、cache:缓存即就是用于暂时存放内存中的数据(TLB快表 )
1、flash是只能读不能写的,
cache跟cpu集成在一起,所以读写的速度最快。
2、cache是一个高速小容量的临时存储器,可以用高速的静态存储器芯片实现。而flash是没有高速静态存储器芯片,Flash与cpu通信只能通过controller SPI通信,所以Flash慢 cache很快。
3、SAM非常适合作缓冲存储器之用,一般情况下,缓存中数据的存储顺序与调用顺序相同(显卡中的缓存就是个很好的例子);而RAM则能以任意的顺序存取数据。
3858

被折叠的 条评论
为什么被折叠?



