CPU个数、CPU核心数、CPU线程数

  我们在选购电脑的时候,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

多核心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通常被认为是芯片级多处理)。


单核多CPU与多核单CPU

一台计算机的处理器部分的架构

单核多CPU,那么每一个CPU都需要有较为独立的电路支持,有自己的Cache,而他们之间通过板上的总线进行通信。(一致性问题)

假如在这样的架构上,我们要跑一个多线程的程序(常见典型情况),不考虑超线程,那么每一个线程就要跑在一个独立的CPU上,线程间的所有协作都要走总线,而共享的数据更是有可能要在好几个Cache里同时存在。这样的话,总线开销相比较而言是很大的,怎么办?那么多Cache,即使我们不心疼存储能力的浪费,一致性怎么保证?

多核单CPU,那么我们只需要一套芯片组,一套存储,多核之间通过芯片内部总线进行通信,共享使用内存。在这样的架构上,如果我们跑一个多线程的程序,那么线程间通信将比上一种情形更快。

多个CPU常见于分布式系统,用于普通消费级市场的不多,多用于cluster,云计算平台什么的。多CPU架构最大的瓶颈就是I/O,尤其是各个CPU之间的通讯,低成本的都用100M以太网做,稍微好一点的用1000M以太网,再好的就用光纤等等,但无论如何速度和通量都比不上主板的主线。所以多CPU适用于大计算量,对速度(时间)不(太)敏感的任务,比如一些工程建模,或者像SATI找外星人这种极端的,跑上几千年都不着急的。而且多CPU架构更简单清晰,可以用消费级产品简单做数量堆叠,成本上有优势。而多核单CPU则适合对通讯I/O速度要求较快的应用,(相同核数量下)成本上也高一些,好像只有在超级计算机里会用到以万为单位的核心数,普通消费级产品也就是到16核封顶了,因为成本控制的原因。

在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有两个

转载于:https://www.cnblogs.com/Snail-1174158844/p/9541425.html

CPU单核多核区别【转载】相关推荐

  1. julia cuda gpu与cpu单核,多核性能简单比较

    GPU为3060 12G, CPU 为 E5-2696V3 双路共36核72线程,Julia配置使用32线程 JULIA_NUM_THREADS=32 测试代码如下 Using CUDA using ...

  2. 多核CPU和单核的区别~

    昨天有同学问我多核cpu和单核的区别大不大,今天简单写一篇回复下吧.大家有其他问题也可以文末给我留言,我会尽量抽时间写文回复. 首先回顾下基本概念,cpu,就是中央处理器,包括运算器和控制器.cpu的 ...

  3. CPU怎么选择,单核cpu与多核cpu的区别

    CPU是一台计算机的运算核心和控制核心.CPU主要功能是解释计算机指令以及处理计算机软件中的数据.CPU由运算器.控制器和寄存器及实现它们之间联系的数据.控制及状态的总线构成. cpu怎么选 1.核心 ...

  4. 计算机运行程序多核和单核,电脑CPU单核与多核的区别

    满意答案 qinxiaoliao 2013.01.26 采纳率:54%    等级:12 已帮助:13103人 双核的优势不是频率,而是对付同时处理多件事情.单核同时只能干一件事,比如你同时在后台BT ...

  5. 多CPU,多核,多进程,多线程以及进程和线程的简单理解以及区别

    当面临这些问题的时候,有两个关键词无法绕开,那就是并行和并发. 首先,要先了解几个概念: 1.进程是程序的一次执行. 2.进程是资源分配的基本单位. 3.一个进程可以包括多个线程. 4.在单CPU计算 ...

  6. 多核计算机是指有多个cpu,多核和多个CPU有什么区别?

    多核和多个CPU有什么区别? 多核和多个CPU有什么区别?首先让我们了解以下两项: 什么是多核CPU?简单的理解是,我们将多个内核加载到一个程序包中,让用户了解这是一个处理器. 这样做的好处是,最初在 ...

  7. 多线程与单核cpu,多核cpu概念

    1.多线程在单核和多核CPU上的执行效率问题的讨论  a1: 多线程在单cpu中其实也是顺序执行的,不过系统可以帮你切换那个执行而已,其实并没有快(反而慢)  多个cpu的话就可以在两个cpu中同时执 ...

  8. 对多线程程序,单核cpu与多核cpu如何工作相关的探讨

    对多线程程序,单核cpu与多核cpu如何工作相关的探讨 我们程序员在编码的时候,涉及到技术方案时,往往会忽略掉代码对性能方面的影响,或者没有足够的敏感度来帮助自己判断自己的技术方案对系统性能造成的影响 ...

  9. 对于多线程程序,单核cpu与多核cpu是怎么工作的

    此文中的大部分资料来自于网络上,我只是觉得把有道理的整理一下,方便以后查阅. 1.多线程在单核和多核CPU上的执行效率问题的讨论 a1: 多线程在单cpu中其实也是顺序执行的,不过系统可以帮你切换那个 ...

最新文章

  1. YSlow使用指南_最新2.0使用指南中文版
  2. 运行返回签名不正确_不正确运行废气治理RTO设备容易引起爆炸,注意事项有哪些?...
  3. OpenCV3计算机视觉+Python(五)
  4. 【NLP】TransformerXL:因为XL,所以更牛
  5. VS2010-MFC(常用控件:静态文本框)
  6. 用“Web的思想”做PC客户端
  7. ASP.NET Core on K8S深入学习(3)Deployment
  8. B站疯传!堪称最强!一整套架构实战资料,白拿不谢!
  9. 简单的笔记本JAVA_超简单笔记本改造nas--一个萌新的摸爬滚打
  10. android 弹出键盘引起的问题
  11. 图解TCPIP-MAC地址(数据链路层)
  12. spring mvc controller间跳转 重定向 传参
  13. fineuploader php服务端
  14. 老程序员被裁员,面试半年未果,同行:都四十了还是码农,怪谁?
  15. 设计思想之高内聚低耦合
  16. 招聘人才的网站(杭州)
  17. python人口普查数据数据分析_2010年第六次人口普查数据分析
  18. 曲苑杂坛--清除维护计划产生的日志文件
  19. java程序定时运行
  20. Docker 配置 国内 阿里云、网易云 镜像加速!

热门文章

  1. 自己写的一段预测双色球号码的Java代码
  2. Cordova应用的JavaScript代码和自定义插件代码的调试
  3. 怎么实现阵列装配_第九篇:磁盘阵列和群晖SHR
  4. linux 怎么重装libaprutil,Apache安装出错_cannot install `libaprutil-1.la' to a directory
  5. 自建服务器 下bt,使用Docker安装OpenTracker,自建BT Tracker服务器
  6. 删除隐藏版本信息 版本回退_Qt如何给程序添加版本信息
  7. mongodb存list_查询 MongoDB 子文档的 List 字段
  8. php怎么解析xml,使用PHP快速解析复杂的XML文件
  9. python filestorage对象怎么转化成字符串_Python面试的10个常见问题及答案,检验你的学习成果吧!...
  10. 园林计算机制图在计算机上的应用,浅谈计算机园林效果图在园林景观设计中的运用...