一、超线程
1.1 什么是线程
首先举个例子:CPU中渲染流水线相似,流水线都会处理大量的图形渲染,每一条流水线可以同时并行处理任务。cpu线程就相似于CPU的流水线,每一线程处理多个程序。
cpu的线程目前分两种,每核心1线程和每核心双线程。按照intel的理论来讲,支持双线程的cpu效能要强于单线程。
1.2 什么是多线程
多线程:多核心cpu也就是多线程,程序只要支持多核心处理,就能够将程序利用多线程来进行处理加快程序执行效率。好比1辆小货车和1辆大货运送物品。虽然两车速度是一样的,但是运送的物品缺大了一倍。那么反过来讲,把1个执行程序分成两部分并行运算,它的运算时间应该是有缩减的。
1.3 什么是超线程
超线程:超线程(hyper-threading)其实就是同时多线程(simultaneous multi-theading),是一项允许一个CPU执行多个控制流的技术。它的原理很简单,就是把一颗CPU当成两颗来用,将一颗具有超线程功能的物理CPU变成两颗逻辑CPU,而逻辑CPU对操作系统来说,跟物理CPU并没有什么区别。因此,操作系统会把工作线程分派给这两颗(逻辑)CPU上去执行,让(多个或单个)应用程序的多个线程,能够同时在同一颗CPU上被执行。注意:两颗逻辑CPU共享单颗物理CPU的所有执行资源。因此,我们可以认为,超线程技术就是对CPU的虚拟化。
特点:
1.物理核心作为两个虚拟或逻辑核心,通过超线程操作,操作系统可以识别每个线程。
2.实际上是CPU核心数量的两倍
3.超串接增加独立命令的数量(正在研发中)
1.4 多线程和超线程的区别
超线程从硬件层面理解,即一个CPU的部件(可以理解为核)同时执行多条指令,表现就是同时执行多个线程。
多线程是软件层面的概念,比如CPU只有一个核,通过线程调度可以在一个时间段内运行多个程序或任务,但实际任何时刻只执行一个线程。
1.5 示例
要利用超线程,你必须运行应用程序,示例:视频编译编码
二、超线程产生的时间
CPU超线程是2002年由英特尔公司推出的,其在奔腾4和XCON处理器上首次亮相。