CPU相关的知识
本文介绍多CPU、物理核、逻辑核、超线程、进程、线程、并发、并行,以及Linux查询CPU和核的信息的方法
易混淆概念
多处理器
认真辨别语境,一般是多CPU的意思;有时可能是多逻辑处理器即多核的意思,好像老外经常把一个CPU里有多个核心当成多个CPU来描述。
逻辑处理器
就是逻辑核
的意思,Windows 10的中文翻译了这个特别特别容易误解的词。
逻辑CPU
有些博客用了这个词表示逻辑核
的意思,个人怀疑其有没有这样的用法的根据,很容易导致误解,因为我会认为,核就是核,CPU就是CPU,为什么混为一谈,好像核就是CPU一样
CPU的一~四级缓存
CPU缓存(Cache Memory)的出现是弥补CPU和主存(主内存,即内存条的)的速度差太大,用于提高效率的,有时可能也叫高速缓存
。
高速缓存也分了很多层,一到四级,四级很少听但确实是有。一二级是各个核心独有的,三级缓存是所有核共享的,四级缓存似乎是为了解决CPU的集显和CPU的速度差问题(CPU内可以有显卡)。一般CPU商品中只标出了三级缓存,其他都不标注。如图所示
(这里看不到L4 Cache,可能是因为只有L1~L3才封装在CPU里)
同样的多个核之间的L1、L2也会有缓存一致性问题,类似多核CPU有一些协议保证多个CPU内部缓存之间一致性的协议,同一个CPU内部的多核内部的缓存的一致性问题应该也是有方案解决的。
物理核、逻辑核和超线程
-
物理核:是CPU里实实在在封装的物理硬件
-
逻辑核:利用超线程技术模拟出来的核,一般一个物理核可以虚拟出2个,就是CPU商品标出的
线程数
,有些资料也叫逻辑CPU数
-
超线程:HT,Hyper-Threading,超线程技术就是让一个核模拟出两个核的技术
-
物理CPU:即主板上插了多少个的CPU芯片
-
虚拟CPU:假的、虚拟的CPU,类似VMWare虚拟机中的CPU
疑惑:
逻辑核似乎有些时候被翻译成逻辑处理器
,而处理器
通常被我理解为CPU
,所以逻辑核,就是逻辑CPU
吗? 但这种翻译真的会有点模糊不清容易造成误解。