萌新扫盲10—CPU知多少~

原创 2018年04月16日 20:42:31

在选购计算机时,CPU是需要考虑到核心因素,它决定了电脑的性能等级。CPU从早期的单核,到现在的双核,多核。CPU除了核心数之外,还有线程数之说,下面就来解释一下CPU相关知识:


CPU个数:即CPU芯片个数

CPU核心数:指物理上,即硬件上存在着几个核心。例:双核就是包括2个相对独立的CPU核心单元组,四核就包含4个相对独立的CPU核心单元组。

线程数:一种逻辑的概念,简单地说,就是模拟出的CPU核心数。例如:可以通过一个CPU核心数模拟出2线程的CPU,即这个单核心的CPU被模拟成了一个类似双核心CPU的功能。我们从任务管理器的性能标签页中看到的是两个CPU。 

就像现在使用的Inte l赛扬G460是单核心,双线程的CPU;Intel 酷睿i3 3220是双核心 四线程;Intel 酷睿i7 4770K是四核心 八线程;Intel 酷睿i5 4570是四核心 四线程等。 对于一个CPU,线程数总是大于或等于核心数的。一个核心最少对应一个线程,但通过超线程技术,一个核心可以对应两个线程,也就是说它可以同时运行两个线程。

 注:CPU线程数概念仅针对Intel的CPU才有用,因为它是通过Intel超线程技术来实现的,最早应用在Pentium4上。如果没有超线程技术,一个CPU核心对应一个线程。所以对于AMD的CPU来说,只有核心数的概念,没有线程数的概念。


CPU之所以要增加线程数,是源于多任务处理的需要。线程数越多,越有利于同时运行多个程序,因为线程数等同于在某个瞬间CPU能同时并行处理的任务数。 因此,线程数是一种逻辑的概念,简单地说,就是模拟出的 CPU 核心数。一个核心最少对应一个线程,但英特尔有个超线程技术可以把一个物理线程模拟出两个线程来用,充分发挥 CPU 性能,即一个核心可以有两个到多个线程。

设计决定,intel给他的x86设计了逻辑线程=2*物理核心数,ibm的power8是逻辑线程=8*物理核心数

Hyper-Threading,超线程


多核心cpu主要分原生多核和封装多核。

  原生多核指的是真正意义上的多核,最早由AMD提出,每个核心之间都是完全独立的,都拥有自己的前端总线,不会造成冲突,即使在高负载状况下,每个核心都能保证自己的性能不受太大的影响,通俗来说,原生多核的抗压能力强,但是需要先进的工艺,每扩展一个核心都需要很多的研发时间。
  封装多核是只把多个核心直接封装在一起,比如Intel早期的PD双核系列,就是把两个单核直接封装在一起,但两核心只能共同拥有一条前端总线,在两个核心满载时,两个核心会争抢前端总线,导致性能大幅度下降,所以早期的PD被扣上了“高频低能”的帽子,要提高封装多核的性能,在多任务的高压下尽量减少性能损失,只能不断的扩大前端总线的总体大小,来弥补多核心争抢资源带来的性能损失,但这样做只能在一定程度上弥补性能的不足,和原生的比起来还是差了很多,而且后者成本比较高,优点在于多核心的发展要比原生快的多。

 

核心(Die)又称为内核,是CPU最重要的组成部分。CPU中心那块隆起的芯片就是核心,是由单晶硅以一定的生产工艺制造出来的,CPU所有的计算、接受/存储命令、处理数据都由核心执行。各种CPU核心都具有固定的逻辑结构一级缓存二级缓存、执行单元、指令级单元和总线接口逻辑单元都会有科学的布局。

双内核应该具备两个物理上的运算内核

HT技术超线程技术,是造就了PENTIUM 4的一个辉煌时代的武器,尽管它被评为失败的技术,但是却对P4起一定推广作用,双核心处理器是全新推出的处理器类别;HT技术是在处理器实现2个逻辑处理器,是充分利用处理器资源,双核心处理器是集成2个物理核心,是实际意义上的双核心处理器。

多核心处理器英语:Multi-core processor),又称多核心微处理器,是在单个计算组件中,加入两个或以上的独立实体中央处理单元(简称核心,英语:Core)。这些核心可以分别独立地运行程序指令,利用并行计算的能力加快程序的运行速度。只有两个核心的处理器,称为双核心处理器(dual-core processor)。“多核心”通常是对于中央处理器(Central Processing Unit,CPU)而论的,但是某些时候也指数字信号处理器(DSP)和系统芯片(SoC)。

