大家好,我是飞哥!
首先祝大家新年快乐,新的一年的技术分享又开始了!
大家都对个人电脑的 CPU 有不少的了解,但对服务器 CPU 没有亲眼见过。所以总会有人会产生疑问,把我自己的 PC 办公电脑上的 CPU 拔下来插到服务器上行不行。
答案当然是否定的。服务器 CPU 和个人电脑中的 CPU 存在很多差别。今天我用一篇文章给大家总结下,服务器 CPU 和个人台式机电脑 CPU 之间都存在哪些的差别。
说明:Intel 官方的文档中用 server 来指代服务器 CPU,会用 client 来指代个人台式机电脑中使用的 CPU。
从外观上来看,server CPU 要比 client CPU 要大不少。
再看官方数据。拿 Skylake 来举例,其四核八线程的 client CPU 芯片 Die 的官方数据是 122.3 mm²,而同代际的 28 物理核的服务器 CPU 的芯片 Die 的官方数据是 694 mm²。
首先是价格。同一个代际的 server CPU 要比 client CPU 要贵很多。
例如 Ice Lake 代际的个人电脑最高端的酷睿 Core i7 1068NG7(4 核 8 线程) 的价格是 426 美元。
而同代际的服务器 CPU 低端的银牌 Xeon Silver 4309Y(8 核 16 线程) 的价格也要 501 美元。最高端的铂金 Xeon Platinum 8380(40 核 80 线程) 的价格达到了 9359 美金。
在个人电脑中,为了支持图形图像显示,是内置了显卡模块的。就是大家平时所说的集成显卡。
如下图是 Intel 2019 年发布的 Ice Lake 代际的 client CPU 的芯片结构图。
图中的 Gen11 Graphics 就是在 CPU 硬件内部集成的显卡,可以满足日常办公时基本的图形图像显示功能。而服务器的 CPU 都是没有这个模块的。
在上面的 Ice Lake(client)的芯片结构图中看到只有 4 个物理核。
而服务器为了应对海量的计算,需要设计更多的物理核进来。下图是 2015 年发布的 Broadwell 代际,型号为 E7-8890 的服务器 CPU。其内部没有集成显卡,但是却放进去了 24 个物理核心。
一般来说,个人 PC 电脑由于不追求稳定性,是不支持 ECC 内存的。
ECC 内存(Error-Correcting Code memory)是一种具有纠错能力的计算机内存。与普通的非 ECC 内存相比,ECC 内存包含了额外的纠错码信息,可以检测和修复内存中的错误数据位。
上图中第一条内存是普通个人台式机内存,总共有 8 个黑色颗粒。而第二条内存是 ECC 内存,它有 9 个黑色颗粒,比普通内存多了一个。飞哥后面会在「开发内功修炼」公众号中单独再写一篇文章介绍 ECC 内存的工作原理。
服务器中全系都是支持 ECC 内存的。而个人台式机绝大部分都不支持,只有最近个别新 client CPU 开始支持 ECC。
另外就是内存条的数量。client CPU 一般只支持 2 - 4 条内存。而服务器单 CPU 则可以支持到 8 - 12 个内存条。总体上最大支持 1 TiB,甚至是 2 TiB 的大内存。
普通的个人电脑都不支持多 CPU 。
而服务器 CPU 为了更大程度地在单服务器内增加算力,还在芯片内设计了 QPI/UPI 模块,用来支持多 CPU 之间的互联。
现在主流的服务器,至少都是采用的双物理 CPU 的设计,当需要访问对方直连的内存时,通过 UPI 总线来进行跨 CPU 内存通信。
最高端的铂金 Xeon Platinum 有 3 条 UPI 总线,最多可以支持八个物理 CPU 互联。换句话说,就是可以在一台服务器中最多能装下八个 CPU。
服务器为了稳定,会主动对 CPU 的频率进行控制到相对比较低的水平。
而个人电脑 CPU 为了追求高性能和更好的游戏体验,而不太关心稳定性,所以出厂的主频设置的会比较高。
总之,个人电脑 CPU 和服务器 CPU 存在非常大的区别,是完全不可以混用的。最后来张服务器机箱的内部图,来直观感受下服务器上 CPU 和 内存条的数量。
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8