迅维网

查看: 1507|回复: 12
打印 上一主题 下一主题

CPU的一级缓存为什么不能做得大一点?

[复制链接]
跳转到指定楼层
1#
发表于 2017-11-18 15:36:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: LAN 来自 LAN

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x
一级缓存和二级缓存是用什么材料制成的? 若果一级缓存足够大,二级缓存还有存在的必要吗?

2#
发表于 2017-11-18 15:36:29 | 只看该作者 来自: LAN 来自 LAN
感谢@北极提醒补充,我自己再补充一下:做大了后其实还有面积和成本的考量,至于做大后延迟开销/命中时间增加的原因就是因为电信号的传播时间增加。我在这条评论里之前和别人说到过这个问题,只是没写到答案上,这里再做下补充。
ps:吐槽一下,知乎这个艾特好麻烦。。。我原本以为打出名字空格一下就行了,果然贴吧玩久了不习惯知乎233_(:_」∠)_

———————分割线———————
刚才没看到题主提出的具体问题,我在这里回答一下。
1:材料当然还是mos管了。

2:正因为做不大才有l2来维持全局的缺失嘛,退一步讲即使做的足够大了也会缺失,有个l2也可以以防万一。


———————分割线———————


很简单,延迟开销/命中时间的影响。l1致力于更快的速度,l2才是致力于命中率。的确,把Cache做大后缺失率自然就低了——然而最终的标准是整个存储器对程序执行时间影响,这其中还有延迟开销和命中时间以及影响。

l1为什么要做成哈佛分离式结构?因为可以提升带宽+减少冲突缺失,虽然相较而言冯诺依曼的混合式结构命中率更高,但l1就是要速度,速度,速度啊~  Cache如果做大了取一个字的时候时间就会增加(可以理解为在一个大的树林里找一个人需要先去观察,然后再跑过去。树林越大当然人就越不好找了呗。更大的Cache也是同理)l2为了l1缺失时作为下一个访问的存储器速度可以略慢但命中一定要高——这也是为什么我们看到l2、l3几乎都是冯诺依曼的混合式结构——因为命中,命中,命中啊~

如上,我觉得我说的很清楚了,把l1做大后显然命中时间和整个延迟开销会增加,我们现代大多都是Set-Associative组成Cache,它是直接映射和全相连的折中,显然,它比直接映射命中率更高,速度更慢;但比全相连速度更快,命中更低。我们要做到更准确的命中率就要用更多way的Set-Associative,但功耗和命中时间也会增加——还是延迟开销问题。所以,l1做不大主要是延迟开销/命中时间的影响●﹏●

回复 支持 反对

使用道具 举报

3#
发表于 2017-11-18 15:36:29 | 只看该作者 来自: LAN 来自 LAN
我对 @Ann丶雪华绮晶  的回答做点补充

主要原因就是做的大就变慢了,而如果又大又快的话,成本会增加很多并且有物理极限。

电信号的传播速度等于电场的速度等于光速,但由于CPU内部有电容等原件,实际速度达不到光速,但可以认定的就是电信号传播需要时间,

参见:超导计算机能达到多高的时钟频率? - 中央处理器 (CPU)

以及这个链接:Propagation delay,尤其是这个图:


cache这种东西占CPU内的面积是很大的。一旦cache面积变大,访问cache的延迟也会变大。所以可以得出结论cache越大,访问速度就越慢(可以简单的理解为电信号要走的距离更长),所以cache大小和速度是成反比的。

用更小的制程能改变这种困境,但制程也是有上限的。

最终结果就是不得不采取折中的办法进行妥协,用cache分级,让L1更快,让L2/L3更大。现在家用高端CPU几MB的L3已经足够大了,一般应用软件的实际运行的二进制代码其实也不大,大的都是各种音、视频资源类的东西。

回复 支持 反对

使用道具 举报

4#
发表于 2017-11-18 15:36:29 | 只看该作者 来自: LAN 来自 LAN
CPU的一级缓存为什么不再大一点,在物理实现方面也有一个问题,就是占的面积太大了,而且功耗无法控制。一级缓存为了要跟上CPU核心的运行速度,不得不采用由两个反相器首位相连组成一个正反馈的环,然后再来两个管子作为和外加沟通的数据线的开关,这样算下来是6个MOSFET。而我们的内存呢?一个MOSFET作为控制数据通信的开关用,存储单元仅仅是一个电容器,而且制作这个电容器的时候采用了在衬底上挖深槽然后长一层氧化膜的方法,让这个电容器基本不占什么面积。这样算来,仅仅是存储单元,CPU里面的Cache就要比内存大至少6倍,再加上Cache要有别比较复杂的控制逻辑(猜的,Cache水很深,本人不懂),面积更是大了许多。而这个大家伙为了保持高速,工作频率要和核心里面ALU之类的耗电大户们基本一样,那么功耗问题就会变得很严重。要是来个1G的Cache,那夸张点说这CPU估计要配一个发电厂用的冷却塔来散热了。



