名词释义
processor
每个逻辑处理器的唯一标识符,即逻辑处理器(逻辑核)编号
core id
每个内核的唯一标识符,即在当前物理核中它的编号,每个 core id 均代表一个唯一的处理器内核,如果有n个processor(逻辑核)具有相同的"core id”和physical id ,那么超线程是打开的,且为n线程。
physical id
从0开始,每个物理封装的唯一标识符,即物理处理器(物理核)编号,拥有相同 physical id 的所有逻辑处理器共享同一个物理插座(socket)。每个 physical id 代表一个唯一的物理封装。
siblings
位于相同物理封装中的逻辑处理器的数量,物理核包含的逻辑核数。Hyper-Threading creates logical CPUs (refered to as sibling CPUs by the kernel),也就是说SIBLING是内核认为的单个物理处理器所有的超线程个数。如果SIBLING小于等于实际物理核数的话,就说明没有启动超线程,反之启用超线程。有时不确定是否超线程时,siblings:12可以表述为“每个CPU有12个逻辑物理核”。
cpu cores
位于相同物理封装中的内核数量(此处无法确定是逻辑还是物理核)。
超线程判断
如果cpu cores等于siblings则未启用超线程,那么相同physical id中任意2个processor中也不会有相同的core id。反之,siblings大于cpu cores则启用超线程。
cpu cores的计算
无论是否超线程,相同physical id中core id数量等于cpu cores。超线程时,同一个physical id中至少2个processor中会有相同的core id,此时cpu cores数量计算包括重复的core id。某个physical id一共只有2个core id,它包含的2个processor中各有1个core id 为0,各有1个core id为1,然后把这个physical id下的所有core id之和就是cpu cores,2+2=4。
processor数量
phsyical id个数*cpu cores=总的逻辑核数量,即processor数量,它除以siblings就等于当前操作系统支持的每个物理核的超线程数
参考文献
http://blog.sina.com.cn/s/blog_4bde3c5101015gbr.html
http://blog.youkuaiyun.com/gzhouc/article/details/51999485
参考帖子
http://bbs.chinaunix.net/thread-1947424-1-1.html