cpu一级缓存
cpu缓存(cache memory)是位于cpu与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。缓存的出现主要是为了解决cpu运算速度与内存读写速度不匹配的矛盾,因为cpu运算速度要比内存读写速度快很多,这样会使cpu花费很长时间等待数据到来或把数据写入内存。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内cpu即将访问的,当cpu调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。由此可见,在cpu中加入缓存是一种高效的解决方案,这样整个内存储器(缓存+内存)就变成了既有缓存的高速度,又有内存的大容量的存储系统了。缓存对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 1 cache)简称l1 cache,位于cpu内核的旁边,是与cpu结合最为紧密的cpu缓存,也是历史上最早出现的cpu缓存。由于一级缓存的技术难度和制造成本最高,提高容量所带来的技术难度增加和成本增加非常大,所带来的性能提升却不明显,性价比很低,而且现有的一级缓存的命中率已经很高,所以一级缓存是所有缓存中容量最小的,比二级缓存要小得多。
一般来说,一级缓存可以分为一级数据缓存(data cache,d-cache)和一级指令缓存(instruction cache,i-cache)。二者分别用来存放数据以及对执行这些数据的指令进行即时解码,而且两者可以同时被cpu访问,减少了争用cache所造成的冲突,提高了处理器效能。目前大多数cpu的一级数据缓存和一级指令缓存具有相同的容量,例如amd的athlon xp就具有64kb的一级数据缓存和64kb的一级指令缓存,其一级缓存就以64kb+64kb来表示,其余的cpu的一级缓存表示方法以此类推。
intel的采用netburst架构的cpu(最典型的就是pentium 4)的一级缓存有点特殊,使用了新增加的一种一级追踪缓存(execution trace cache,t-cache或etc)来替代一级指令缓存,容量为12kμops,表示能存储12k条即12000条解码后的微指令。一级追踪缓存与一级指令缓存的运行机制是不相同的,一级指令缓存只是对指令作即时的解码而并不会储存这些指令,而一级追踪缓存同样会将一些指令作解码,这些指令称为微指令(micro-ops),而这些微指令能储存在一级追踪缓存之内,无需每一次都作出解码的程序,因此一级追踪缓存能有效地增加在高工作频率下对指令的解码能力,而μops就是micro-ops,也就是微型操作的意思。它以很高的速度将μops提供给处理器核心。intel netburst微型架构使用执行跟踪缓存,将解码器从执行循环中分离出来。这个跟踪缓存以很高的带宽将uops提供给核心,从本质上适于充分利用软件中的指令级并行机制。intel并没有公布一级追踪缓存的实际容量,只知道一级追踪缓存能储存12000条微指令(micro-ops)。所以,我们不能简单地用微指令的数目来比较指令缓存的大小。实际上,单核心的netburst架构cpu使用8kμops的缓存已经基本上够用了,多出的4kμops可以大大提高缓存命中率。而如果要使用超线程技术的话,12kμops就会有些不够用,这就是为什么有时候intel处理器在使用超线程技术时会导致性能下降的重要原因。
例如northwood核心的一级缓存为8kb+12kμops,就表示其一级数据缓存为8kb,一级追踪缓存为12kμops;而prescott核心的一级缓存为16kb+12kμops,就表示其一级数据缓存为16kb,一级追踪缓存为12kμops。在这里12kμops绝对不等于12kb,单位都不同,一个是μops,一个是byte(字节),而且二者的运行机制完全不同。所以那些把intel的cpu一级缓存简单相加,例如把northwood核心说成是20kb一级缓存,把prescott核心说成是28kb一级缓存,并且据此认为intel处理器的一级缓存容量远远低于amd处理器128kb的一级缓存容量的看法是完全错误的,二者不具有可比性。在架构有一定区别的cpu对比中,很多缓存已经难以找到对应的东西,即使类似名称的缓存在设计思路和功能定义上也有区别了,此时不能用简单的算术加法来进行对比;而在架构极为近似的cpu对比中,分别对比各种功能缓存大小才有一定的意义。
家庭用户长时间使用液晶电视的注意事项
2020年6月正式实施GB4343.1-2018对部分家用电器辐射发射的要求
二次电池是什么_二次电池有哪些_二次电池充放电方程式
VMOS场效应管,VMOS场效应管是什么意思
食品安全检测仪为什么值得普及应用
CPU一级缓存
旗下100多个品牌毛利高达60%!这些公司怎么成为全球仪器&传感器巨头?
触控显示产业亮点先睹为快
单片机PWM信号转4-20mA隔离IC
半导体厂房全面停摆 自研芯片战略受影响
什么是硅光电池 ?
CineBench R23最新笔记本CPU跑分汇总
三星声称已开发出行业领先的Blue QLED技术,旨在加速QLED商业化
解读致钛SSD、3D NAND的故事
典型伪装材料高光谱特征及识别方法研究
如何实现仓储智能化,激光导航AMR\AGV是关键
1线主设备配置-1-Wire Master Device C
自动匹配超声波焊接电源发生器
智能锁的基本原理和流程是怎样的
iPhone8什么时候上市?iPhone8最新消息:iPhone8模型曝光网友看呆,iPhone8三颗摄像头!红绿灯?