随着英特尔全新酷睿 微体系架构(Nehalem)的发布,很多人对该架构内采用的一些新技术表示出了浓厚的兴趣。英特尔 超线程(HT)技术即在其中。超线程技术适用于全新的英特尔酷睿 i7 处理器和英特尔至强5500 系列处理器。下文将详细介绍英特尔超线程技术的一些细节:
问:什么是英特尔 超线程技术?
答:英特尔 超线程技术是全新英特尔 酷睿 i7 处理器和英特尔 至强 5500 系列处理器所具有的一种性能特点。简单来说,它可使处理器中的 1 颗内核如 2 颗内核那样在操作系统中发挥作用。这样一来,操作系统可使用的执行资源扩大了一倍,大幅提高了系统的整体性能。
在谈论内核、线程、超线程这些术语时容易让人产生混淆。为使后文便于理解,将把“超线程”称为“硬件线程”,将“操作系统级线程”称为“软件线程”。为简化概念,1 个内核就是 1 个CPU。每个英特尔 酷睿 i7 或英特尔 至强 5500 处理器在出厂时均有 4 个内核(未来可能会提供其他版本)。
问:如何知道我的系统是否在使用超线程(HT)技术?
答:首先,可以先确认下,是否使用的处理器、芯片组、操作系统及 BIOS支持这项技术。当然,采用基于英特尔全新酷睿 微体系架构(Nehalem)的处理器的台式机和服务器平台一般都支持该技术。其中大多数系统都允许把超线程技术作为一种 BIOS 选择来启用或禁用(一般预设为启用状态)。用户可以通过 Windows中的任务管理器或 Linux的 /proc/cpuinfo 命令查看处理器 信息。如果系统支持超线程(HT)技术且启用了超线程,则可看到的处理器数将是平台实际拥有的物理内核数的一倍。例如,如使用的是双路的英特尔 至强 5500 系列服务器,则会看到这套系统拥有16 个处理器。(8 个物理内核上运行 16 个软件线程,每个内核运行 2 个线程。)
在超线程技术禁用状态(上图)和启用状态(下图)下,同一平台上可用的 CPU 数量。
问:我可以在同一内核的 2 个不同线程上同时执行 2 个应用程序么?
答:可以。在 1 个内核上运行的 2 个软件线程不一定非得是同一进程的线程。这 2 个软件线程既可以是同一进程的线程(在多线程软件情况下),也可以是 2 个单独的应用程序的线程。至于哪 2 个软件线程可以在 1 个超线程内核的 2 个硬件线程上运行则由操作系统决定。因此,答案是肯定的,即可以在同一内核上同时执行 2 个不同的应用程序。
问:超线程技术是如何实现的?
答:所有基于英特尔全新酷睿 微体系架构(Nehalem)的处理器内核都可以执行两个独立的指令集。不同的任务切换会需要处理器从一个指令的解码/任务调配工作迅速切换到另一个指令的解码/任务调配。而所有运算资源在在两个硬件线程内是可以共享或是重复的。