借用一个网上的图片,不知准确性如何,但是一般来说在芯片照片上能看到黑色圈里面那种比较规整的小块,都是memory或者cache没跑。查了一下,这个照片里是Core i5 750的核心,里面L1 cache只有32KB,已经是那么大一块了。而用现在的工艺去做一个32KB的DRAM,也就是我们的内存,那可能是肉眼很难看到的一点。
说了这么多,为什么面积这么重要,因为晶圆贵的要死啊,大家能省一点是一点啊。但即使是这么抠门,我们也能从照片里看到,L3 Cache已经占了整个核心的接近一半了。芯片做小了,一个晶圆就能出更多的片,这样便宜,而且芯片面积小会让良品率提高,再一次降低了生产成本。
至于第二个问题,我们来开个脑洞。如果L1 Cache足够大,那L2 Cache自然就用不到了,因为L2和L3 Cache的存在本来就是要弥补L1 Cache容量太小的问题,如果L1自己够用了,那L2和L3自然就没必要存在了。
但是L1 Cache是没必要做太大的,有个经验规律是这么说的:L1 Cache容量翻倍,Cache命中失败的概率只能减少

                               
登录/注册后看高清大图
,所以,这个东西这么金贵,而且大到了一定程度之后对于提高命中率的效果还不那么明显了,干点活还傲娇,那我们就不用嘛。于是,L2和L3 Cache就上了。

回复 支持 反对

使用道具 举报

5#
发表于 2017-11-18 15:36:29 | 只看该作者 来自: LAN 来自 LAN
比如你要换个灯泡顺带修一修灯座,你去超市买个灯泡,螺丝刀,创口贴,胶带....拿了个工具包把这些都放进去。这个随身携带的工具包就是一级缓存。便携,里面的东西没有分类但是因为数量少所以查找起来很快速。但是买这些工具的过程要去超市,按照物品分类一样一样的找,买,付钱...超市就相当于二级缓存,物品多,整理好的分类。但是你去回的路程,挑选的时间,付账的时间都是为了获得大库存付出的代价。
超市后面还有更大的仓库,可以理解成三级缓存或者内存或者硬盘,反正就是再往后的存储级别。这样超市里没摆着的物品有一定概率可以从仓库找到,但是会更慢。

回复 支持 反对

使用道具 举报

6#
发表于 2017-11-18 15:36:29 | 只看该作者 来自: LAN 来自 LAN
目前缓存基本上都是采用SRAM存储器,SRAM是英文Static RAM的缩写,它是一种具有静志存取功能的存储器,不需要刷新电路(什么是刷新电路呢?就是说DRAM存储器是靠电容供电而过一会儿电容的电会消失,所以过一会儿需要对电容重新加电这样就会再次走一下电路这也就叫做刷新电路)即能保存它内部存储的数据。不像DRAM内存那样需要刷新电路,每隔一段时间,固定要对 DRAM刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积,这也是目前不能将缓存容量做得太大的重要原因。它的特点归纳如下:优点是节能、速度快、不必配合内存刷新电路、可提高整体的工作效率,缺点是集成度低、相同的容量体积较大、而且价格较高,只能少量用于关键性系统以提高效率。
什么是二级缓存。CPU缓存(Cache Memory)位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。最初缓存只有一级,二级缓存(L2 CACHE)出现是为了协调一级缓存与内存之间的速度。二级缓存比一级缓存速度更慢,容量更大,主要就是做一级缓存和内存之间数据临时交换的地方用。实际上,现在Intel和AMD处理器在一级缓存的逻辑结构设计上有所不同,所以二级缓存对CPU性能的影响也不尽相同。
形象地说,把他和工厂以及仓库联系起来,理解起来很方便,在这里复述一下我对这个解释的印象,尽量百分之百的道出。
比如说,有一个工厂,生产物品时需要用到各种各样的原材料,在一个比较远的地方有一个很大的仓库,里面存放着各种各样的原材料,那么当工厂在生产的时候,可能就需要从这个大仓库调用各种各样需要用到的原材料,呢么这个时候问题就产生了,因为仓库里面原材料很多,想一下子找到需要用的并不是很容易,所以很有可能在工厂流水线生产车间开动的时候处于空运转,一边运转一边等待原材料,那么这个时候,不仅会浪费能源,更会严重地降低生产效率。所以后来,就想了个办法,就是在工厂的附近建一个小的仓库,帮最近常用到的原材料存放在这个小仓库里,这样工厂在生产的时候调用原材料势必就会方便很多,大大提高了生产效率。看到这里我就很奇怪,既然这样,为什么不在工厂附近设一个很大的仓库,把尽可能多的原材料全部存放在这里呢?哈哈,事实证明这是一个好问题,这就涉及到一个成本的问题,因为就近建造仓库的成本肯定会很高,因为近的仓库要求的是尽可能快,所以说不需要多,这个具体在cpu的应用设计中也会涉及到相应的缓存成本的问题,待会再讲。
后来,人们发现,这个小仓库可能也不会用,所以就再见一个稍微大一点的仓库,这样就会存的下更多的东西,那么会进一步提高工作效率。这里还涉及到一个所谓的cpu的命中率的问题,比如说一级缓存的命中率是百分之八十,就是说CPU发送一条指令需要用到的百分之八十的指令有可能在一级缓存中找到,那么二级缓存的命中率是百分之八十的概念就是在一键缓存中找不到的那百分之二十,会有百分之八十的可能在二级缓存中找到,大致如此。当然了,还有三级缓存,不过这是在一些高级的CPU中才会存在,一般的二级缓存也就是4、5MB,一级缓存呢,也不会超过这个数字,而一个电脑的内存往往会有好几个GB,所以说,缓存、内存各司其职,目前来说,缓存还远远无法取代内存,因为缓存的存在会使CPU拥有更多的二极管,那么他们在工作的过程中势必就会产生更多的热量,越过的热量就会消耗更多的能源。现在而言,仅仅几个MB的缓存就会产生如此多的能量,所以更大的CPU会什么样大家应该能想象的到,当然了,随着时间的发展推移、科技的进步,未来会有更加先进的材料来制造出更加先进的硬件也完全有可能。就目前而言,CPU的cache 即高速缓存存储器,速度是比内存快NNN倍的,但CPU缓存达到2G.用来取缔内存的作用.不能想象那又是一个什么时代了.既然没有到那个时代.所以也无法判断出以后究竟怎么发展.也不能确切的说cache是否可以取代内存.因为目前还是CPU到内存再到硬盘这样工作的.