通常,把将两个或更多独立处理器封装在一个单一集成电路(IC)中的方案称为多核心处理器;而封装在不同IC中的独立处理器形成的计算机系统被称为多处理器

多核心处理器!=多处理器

多核心处理器可以在不将每个核心分别独立物理封装的情况下进行多任务处理(线程级并发处理Thread-Level Parallelism,TLP),这种形式的TLP通常被认为是芯片级多处理)。


在Windows中,用cmd命令中输入“wmic”,在出现的新窗口中分别输入:

“cpu get Name”

“cpu get NumberOfCores”

“cpu get NumberOfLogicalProcessors”即可查看物理CPU数、CPU核心数、线程数。

如下图:


Name:表示物理CPU数 
NumberOfCores:表示CPU核心数 
NumberOfLogicalProcessors:表示CPU线程数
注释:VM虚拟机中的CPU选择的核心数实际是代表线程数。

输入“cpu get *”也可

2.在cmd命令中输入“systeminfo”,以下信息表示物理CPU有两个




Python3萌新入门笔记(1)

在之前的教程中,我们已经学会了安装Python以及PyCharm。在这里,我们打开PyCharm,它是一种Python IDE(集成开发环境)。在这个软件中,我们来学习Python的基础知识。首先,我...
  • xingbb99
  • xingbb99
  • 2018-01-29 09:28:59
  • 228

作为一个萌新程序员学习者

又到了一周一次总结的时间了,这周的我感觉到了完全没办法去静静的去学习,老师在上面讲课的时候,表示很明白。然而当自己课下去写作业的时候发现完全不知道怎么去开头。班上有几个学习能力超强的,一个数学专业(逻...
  • weixin_40836026
  • weixin_40836026
  • 2017-11-20 20:38:58
  • 68

一只萌新的编程前准备

第一天 对照着老师给的示例程序写出了hello world超级开心~然后莫名其妙的遇到一个情况,在写了using namespace std的情况下,cin cout仍然无法为vs c++识别,最后那...
  • Mr_Fox_000
  • Mr_Fox_000
  • 2017-09-14 19:23:23
  • 138

Python3萌新入门笔记(12)

我们在日常生活中,往往需要对某件事情进行情形的判断,并且在符合某种条件的情形下,做出不同的反应。 比如,如果身体不舒服,就去医院看病。(唯一的一种情形) 又比如,如果喜欢苹果产品,就买iPhone...
  • xingbb99
  • xingbb99
  • 2018-01-30 09:35:44
  • 39

【转载】萌新也能懂的现代 JavaScript 开发

本篇文章的目标便是提供一个有关 JavaScript 工具进化的历史视角,看看它们是怎么一步一步演变到如今 -- 2017 年的这个样子的。开始的开始,我们将像最原始的恐龙家族一样建一个网站 -- 不...
  • lichking11
  • lichking11
  • 2017-11-23 09:26:12
  • 109

zstu 萌新吃果果

萌新吃果果 Description 开学第一天,萌新要排排坐吃果果啦,KI要求萌新们坐成一排。 现在萌新们必须要按KI的秩序表一个一个地就坐。 萌新中包括男孩子、女孩子和扶她。 男孩子会毫不犹豫地...
  • blessLZH0108
  • blessLZH0108
  • 2016-11-23 20:44:06
  • 286

Python3萌新入门笔记(24)

在学习新的内容之前,我们对前面所学内容做一些补充。 第一部分,变量的赋值与交换。 一、链式赋值(Chained Assignment) 打开Python控制台,在提示符后方我们进行下面的操作。 ...
  • xingbb99
  • xingbb99
  • 2018-01-31 10:01:22
  • 61

操作系统概念扫盲

作为一名计算机专业的学生,对底层的东西都会比较感情兴趣。寒假看了《操作系统真象还原》这本书,作者写的很好,感觉不做下笔记的话对不起作者。软件是靠硬件运行的,软件能实现什么功能,很大程度上取决于硬件提供...
  • Hemk340200600
  • Hemk340200600
  • 2017-02-07 15:39:07
  • 793

iPhone游戏中模拟摇杆的教程

很多比较激烈,操作频率很高的游戏中,使用加速度感应往往不如用模拟摇杆操作。今天带来CocoaChina会员 “qwertyuasdf” 的原创教程:模拟摇杆的简单实现。 作者博客原文:http:/...
  • Black_House
  • Black_House
  • 2014-12-11 15:37:02
  • 379
收藏助手
不良信息举报
您举报文章:萌新扫盲10—CPU知多少~
举报原因:
原因补充:

(最多只允许输入30个字)