Differences between physical CPU vs logical CPU vs Core vs Thread vs Socket

物理CPU (physical CPU)、 逻辑CPU(logical CPU)、虚拟CPU(virtual CPU)、核数(core)、线程数(thread)、颗数(socket)等。

  1. 多个 CPU 芯片插在插槽上,通过系统总线通信。慢!
  2. 为了解决 1 中问题,发明了 Hyper Threading(超线程技术),在 CPU 芯片内部具有多份其它计算资源(寄存器、缓存)供 CPU 能够准备多个工作,通信在 CPU 芯片内部,如果某个进程阻塞,那么换另一个进程占用 CPU 计算即可。(提供了两个虚拟或者lCPU,让人误以为“同时”执行两个进程,该技术无法提供两个 CPU 算力,也并非真正意义上的并行计算),超线程技术并不是两个独立的物理处理器。
    因此,从Linux或者其他操作系统的角度来看:一个单核处理器却展现出拥有两个处理器的能力。 只不过这两个逻辑cpu运行在同一个物理cpu内部而已。

Hyper Threading

说一些对这张图的理解,在一个物理cpu内部,存在两组寄存器,分别属于一个逻辑CPU,但是只存在一组ALU(算数逻辑单元),如果每一个逻辑cpu上运行一个进程,那么这两个进程间的通信就完全在CPU内部,无需通过系统总线,但是从唯一的ALU上我们也能看出来实际上是无法真正意义上同时执行两个进程的,(因为运算单元只有一个)

  1. 实现在同一个芯片上存在多个处理器。在同一个芯片上的每一个处理器称之为 core,芯片内部存在总线沟通各个核。

注:我们常说的几颗几核的含义: Core(核)代表一个独立的cpu, Socket(颗) 本意是插槽,代表一个主板上的芯片,多核架构就是在一个芯片上放多个处理器,就像上面说的那样, 所以如果我们说2颗4核,代表主板上有2个芯片插槽,每个芯片上存在4个cpu,所以我们有8个物理cpu,如果存在超线程,我们还可能多出8个逻辑cpu,总共16个逻辑cpu。

从性能上来说, 一个一颗四核的处理器要更优于四个一颗一核(也就是传统的单核CPU)的处理器。

1 lCPU = 1 thread

有时候我们会发现处理器标称每核有4线程,2线程或类似的说法,简单来说这就是指每核cpu上能够“同时”运行的线程或进程数(注意同时依旧加了引号),基本上就是一个逻辑cpu(LCPU)能运行一个进程或线程。如果每核能执行2个或更多的线程,那么一定使用了超线程技术,否则每一核就只能运行一个线程或进程。

lCPU or vCPU

虚拟CPU基本等同于逻辑CPU,但是存在一点不同:虚拟CPU更多的是限定在计算虚机化的语境内。一个宿主机上的逻辑cpu就映射为一个虚拟机内部的虚拟CPU,所以他们基本上是同一个术语。

jiaming@jiaming-System-Product-Name:~$ lscpu
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              4
On-line CPU(s) list: 0-3
Thread(s) per core:  1 # 每核可以运行1个超线程,即每个core对应1个lcpu
Core(s) per socket:  4 # 4 cores/颗 4个alu
Socket(s):           1 # 1 颗 (one chip)
NUMA node(s):        1
Vendor ID:           GenuineIntel
CPU family:          6
Model:               158
Model name:          Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz
Stepping:            9
CPU MHz:             838.802
CPU max MHz:         3800.0000
CPU min MHz:         800.0000
BogoMIPS:            6799.81
Virtualization:      VT-x
L1d cache:           32K
L1i cache:           32K
L2 cache:            256K
L3 cache:            6144K
NUMA node0 CPU(s):   0-3
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d

