上篇写了,三级缓存对CPU的重要性。但是因为模块化,三级缓存就不能做的大。比如这是AMD初代的旗舰1700X,仔细看,两个模块很明显。8核心16线程的ryzen 1700X就是两个4核心的CCX组成的。其实2600X或者2700X也是这个模样。

打开网易新闻 查看精彩图片

那,为啥,三级缓存不能做的大呢?因为缓存太占用面积了。对于芯片来说,每一平方毫米都是钱,钱,钱。三级缓存有多大呢?可以给一张图直观看看。

打开网易新闻 查看精彩图片

看到没,三级缓存占据了芯片面积的三分之一还多辣。AMD的锐龙123代就是4核心一个模块,每个模块内一多半都是三级缓存,这就带来了成本问题。为啥三级缓存那么占据面积呢?因为它真的就是高速内存条的那种类型,每个区块都一样,就是存放数据的内存。比如1Kb,就是1024个位地址Byte,每个位地址占用了8个内存位bit,每个内存位都是要么0要么1的二极管设计,搭配少量逻辑门的三极管。4个核心总共16m的三级缓存,足足是可存放1.34亿个二极管位置的地址!在加上有命中的,查询的其他设计,晶体管数量不下3亿。并且还要分区,中间有隔离,你觉得它有没有那么大?

这就产生了一个问题,每个核心的L3缓存容量不能太大。但是同样,如果L3缓存共享呢,理论上不是每个模块内都可以获得4倍的吞吐量提高了?如果这个核心数翻倍成8核,16核,32核。。。WOW!Awesome Man!这是非常amazing的!

打开网易新闻 查看精彩图片

英特尔:不急,跟他耍耍!

我们可以对比下英特尔的8核结构,比如这个更老的英特尔6核CPU。注意了,1700X是8核心,英特尔i7-3960X是6核心。看看它们的区别吧家人们!建议点开大图。

打开网易新闻 查看精彩图片

英特尔这环形总线才真的是三级缓存共享了,6核心共享15M三级缓存,理论上每个CPU都能访问这些缓存,就是把每个CPU的缓存扩展了6倍。但是AMD做不到啊,因为模块化,还是模块化。就算堆了128个核心,也不过是32个模块,还是4个核心共享16M缓存,每个核心永远能动用的最大缓存,就是16M。英特尔不一样,核心越多,每个核心能访问的缓存更大,8核就是20M,16核就是40M。。。但是,英特尔的问题是核心堆不了多少,高于10个核心,延迟大,发热大,比如11代酷睿i9。

这就是一个田忌赛马的故事。AMD宣传多核,英特尔永远宣传单核性能跟超线程能力。它们的激烈竞争,才有了我们消费者的利好。

关注我吧,有干货,有趣,还说人话的科技区文笔贡献者。

这就是最直观的AMD单核捉急的因素。其实还有其他,比如内部设计这种就不提了。越写越多,就很无聊了呢。后面可以单独开坑。

那下一期,就进入了AMD锐龙5系跟5800X3D的大进步上来了。