什么是超线程?

3372615cf285cfa

超线程曾经是只有高端专业 CPU才有的功能。然而,超线程现在也可以在主流消费 CPU 上找到。那么究竟什么是超线程,你应该在你的下一个 CPU 中寻找它吗?

什么是软件线程?

软件线程是由 CPU 处理的指令序列。它是调度程序管理的程序指令的基本单元 。 调度程序是操作系统的一个组件,它将硬件资源分配给计算机上运行的各种类型的软件。

在您的计算机上运行的每个应用程序都以一个或多个进程的形式存在。线程实际上是发送到 CPU 执行的这些进程的段。调度器从不同的运行程序中快速分配线程,以确保每个程序都能实时获得运行所需的资源。

这就是您的计算机可以“多任务处理”和(例如)运行文字处理器的方式,同时还可以在后台播放音乐和下载视频游戏。从技术上讲,CPU 内核实际上并不是同时完成所有这些工作。

因此,如果您的系统只有一个单核 CPU,它会迅速处理多组指令,在它们之间快速切换,以至于对于我们缓慢的人类大脑来说,这一切似乎都是并行发生的。

家用计算机中的真正并行处理

在个人计算历史的大部分时间里,您的计算机中只有一个 CPU 内核。嗯,当时我们没有谈论“核心”,因为只有一个,而且它是整个 CPU。然而,在 2000 年代中期,CPU 制造商有一个聪明的想法,将两个完整的 CPU 塞进一个 CPU 封装中。这些双核 CPU 实际上可以同时处理两条指令线程。这意味着,例如,您的视频游戏可以拥有 100% 的核心,而您的操作系统可以拥有另一个核心。

CPU 内核数量正在迅速增加。具有6、8 甚至 10 个内核的主流 CPU很常见。高端 CPU 提供数十个内核,而像 AMD Threadripper 3990X 这样的 CPU 则拥有高达 64 个内核。

软件开发也发生了变化,以更好地利用所有这些并行 CPU 的能力。最新的视频游戏机也配备了 8 个 CPU 内核,因此可以使用这么多内核的视频游戏正在迅速普及。

使用超线程使 CPU 内核超速运行

传统的 CPU 只能处理一个线程,但如果您的系统中有许多不同的 CPU 内核,则可以处理与您拥有的内核数相等的线程数。这看起来不错,但它提出了一个主要问题。

并非所有线程都需要相同数量的处理能力。例如,渲染视频的线程将使用 100% 的 CPU 内核可用容量,但运行文字处理器或社交媒体网页的线程只需要现代 CPU 内核提供的一小部分功能。

同样,一个视频游戏可能有多个并行运行的线程,例如一个处理物理,另一个处理角色人工智能。这些都是重要的工作,但可能不需要所有的单个内核都能正常运行。

这会导致您的所有 CPU 内核可能都忙于处理线程,但并没有为您提供它们所能提供的所有处理能力。这就是超线程出现的地方。

超线程的正确通用名称是同步多线程。“超线程”实际上是英特尔使用的专有营销名称,但就像“胡佛”一样,它已成为整个技术的常用说法。

配备正确内部电路以启用超线程的 CPU 可以同时执行两个单独的线程。它不像传统的单核多任务那样在它们之间切换。它并行运行每一个。

对于操作系统来说,看起来每个物理 CPU 内核实际上是两个内核,这让调度程序为每个内核分配两个线程。但是,每个内核的处理能力总量保持完全相同。

为什么你想要超线程

正如我们上面提到的,超线程主要是为了确保您不会将处理能力留在桌面上。让每个内核处理两个线程可以让您的操作系统更轻松地充分利用您的硬件,并避免出现每个内核未接近或满负荷运行的情况。

过去,只有视频编辑器或科学数据处理工作等专业软件才真正需要超线程。主流用户几乎没有足够的应用程序运行需要这么多线程。电子游戏也需要很长时间才能采用多线程,但现在8核游戏系统是主流,线程数将不断增加。

因此,新的主流 CPU 现在具有超线程功能,这是大多数用户应该想要的功能。但是,如果您在没有超线程的较旧 CPU 上获得了优惠,那么您还没有必要放弃它。

未经允许不得转载:表盘吧 » 什么是超线程?