回复 支持 反对

使用道具 举报

7#
发表于 2017-11-18 15:36:29 | 只看该作者 来自: LAN 来自 LAN
按照数据读取顺序和与CPU结合的紧密程度,CPU缓存可以分为一级缓存,二级缓存,部分高端CPU还具有三级缓存,每一级缓存中所储存的全部数据都是下一级缓存的一部分,这三种缓存的技术难度和制造成本是相对递减的,所以其容量也是相对递增的。当CPU要读取一个数据时,首先从一级缓存中查找,如果没有找到再从二级缓存中查找,如果还是没有就从三级缓存或内存中查找。一般来说,每级缓存的命中率大概都在80%左右,也就是说全部数据量的80%都可以在一级缓存中找到,只剩下20%的总数据量才需要从二级缓存、三级缓存或内存中读取,由此可见一级缓存是整个CPU缓存架构中最为重要的部分。

但是一级缓存和二级缓存的大,它究竟有多少好处呢?说这个就好比你开汽车的时候,后备箱是整个的二级缓存,假如说扶手里面有一个小箱子,那是你的一级缓存。一级缓存大好在哪里呢?就是你随时开车的时候,随时在里面都可以取东西了。假如你一级缓存小的话,你还得把车停下来,到后备箱里取东西。

由于一级缓存的技术难度和制造成本最高,提高容量所带来的技术难度增加和成本增加非常大,所带来的性能提升却不明显,性价比很低,而且现有的一级缓存的命中率已经很高,所以一级缓存是所有缓存中容量最小的,比二级缓存要小得多。

复制漏了。。。

回复 支持 反对

使用道具 举报

8#
发表于 2017-11-18 15:36:29 | 只看该作者 来自: LAN 来自 LAN
Quora有个类似的问题:Why can't RAM be replaced by Cache memory?

回复 支持 反对

使用道具 举报

9#
发表于 2017-11-18 15:36:29 | 只看该作者 来自: LAN 来自 LAN
简而言之就是贵啊

回复 支持 反对

使用道具 举报

10#
发表于 2017-11-19 14:04:51 | 只看该作者 来自: 安徽蚌埠 来自 安徽蚌埠
卧槽  科普贴  不明觉厉啊啊啊啊啊

回复 支持 反对

使用道具 举报

11#
发表于 2017-11-19 14:23:27 | 只看该作者 来自: 中国 来自 中国
经典有空就多来学习学习。。。。。。。。。。

回复 支持 反对

使用道具 举报

12#
发表于 2017-11-19 17:06:50 | 只看该作者 来自: 广东深圳 来自 广东深圳
什么意思、。。。。。。没有看明白

回复 支持 反对

使用道具 举报

13#
发表于 2017-11-24 10:56:57 | 只看该作者 来自: 广东 来自 广东
卧槽,真的是不明觉厉。。。。。。。。。。。

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长提醒 上一条 /1 下一条

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图


芯片搜索

快速回复