计算机组成原理之高速缓存(重要点)

这一篇也是计算机组成中比较重要的概念,高速缓存。数组

上一篇已经讲了存储层次结构,接下来看看高速缓存的原理。缓存

Cache取回数据时并不仅是取回CPU要求的单个数据,而是取回一个数据块Block,其实这是一个预期的行为,好比通常咱们spa

访问数组下标为1的数据时,接下来大可能继续访问下标2,3……的数据设计

另外频繁被访问的数据也会在Cache中被缓存下来 blog

 这是Cache的访问过程,看起来很是像咱们写的程序逻辑判断。。。内存

  上图中衡量高速缓存的是平均访问时间=命中时间+失效代价X失效率效率

  下降平均访问时间也是从这三个参数入手设计,然而实现目标总没有那么十全十美,好比想让命中时间下降,须要让缓存容量减少,原理

这样能存下的缓存数据就减小了,失效率也会上去。程序

  须要知道的是指令和数据之前都是在内存中,可是指令和数据的访存时间差距却很大,通常指令访存的平均时间比数据小不少,好比im

厨师如今知道了下一个菜是炒番茄鸡蛋,可是收到指令好久才有切好的番茄送过来,所以现代CPU大多数将指令和数据分放在两个独立的

Cache中,避免空间上相互影响。

  下图是Corei7的缓存设计。其中路组相联指的是高速缓存中的相同地址头的存放策略。好比编号为1的房间如今放着数据A,如今须要

数据B,取回来后编号也是1,那么是增长一个房间呢仍是替换编号1房间的数据A呢,很显然,这又是个相互制约的设计

 

 关于Cache的写策略,只能从字面意思上去理解,具体的怎么设置尚不清楚

相关文章
相关标签/搜索