缓存级数是否有上限?( 二 )
那为什么不让l1做的象l3一样大呢?这里做个比喻,l1就像是学生的书包,l3就象是学校的图书馆,显然每个学生可以背一个书包,但不可能背个图书馆。
回到芯片设计本身,l1一般都和core代码绑定在一起,有多少个core就有多少份l1,l1一般不被多个core共享,那么l1的大小直接影响了单个core的大小。另一方面更大的l1也会增加访问延时,就像你从你书包里找书和到图书馆找书的时间差异一样。
为了解决l1缓存不够大的问题,让一组core在share一个l2,同理为了解决l2也不够大的问题,让几组core share一个l3。这就好比建了图书馆让大家共享书,而不是每个人家里都建个图书馆。
如果芯片比较小,l3甚至l2就是最后层级的cache,不用再细分更多层次。就好比在教室范畴内讨论共享书,每个学生有个书包书桌,教室里有个公共书架就够了。但在学校范畴内讨论共享书,就需要有个图书馆是比较合适的。
一般来讲层级越多设计越复杂,收益越小,直到收益为0,
■网友
要确定缓存级数,首先要明确多级缓存的用处。一般来说工程上速度和造价是负相关的,所以L1小L2L3大。但其实他们在绝大多数型号CPU中都是SRAM,本质并没有区别,不像内存和硬盘。L1比其他快的地方在于,一个是layout的时候速度优先,而L2L3一般是以减小面积优先的。还有就是L1离运算单元足够近,可以减小延迟。L2目前是每个核独有的缓存,而L3是多核共享的缓存。至于L4,有一种概念是CPU和GPU共享的缓存,还有概念是多CPU共享的缓存。
【缓存级数是否有上限?】 所以说多级缓存不是那种可以根据速度和成本的不同无限细分的结构。也许我们哪天要用一千个CPU同时运算的话,可能会有L5L6,在这之前还是解决散热问题吧。
■网友
会增加,但应该不会无限制的增加。同意chant zine的观点。补充一个,就是cache一致性协议,在当前多核时代已经很复杂了,忘记在那看的,当前的3级缓存,已经非常复杂,成本就已经非常大了,在增加,一致性就更复杂了
■网友
从cache操作的流程来说是可以的,简单来说反正就是上一层缺失了往下一层走。问题是现在L4一般已经放在cpu片外了,再做大就和内存一样得做成内存条插主板上了,延迟到和内存差不多的时候,干嘛不用内存?sram cache一般每个单元6个晶体管,还有tag,这个做大了,功耗面积太夸张。现在的L4也是用edram做的,再做大直接当内存用不就好了。做成cache还得维护这么多层cache之间的一致性,这个开销和设计复杂度就大了。
推荐阅读
- 傻子当国有银行行长都能赚钱这句话是否是对的
- 网通社|喜欢蔚来的越来越多了 连续四个月交付创新高 你是否愿意放弃特斯拉选择它?
- 豆瓣为啥受到同志社群的欢迎
- |PHEV车款没比较环保,新能源是否存在谎言呢?
- 如果把DNS从godaddy转到DNSPOD是不是所有的二级域名都要重新设置,然后等这个各个ISP的缓存重新解析啊
- 运营商收取的流量费用价格是否合理
- 游戏公司一般咋识别游戏脚本
- 知乎上关于人生经验的介绍是否可能对青少年造成潜在危害
- 是否该停止密码掩饰了
- 织毛衣这种工艺是否会渐渐消失
