武陵观察网 问答 CPU的一级缓存(cpu一级缓存是什么意思)

CPU的一级缓存(cpu一级缓存是什么意思)

CPU缓存是位于CPU和内存之间的临时内存。它的容量比内存小很多,但交换速度比内存快很多。cache的出现主要是为了解决CPU运行速度和内存读写速度的矛盾,因为CPU运行速度比内存读写速度快很多,会让CPU花费很长时间等待数据到达或者将数据写入内存。

缓存中的数据是内存的一小部分,但这一小部分会在短时间内被CPU访问。当CPU调用大量数据时,可以避开内存,直接从缓存中调用,从而加快读取速度。可以看出,给CPU增加缓存是一种高效的解决方案,这样整个内存(cache memory)就变成了一个高速存储系统,既有缓存又有内存。对CPU的性能影响很大,主要是因为CPU的数据交换顺序和CPU与缓存之间的带宽。

缓存的工作原理是,当CPU要读取一个数据时,先从缓存中查找,如果找到,立即读取并发送给CPU处理;如果没有找到,会以相对较慢的速度从内存中读取,并发送给CPU进行处理。同时将这个数据所在的数据块转移到缓存中,这样以后就可以从缓存中读取整个数据块,不需要再调用内存。

正是这样的读取机制,使得CPU读取缓存的命中率非常高(大部分CPU可以达到90%左右),也就是说,CPU下次读取的数据90%都在缓存中,只有10%左右需要从内存中读取。这大大节省了CPU直接读取内存的时间,也使得CPU在读取数据时基本不需要等待。一般来说,CPU读取数据的顺序是先缓存,再存储内存。

目前,SRAM存储器基本上用于高速缓存。SRAM是英文Static RAM的缩写。它是一种具有静态存取功能的存储器,存储在其中的数据无需刷新电路即可保存。不像DRAM存储器需要刷新电路,DRAM每隔一段时间就必须刷新充电,否则内部数据会消失,所以SRAM性能高。但是SRAM也有它的缺点,就是集成度低,同样容量的DRAM存储器可以设计成很小的体积,但是SRAM需要很大的体积,这也是目前缓存容量不能做得太大的重要原因。其特点概括为:其优点是节能、速度快,不需要配合存储器刷新电路,可以提高整体工作效率;其缺点是集成度低,同等容量体积大,价格高,只能少量用于关键系统提高效率。

根据数据读取的顺序和与CPU结合的紧密程度,CPU缓存可以分为一级缓存和二级缓存。一些高端CPU也有三级缓存,每一级缓存中存储的所有数据都是下一级缓存的一部分。这三种缓存的技术难度和制造成本都在相对降低,所以它们的容量也在相对增加。当CPU想要读取一个数据时,它首先从一级缓存中查找,如果没有找到,则从二级缓存中查找,如果仍然没有找到,则从三级缓存或内存中查找。

一般来说,每一级缓存的命中率都在80%左右,也就是说所有数据的80%都可以在一级缓存中找到,只需要从二级缓存、三级缓存或内存中读取总数据的20%。因此,一级缓存是整个CPU缓存架构中最重要的部分。

一级缓存(level Cache),简称l 1缓存,位于CPU核的旁边,是集成最紧密的CPU缓存,也是历史上最早的CPU缓存。因为一级缓存的技术难度和制造成本是最高的,增加容量带来的技术难度和成本增加是非常大的,但是性能提升并不明显,性价比非常低。而且现有的一级缓存命中率已经很高了,所以一级缓存在所有缓存中容量最小,比二级缓存小很多。

一般来说,一级缓存可以分为一级数据缓存(D-Cache)和一级指令缓存(I-Cache)。它们用于存储数据和实时解码执行这些数据的指令,同时可以被CPU访问,减少了争夺缓存带来的冲突,提高了处理器效率。目前,大多数CPU的L1数据缓存和L1指令缓存具有相同的容量。比如AMD的Athlon XP有64 KB的L1数据缓存和64 KB的L1指令缓存,其L1缓存以64KB和64KB为代表,其他CPU的L1缓存以此类推。

Intel的NetBurst架构的CPU(奔腾4是最典型的)有专门的一级缓存。用新增加的一级跟踪缓存(执行跟踪缓存,T-Cache或ETC)代替一级指令缓存,容量为12KOps,也就是说可以存储12K,也就是12000条解码后的微指令。

一级跟踪高速缓存的操作机制不同于一级指令高速缓存的操作机制。一级跟踪高速缓存只实时解码指令,而不存储它们。一级跟踪高速缓存还解码一些指令,这些指令被称为微操作。这些微指令可以存储在一级跟踪缓存中,不需要每次都解码。因此,一级跟踪缓存可以有效地增加高工作频率下指令的解码能力,ops它高速地向处理器内核提供Ops。

英特尔NetBurst微体系结构使用执行跟踪高速缓存将解码器与执行循环分开。这种trace cache为内核提供高带宽的微操作,本质上适合在软件中充分利用指令级并行。Intel一直没有公布一级trace cache的实际容量,只知道一级trace cache可以存储12000个微操作。所以不能简单的用微指令的数量来比较指令缓存的大小。

其实单核NetBurst架构CPU基本上8Kops的缓存就够用了,多出来的4kops可以大大提高缓存命中率。但是如果要使用超线程技术,12KOps就有些不够用了,这也是为什么有时候英特尔处理器在使用超线程技术时性能会下降的重要原因。

比如Northwood core的一级缓存是8KB 12KOps,也就是说它的一级数据缓存是8KB,一级跟踪缓存是12kOps;而Prescott core的一级缓存是16KB 12KOps,也就是说它的一级数据缓存是16KB,一级跟踪缓存是12KOps。这里12KOps肯定不等于12KB,单位都不一样,一个是Ops,一个是Byte,两者的运行机制完全不同。所以简单地把英特尔的CPU L1缓存相加,比如说诺斯伍德核心是20KB L1缓存,普雷斯科特核心是28KB L1缓存,认为英特尔处理器的L1缓存容量远远低于AMD处理器的128KB L1缓存容量,两者没有可比性,是完全错误的。

在不同架构的CPU的比较中,很多缓存很难找到对应的东西,即使名字相似的缓存在设计思路和功能定义上也是不同的,所以此时不能用简单的算术加法进行比较;但在架构相似的CPU比较中,分别比较各种函数的缓存大小是有意义的。

本文来自网络,不代表本站立场,转载请注明出处:https:

CPU的一级缓存(cpu一级缓存是什么意思)

武陵观察网后续将为您提供丰富、全面的关于CPU的一级缓存(cpu一级缓存是什么意思)内容,让您第一时间了解到关于CPU的一级缓存(cpu一级缓存是什么意思)的热门信息。小编将持续从百度新闻、搜狗百科、微博热搜、知乎热门问答以及部分合作站点渠道收集和补充完善信息。