百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

这些是商家不告诉你的,流行多核处理器的真正原因

nanshan 2024-10-19 06:36 16 浏览 0 评论

文/M叔

图侵删


我敢跟你打个赌,你问身边的熟悉的人:"买手机或者电脑,处理器是单核好还是双核好?"

十个人起码有九个都会回答"肯定双核啊",理由通常是"人多力量大之类的"。

如果按照这逻辑8核一定比4核的快,16核一定比8核快,以此类推,核是越多越好。

可是,我得告诉你情况不是这样的。


CPU发展的困境


我们买电脑时,常常看到上面图片里的参数,如果只能选一项的话,其中CPU主频这栏是比较直观的反应CPU快慢的参数。(虽然这样理解不够全面,但是好理解)

CPU的主频,即CPU内核工作的时钟频率,一般以GHz(1GHz=1000MHz)为单位。也可以理解成CPU内数字脉冲信号振荡的速度,比如,1GHz指数字脉冲信号在每秒钟振荡一亿次。

要知道,三十多年前,英特尔在1983年能做出来的最好的CPU主频才20Mhz,几十年时间里CPU技术在快速发展,2000年英特尔就能做出2000Mhz的CPU了,十七年的时间就主频率上增加了100倍!

你或许听过摩尔定律,就是说"所有的芯片每18个月之后,它的运算速度要增加一倍,这个定律就是英特尔的创始人提出来的。"


CPU的发展一直遵循摩尔定律,但是摩尔定律到了近几年渐渐不灵了。在2017年,英特尔单核CPU最高主频速度只达到4000Mhz,十七年的时间频率上比2000年只增加了1倍。尤其是最近3年,频率上可以说几乎没怎么增加。


CPU的发展好像遇到了技术瓶颈,那么是怎么的技术难题呢?


CPU的技术难题之一发热

只从发展时间和主频值看,大家都能明显感觉英特尔的CPU技术已经发展得很快了。但是应用开发商们,一旦看到CPU的性能有冗余,一定会在冗余的算力基础上开发更多功能的软件,以此来满足消费者多样性的需求。这样就倒逼CPU的生产企业,不断开发出更快更好的处理器芯片。


于是,芯片设计企业想方设法的把频率提升,遗憾的是,随着主频率的提升,CPU的发热也按正比例提升,主频提升一倍,发热也提升一倍,而且提升频率的过程中CPU出现工作不稳定的情况,处理的程序要么出现乱码,要么死机。

很多芯片工程师提出提升电压解决CPU不稳定的问题,但是电压提升后对CPU的发热,简直是火上浇油。CUP发热比之前还高,将电压增加两倍,发热量是之前的4倍。

让芯片企业十分为难的是,现在为了满足客户的需求,把速度提升了一倍,为了保证稳定,把电压提升了1倍,叠加后总的结果就是,发热是从前的8倍。


一倍速度的提升,换来8倍发热,本来之前的CPU发热就是难题,光加风扇肯定是不行的。

况且按照这个情况,CPU速度几轮提升后,发热的量简直不敢想象,可能一开机CPU就烧坏了。


硅基芯片的极限

工程师根据失败经验和理论明白了,应付发热暴增的强效方法是缩小芯片尺寸

要说明白这个原理,就要提到MOSFET的结构,不过这个太专业了,涉及很多陌生概念,今天我们就简单理解一下:

我们把半导体的开关管想象成一道闸门,那么闸门越大,每次打开关上耗费的能量就越多,这些能量最终都会变成热能。如果闸门做得越小,每次开关耗费的能量就少多了。

以前CPU 的核心大概就是平面1.5平方厘米的硅片制作而成,一张12寸直径的硅片圆盘大约值2.8万美元,缩小尺寸意味着一片硅片圆盘上可以切出更多的CPU核心。

所以,缩小CPU的尺寸,不光能解决发热问题,还能大幅度降低了成本,又提升了CPU的频率,简直是一举三得。


但是,到2007年开始,缩小CPU尺寸这一招也接近极限了。

我们现在的手机上的处理器上,大致有100亿个晶体管,这些晶体管是CPU算力的基础。刚刚我们说了,CPU的核心是个平面为1平方厘米左右的硅片,就这么大个东西上要做100亿个晶体管,你可以想象每个晶体有多小了。如果晶体管再小下去,很可能就会出现"量子效应"——也就是说,芯片会变得不稳定、不可靠。


越来越多的核心的真正原因

基于上面的原因,CPU的企业们想到的办法就是多核心来增加算力

为了多核处理器能够正常工作,程序员在设计计算机语言和应用程序时,是尽量把单一任务拆分成多线程的任务,以此来平衡处理器之间的算力。

举个例子,我们要给一张照片做一键美颜,一个CPU处理当然没问题,16个也行,只要把这个任务分成16份就可以了。

不过多核心处理器方案也有它的弊端

1.有相当多任务压根就没法完成多任务,只能交给一个核心完成。

2.多核心有算力浪费,假如单个4GHz的核心能提供1个单位的算力,4个3GHz的核心性能平均是2个单位的算力,相当于单个核心8GHz的水平了。

3. 从单核增加到双核是性能提升最明显的,再增加到四核,八核,甚至二十核,带来的提升就越来越不明显,这不光是因为指令中确实有相当多的压根没法转化为多线程。还因为从单一任务分成多线程任务,再分配到每个处理器,最后再整合结果输出,这一系列多出的步骤本身就会浪费算力。


当知道这些后回头看数码厂商,其实也挺难的,明明是整个行业遇到了技术难题,被迫用多核,又不得不营销多核的出色计算力。


结语

好了,我们再回头看看文章开头的问题:"买手机或者电脑,处理器是单核好还是双核好?"


多核处理器并不能发挥1+1大于2的算力,多核也不是越多越好,它有它的极限。而且假如处理器行业,从根本上解决了发热问题,那么其实单核比双核要好。

比如说,我以前文章介绍过,石墨烯材料中的"魔角"——当两层石墨烯之间有一个特别小的夹角的时候(大概1.1°),两层石墨烯的薄膜之间会交替出现超导和绝缘的区域。这种材料如果开发出来后,由于它超导的特性,基本上就不会有发热问题。


我们之所以会脱口而出,认为多核更好,其实商家营销的结果。当然并不是商家更聪明,只是他们知道的更多。不过有了这些CPU的小知识,以后再有商家给你吹,他家的产品是16核的,多么快,性价比多么高,你会更理智的看待了。

相关推荐

0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)

文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...

ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes

为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...

生产环境starrocks 3.1存算一体集群部署

集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...

在CentOS上添加swap虚拟内存并设置优先级

现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...

国产深度(deepin)操作系统优化指南

1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...

postgresql-15.4 多节点主从(读写分离)

1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...

Docker 容器 Java 服务内存与 GC 优化实施方案

一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...

虚拟内存设置、解决linux内存不够问题

虚拟内存设置(解决linux内存不够情况)背景介绍  Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...

Elasticsearch性能调优(5):服务器配置选择

在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...

Es如何落地

一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...

针对Linux内存管理知识学习总结

现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...

MySQL进阶之性能优化

概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...

Linux Cgroups(Control Groups)原理

LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...

linux 常用性能优化参数及理解

1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...

如何在 Linux 中使用 Sysctl 命令?

sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...

取消回复欢迎 发表评论: