关于cpu:如何理解处理器CPU多处理器内核多核

9次阅读

共计 1736 个字符,预计需要花费 5 分钟才能阅读完成。

最早的时候,人们制作了一台计算用的集成电路(Circuit,或者IC),用树脂包起来,做成一个小片片(Chip),把它装在电路板(PCB)上,做成一台计算机(Computer),他们把这个小片片和其它小片片做了辨别,叫它中央处理器(CPU),写软件的人简略叫它处理器(Processor)。

这个阶段,不同的词,它们指的根本是同一个货色。

起初技术倒退了,为了提供更强的能力,他们首先把多个 Chip 装到同一个 PCB 中,这样,就呈现一台计算机,有多个 Chip 的状况,他们把这个叫做 Multi-Processor,MP。如果这些Processor 能够一样看待,不须要每个非凡解决,就叫同构多解决(SMP),否则就叫异步多解决(AMP)。

MP要把电路拉远,没有封装在一台计算机外面高效,所以又有人在一个 Chip 外面,把计算的电路做了多份,每份叫一个“外围”或者你这里翻译为内核了(Core),而仍把封装起来的整个 Chip 叫一个CPU

但软件曾经把一个执行的硬件单元叫 CPU 了(也就是硬件认为的 Core),从这里开始,软件和硬件用的名字指的就不是一个货色了。而对中文来说,软件把操作系统用来治理所有资源的那个被爱护的软件部件,也叫内核(Kernel),而把每个被治理的软件部件,叫解决者(Process,中文翻译为“过程”),这就更加容易引起人们的误会。实际上,无论Kernel 还是 Process,都是软件,是运行在CPU/Core 上的货色,只是软件外部的辨别。就好比咱们人的躯体和思考的关系一样,CPU是躯体,软件是魂魄,Kernel是魂,Process是魄(当然咱们不细究两者确切的语义)

Core越来越多,一个电路曾经很难制作了,他们开始离开造,再封装在一个 Chip 外面,那个独立制作的电路,有人叫它一个 DIE,也有人叫它一个Cluster。软件其实不关怀,软件只关怀一共有多少“CPU”(芯片说的“Core”),但CPU 们地位不一样,导致拜访内存的速度不一样,所以软件会认为他们在不同的“区域”(zone)上。

为了进一步优化 Core,设计师发现Core 的很多电路大部分时候都闲着,他们就让多个核复用这些电路。这样看起来一个硬件的Core,提供了多个软件看到的CPU,他们把这样的CPU,叫“硬线程”(hyper-thread)。

好了,不晓得你作为软件工程师晕掉没有?软件工程师就要求:别那么多废话了,就说你有多少个“假 CPU”吧,我都对立解决好了。

但硬件说,我有 30A cpu10B CPU4C CPU15MPU(微处理器,了解为更简略的CPU 吧),其中 A CPU 里有 2 连个硬线程,三种连法,B 有一个硬线程,四种配置…

软件说,打住打住……算了,这样吧,咱们离开说,你 CPU 都一样给我的,咱们叫它 SMP(留神这个名字的意思曾经和后面不同了),这种CPU 我对立用,内存也对立拜访。如果你不是这样的,我叫它“非对称多解决”(AMP),那个你再一个个跟我说怎么用好了。

读者晕掉没有?有没有都来让我来洗一下脑,都用咱们服务器芯片上的定义吧:)

一个独立的硬件处理单元,被软件看做是“CPU”的货色,咱们叫 Core。但有例外:Core 能够有多个超线程(hyper-thread,HT),如果有 HT,每个HT 就是一个软件看到的CPU,但它并不具备所有计算资源。

多个共享一级 cacheCore,咱们叫一个Cluster

多个 cluster 组合能够被自由组合封装的电路,咱们叫一个超级 CPU CLUSTER(SCCL)。咱们还能够把网卡,sas等货色封装成超级 IO cluster(SICL),从而提供超过PCIE 速度的更靠近 CPUIO设施(比方 100G 的网口)。

把多个 sccl 和 sicl 组合在一起,封在树脂里,咱们称为一个chip

多个 chip 放到一个电路板中,外面的 core 作为 SMP 应用,每个 chip 称为一个 Processor,或者从PCB 的角度,又叫一个插槽(Socket)。

电路板加上各种外网电路,封装成一台服务器,咱们叫一台 Machine,多个Machine 组合成一个柜子,咱们称为一个 Rack。对外做广告,咱们称咱们一个Rack 能够提供超过 1 万个,工作主频 2.6G+Core

正文完
 0