物理服务器中的CPU die

最近在看一个开源项目,里面提到建立单服务器的资源拓扑,包括NUMA node、Dies、Socket这三个概念,这个Dies是第一次听说,搜集整理了一些关于 Dies的资料。

Dies是处理器在生产过程中引入的概念,总的来说,Die或者CPU Die指的是处理器在生产过程中,从晶圆(Silicon Wafer)上切割下来的一个个小方块(这也是为啥消费者看到的CPU芯片为什么都是方的的原因),在切割下来之前,每个小方块(Die)都需要经过各种加工,将电路逻辑刻到该Die上面。对于主流的CPU厂商Intel和AMD而言,他们会将1个或者N个CPU Die封装起来形成一个CPU Package,有时候也叫作CPU Socket,如下图所示:

avatar

由于CPU Die的制作工艺及其复杂,导致CPU Die的大小会很大地影响到CPU Die的良品率,即CPU Die的大小越大,则CPU Die出错的概率越高,良品率也越低,相应的成本也越高。

在服务器领域,Intel Xeon系列的高端处理器会尽量地将整个CPU Socket做到一个CPU Die上,导致其相应的CPU Die的大小都比较大,这也是其价格昂贵的一个原因。将整个CPU Socket上的东西都做到一个CPU Die上的好处是CPU内部之间各个组件的连接是通过片内总线互联,有更多的资源可以相互共享,这样整体的性能能够更高。

而对于AMD的EYPC CPU而言,它的每个CPU Socket由4个CPU Die组成,每个CPU Die中包含有4个CPU内核,如下图所示:

avatar

CPU Die之间通过片外总线(Infinity Fabric)互联,并且不同CPU Die上的CPU内核不能共享CPU缓存,而单个Die的Xeon处理器内和所有CPU内核其实是可以共享CPU的第三级缓存(L3 Cache)的。