Physical CPU、Logical CPU、Core、Thread、Socket相关推荐

  1. JAVA day24,25,26 异常(try、catch、finally、throw、throws),线程(Thread、Runnable、Callable)

    一.异常 异常 :指的是程序在执⾏过程中,出现的⾮正常的情况,最终会导致JVM的⾮正常停⽌. 在Java等⾯向对象的编程语⾔中,异常本身是⼀个类,产⽣异常就是创建异常对象并抛出了⼀个 异常对象.Jav ...

  2. 三、安装 Entity Framework Core

    文章目录 一.先决条件 二.获取 Entity Framework Core 运行时 三.获取 Entity Framework Core 工具 一.先决条件 EF Core 是一个 .NET Sta ...

  3. linux中物理cpu、逻辑cpu以及core、vcore

    linux中物理cpu.逻辑cpu以及core.vcore linux查看物理cpu: cat /proc/cpuinfo | grep 'physical id' | sort | wc -l li ...

  4. Linux下关于物理CPU、逻辑CPU和CPU核数、超线程

    1.概念 (1) [物理CPU数] :实际Server中插槽上的CPU个数,物理cpu数量可以数不重复的 physical id 有几个 (physical id) (2) [CPU核数]:单块CPU ...

  5. 转载大神的 Linux查看物理CPU个数、核数、逻辑CPU个数

    Linux查看物理CPU个数.核数.逻辑CPU个数 CPU总核数 = 物理CPU个数 * 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数 查看CPU信 ...

  6. Linux下区分物理CPU、逻辑CPU和CPU核数

    Linux下区分物理CPU.逻辑CPU和CPU核数 ㈠ 概念 ① 物理CPU 实际Server中插槽上的CPU个数物理cpu数量,可以数不重复的 physical id 有几个 ② 逻辑CPU Lin ...

  7. Linux下查看物理CPU、逻辑CPU和CPU核数

    Linux下查看物理CPU.逻辑CPU和CPU核数 1.概念 物理CPU:实际Server中插槽上的CPU个数. 物理cpu数量:可以数不重复的 physical id 有几个. 2.逻辑CPU Li ...

  8. Linux查看CPU型号、物理CPU个数、核数、逻辑CPU个数

    Linux查看CPU型号.物理CPU个数.核数.逻辑CPU个数 前言 指令 查看CPU信息(型号) 查看物理CPU个数 查看每个物理CPU中core的个数(即核数) 查看逻辑CPU的个数 前言 CPU ...

  9. Linux系统操作(21):物理cpu数、cpu核数、逻辑cpu数、几路几核几线程、CPU信息详细查询方法

    文章目录 一.名词解释 二.查看CPU信息 参考文献 未看完的参考文献 一.名词解释 CPU(Central Processing Unit): 中央处理单元, 物理cpu数: 物理CPU数就是实际S ...

最新文章

  1. python gevent 协程
  2. 博客园添加一个分享的
  3. mysql schema设计_mongodb 的 schema 设计方法
  4. springboot md5加密_SpringSecurity入门-SpringBoot集成SpringSecurity
  5. leetcode 144. Binary Tree Preorder Traversal ----- java
  6. Xcode9 2 编译在iOS8 1 系统上图片显示异常
  7. mysql 5.7配置的一些记录
  8. 2层框架结构柱子间距_钢筋混凝土楼板层其施工方法有哪些不同
  9. setpythonhome_python的set,和字典的详细使用方法,以及部分习题
  10. 奇怪的 Win10 输入法问题
  11. 电涡流传感器9200-06-05-10-00本特利
  12. docker下载地址
  13. PHP基于gettexts实现多语言i18n利用PoEdit
  14. 服务器lnixs系统,Navicat for MySQL v12.1.19 强大的数据库管理和开发工具 _ 黑苹果乐园...
  15. 克里金方法内插生成高程曲面
  16. 系统默认只有一张内置的静态壁纸,如如何修改可以内置多张静态壁纸
  17. ocr文字识别html,LEADTOOLS 创建基于HTML5的零占用OCR文字识别
  18. Navicat中设计表时int类型的长度说明
  19. 复制知乎专栏文章的方法
  20. windows 命令行ssh + Xming打开虚拟机的图形界面应用

热门文章

  1. 结合新的实际深化对自主创新的认识
  2. 高端人才必看,生意人必读
  3. android 音量调节框,Android 音量调节方法
  4. SSL证书怎么购买?
  5. b500k电位器引脚接法_电位器引脚含义是什么
  6. (二)DDL操作数据库
  7. 未来计算机作文英语,未来的机器人英语作文(精选5篇)
  8. 利用语义分割算法做指针式仪表的读数识别
  9. python or的用法_详细介绍Python中and和or实际用法
  10. C# 以GET或Post方式请求Web地址