Linux 超线程

转自:http://m.blog.csdn.net/blog/jszk2006/9380017html

Linux 超线程

1. 定义

超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操做系统和软件,减小了CPU的闲置时间,提升的CPU的运行效率。 之前的单核心处理器,在同一时间内只能够处理一项工做(线程:Thread),若是同时要处理一项以上的任务是不可能,在这种需求的驱使下,Intel开发了超线程技术,以一个单核心去模拟双核心的环境,可是这并不是可以把处理器的效能提升双倍,由于它的本质上还只是一个核心,效能大约有20%-30%的增长。linux

超线程技术拥有很高的功耗效能比,加入超线程技术所增长的晶体管数目并很少以及功耗并很少,可是相比于增长一个完整的核心更具备性价比,另外加上i7架构拥有高带宽及高容量三级高速缓存的优点,更能将超线程技术的功耗发挥到极致。web

2.比较

超线程处理器

它并非物理上的多核,是逻辑上的,将一个物理核经过超线程技术模拟成两个逻辑核,迷惑操做系统,使得操做系统将本身视为两个物理核。缓存

多核处理器

它是直接提供了多个物理上的处理器,只是这些处理器被封装到同一个芯片里并只占用一个处理器槽而已。多线程

多处理器

多个处理器插槽。架构

3.怎么看一个机器是否开启超线程

(1)看物理cpu的个数

$ cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
2

(2)看每一个物理cpu中core的个数(即平时说的几核几核)

$ cat /proc/cpuinfo | grep "cpu cores" | uniq | awk -F ":" '{print $2}'
6

(3)看每一个物理cpu中逻辑cpu的个数

$ cat /proc/cpuinfo  | grep "siblings" | uniq | awk -F ":" '{print $2}'
12

(4)怎么看

很明显,若是(3)的数字是(2)两倍,即每一个物理cpu中逻辑core数是物理core数的两倍,那个就是开启了超线程。若是相等则没有,本文例子中12 = 6 * 2,故开启了超线程。ui

如何打开和关闭超线程

在BIOS中修改,这里不详细给出。spa

参考

【1】 http://baike.baidu.com/view/2794151.htm 
【2】http://www.cppblog.com/guogangj/archive/2010/03/29/110801.html 
【3】http://www.ipcpu.com/2010/08/linux-cpu-info/ 
【4】http://www.richweb.com/cpu_info操作系统

相关文章
相关标签/搜索