CPU物理核及L1、L2、L3及缓存

CPU缓存
CPU 缓存是一种用于存储临时数据以提高计算机程序性能的内存层次结构。它通常分为三个层次:L1(一级)、L2(二级)和L3(三级)缓存。缓存大小是CPU的重要指标之一,并且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是同处理器同频运行,工作效率远远大于系统内存和硬盘。实际工作时,CPU经常需要重复读取同样的数据块,而缓存容量的增大能大幅提升CPU内部读取数据的命中率,不需要到内存或者硬盘上寻找,从而提升系统新能。
L1 Cache(一级缓存)
L1 缓存是距离处理器核心最近的缓存层,用于存储最常用的数据和指令。通常比较小,但速度非常快。
数据缓存(L1 DCache)
数据缓存存储处理器核心正在处理的数据,
指令缓存(L1 ICache)
指令缓存则存储处理器正在执行的指令。
L2 Cache(二级缓存)
L2 缓存位于 L1 缓存和主内存之间,用于存储更多的数据和指令,以便在 L1 缓存未命中时提供更多的备份。比 L1 大,速度较快但比 L1 缓存慢。
L3 Cache(三级缓存)
L3 缓存是位于处理器核心之间的共享缓存,多个处理器核心可以共享相同的 L3 缓存。这有助于减少核心之间的数据传输时延。比 L2 大,通常比 L1 和 L2 慢一些。
缓存行
缓存行(Cache Line)
缓存通常以固定大小的缓存行为单位进行管理。当 CPU 访问内存时,它不是一次性读取一个字节,而是一次性读取一整个缓存行。这有助于提高数据局部性,因为相邻的数据很可能在近期内被使用到
缓存行(Cache Line)查看大小
#cat cpu0/cache/index0/coherency_line_size 
64物理CPU
物理CPU( Physical Central Processing Unit)
 
中央处理单元,CPU不等于物理核,更不等于逻辑核,主板上真正安装的CPU的个数
查看物理CPU方法
# cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
  2
或
# cat /proc/cpuinfo | grep "physical id" | sort -u
  physical id     : 0
  physical id     : 1
或
# cat /proc/cpuinfo | grep "physical id" | sort -u  | wc -l
  2物理核
物理核(physical core/processor)
 
可以看的到的,真实的cpu核,有独立的电路元件以及L1,L2缓存,可以独立地执行指令。
查看物理核的方法
 # cat /proc/cpuinfo| grep "cpu cores"| uniq
	cpu cores       : 16
  或
  # cat /proc/cpuinfo |grep "cores"|uniq
	cpu cores       : 16逻辑核
逻辑核( logical core/processor,LCPU)
 
在同一个物理核内,逻辑层面的核。(比喻,像动画片一样,我们看到的“动画”,其实是一帧一帧静态的画面,24帧/s连起来就骗过了人类的眼睛,看起来像动起来一样。逻辑核也一样,物理核通过高速运算,让应用程序以为有两个cpu在运算)。
查看逻辑核的方法
# cat /proc/cpuinfo| grep "processor"| wc -l
	64超线程
超线程( Hyper-threading, HT)
 
超线程可以在一个逻辑核等待指令执行的间隔(等待从cache或内存中获取下一条指令),把时间片分配到另一个逻辑核。高速在这两个逻辑核之间切换,让应用程序感知不到这个间隔,误认为自己是独占了一个核。
判断是否开启超线程方法
多个逻辑CPU的"physical id"和"core id"均相同,说明开启了超线程
逻辑CPU个数 > 物理CPU个数 * CPU内核数 -----》 开启了超线程
逻辑CPU个数 = 物理CPU个数 * CPU内核数 -----》 没有开启超线程
物理核、逻辑核和超线程关系
一个CPU可以有多个物理核。如果开启了超线程,一个物理核可以分成n个逻辑核,n为超线程的数量。
总核数 = 物理CPU个数 X 每颗物理CPU的核数
总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
查看CPU信息
# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
     64  Intel(R) Xeon(R) Gold 6242 CPU @ 2.80GHz判断CPU是32还是64位运行模式
# getconf LONG_BIT
64物理CPU上面封装的逻辑处理器(即超线程后的CPU)个数
 #  cat /proc/cpuinfo | grep siblings 
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32
siblings        : 32 查看主板型号
# dmidecode |grep -A16 "System Information"
System Information
        Manufacturer: New H3C Technologies Co., Ltd.
        Product Name: UniServer R4900 G3
        Version: To be filled by O.E.M.
        Serial Number: xxxxx35A2CT6215F0012D
        UUID: xxxx5-xxx-xxx-xxx-xxx
        Wake-up Type: Power Switch
        SKU Number: 0
        Family: Rack
Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
        Manufacturer: H3C
        Product Name:xxxxx
        Version: xxxxxx
        Serial Number: xxxxxx
        Asset Tag: To be filled by O.E.M.查看cpu信息
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              64
On-line CPU(s) list: 0-63
Thread(s) per core:  2
Core(s) per socket:  16
Socket(s):           2
NUMA node(s):        2
Vendor ID:           GenuineIntel
CPU family:          6
Model:               85
Model name:          Intel(R) Xeon(R) Gold 6242 CPU @ 2.80GHz
Stepping:            7
CPU MHz:             1199.781
CPU max MHz:         3900.0000
CPU min MHz:         1200.0000
BogoMIPS:            5600.00
Virtualization:      VT-x
L1d cache:           32K
L1i cache:           32K
L2 cache:            1024K
L3 cache:            22528K
NUMA node0 CPU(s):   0-15,32-47
NUMA node1 CPU(s):   16-31,48-63
Flags:              xxxxxxxxxxxxxxxxxxxxxxxxxxx
查看CPU缓存信息
# lscpu | grep "L1d" -A3
L1d cache:           32K
L1i cache:           32K
L2 cache:            1024K
L3 cache:            22528K


















