便宜坑穷人,小主机到底要不要买?咱们从根上聊聊

科技布鲁布鲁泡 2024-04-24 07:21:51

昨天说J1900的时候,有人这样回复:

“它的功耗才10W!还有四个核呢”

这是相当典型的被广告洗脑的结果。在CPU核心大战的时候不管是Intel还是AMD都会给用户灌输一个概念,也就是核心多的CPU性能就很强。以至于很多人在购买CPU的时候,就把核心数量作为选择CPU的一个主要考虑指标。

其实这种判断是要有一个前提的——在相同的核心的前提下,核心越多性能才越好。

但什么是“核心”,这件事很少有人真正的给大家来讲。

CPU在处理数据的时候实际上都是利用门电路做最简单的二进制运算计算。这件事如果不明白,我们可以去看《三体》,大刘对门电路的运算原理讲得还是很清楚的。

门电路的输入端的二进制状态依据门电路的类型决定了输出端的二进制状态。最基础的运算就从门电路开始了。

这是一个加法器的门电路它可以计算二进制加法,原理图是这样,但原理图只是原理而已,真正的实现计算功能还需要在CPU的电路中将这个原理图实现成一个实实在在的电路。

这个加法器如果手搓的话基本上就是下面的样子:

通过拨动红色的A,B两个开关设置二进制数,可以在中间的5个蓝色LED上以亮/灭显示出4位二进制加法的结果。

四层叠在一起的电路板,每层完成一个门电路的功能。当然了,这是全用晶体管实现的案例,在现在,利用集成电路的情况下,这套装置的四层板子可以用一块德州仪器的SN7483A四路正门电路取代。也就成了下面的样子。

在CPU的电路里面实际上也是需要这个电路的,例如下面这个古老的8086 CPU:

在图片的左上角有一套加法器(Adder)电路这套加法电路几乎占据了这块8086的1/20的面积。

CPU处理数据无非是两种方法,第一是利用电路,例如我们要算一下 0101+0001的结果,就可以通过加法器来实现最终输出1010的结果;另一种是通过算法来实现,例如我们需要计算0010*0011 ,现在这台计算机是没有乘法电路的,实际上在计算乘法的时候是做加法,乘多少就加多少次,于是上面的式子就成了(0010+0010)+0010=0110,当然了,这种算法比较笨,其实是可以利用二进制的移位操作 0011<<0010 = 0110的,也就是左移一位。

我们可以看到CPU用简单的算法就可以实现原本没有的功能,只不过在算乘法的时候计算量要比单纯算加法的时候计算量要大很多。如果从电路设计和CPU的成本考虑,我们可以不要乘法电路,但如果计算乘法很多那么只依靠加法器来算乘法无疑就拖慢了这个CPU的效能。

现在的问题是“有没有乘法器呢?”,答案是有!

这是一个4位二进制乘法器的逻辑图,转化为电路图的话就是下面这一大张:

刻在CPU的电路后也是一大片的面积。当这个电路铺设到CPU中的时候,原本n个时钟周期才能计算完的乘法,也会像加法一样在一个时钟周期内直接完成。

现在CPU的厂商就会面临一个问题——是增加成本把CPU卖的更贵,让用户在一个时钟周期内得到乘法结果?还是钚增加乘法电路,卖得更便宜,让用户计算的时间成倍增加?

这是一个两难的选择题对吧?但成年人的世界不做选择,两个都做,更贵的CPU中增加了乘法电路,在相同的主频下计算效率更高,便宜的CPU不做乘法电路,在相同的主频下效率低一些。

看到这里,我们就应该明白不同设计的CPU的效能是不一样的,其根本原因就是里面有没有具备相应功能的电路。但我们得明确一点——若干的功能封装在一起之后就叫做“CPU核心”。

这时候我们看一个例子,CPU 核心A有一个四位乘法电路,CPU核心B只有加法累加电路,

那么一个CPU里面只有一个核心A另一个CPU中却有4个核心B,如果忽略时钟和传输损失的话,在算2*4的时候两个CPU的效率可以看作是相同的,担任如果计算2X8呢后者虽然有4个核心,但运算效率也就只是前者的一半了,再算2X16呢?后者就只有前者的1/4了。其实CPU的乘法计算并不会有并行计算的功能,因此,后者其实只是前者的1/16的效率。

这个例子给大家举得有一些极端,但CPU核心内电路的规模和功能决定了CPU本身的计算效率。如果单看J1900这样的10W 4核心的CPU这两个指标看似很不错,但它的4核心其实真正的效率要远远低于具备更完善的电路的酷睿CPU。

给个例子:

截取了一个官方数据的对比,同样是2013年年底上市的两个Intel CPU,i5-4300和前面所提到的J1900。

你会发现大多数i5所支持的特性在J1900上是没有支持的。例如AES——高级加密标准。AES也是一个电路:

不支持就是没有,在J1900上压根就没有铺设AES电路。那么对一个数据串的SHA256等等操作,在i5上可以在一个时钟周期内完成核心计算,而在J1900上则需要大量的时间周期才能完成。

AES干嘛用的呢?大量网络数据在传输的时候的加密操作,大量磁盘读写要验证的签名操作实际上都是依靠AES功能进行加速的。

CPU便宜、功耗低自然有自己的原因。把一些电路去掉,本身就是降低CPU功耗和成本的方法。这个方法在CPU厂商设计CPU的时候屡试不爽。也正因为有这种方法的存在,市面上才有了类似于赛扬、J1900等等很便宜的CPU存在。

但这类CPU本身是在细分市场使用的,类似于J1900,主要面对的对象是工控机、嵌入式系统。自然性能弱一些、功耗低一些都是这类CPU目标市场所决定的。

反过来看,J1900并不是为完整的通用计算设计的CPU,即便是可以把系统安装进去,真正的效能也就十分拉胯了。

所以买不买这种CPU的小主机呢?iN的建议是不要。道理就是上面的道理。实际上,10W 4核心的诱惑力也是不存在的,这个10W是TDP热设计功耗,和真正的能效比是两码事,更复杂的CPU在1W的功耗上能做100件事,而这种CPU在1W的功耗上只能做8件事,这就导致了在阶段性上也并不会更省电。低价格但更低效率——正所谓便宜吃穷人……

不过,iN自己是小主机的爱好者,家里很多小主机在同时运行。但这些小主机都只是承担一些小程序的日常运行,例如监控个网络、控制个智能家居……这种运行实际上就是J1900本身的设计目的。而一味的看重这种东西便宜、低功耗把它们用在了不该用的地方其实就是一种错觉了。

1 阅读:3

科技布鲁布鲁泡

简介:感谢大家的关注