到底什么是CPU线程?

CPU线程

对于那些比较或购买cpu的人,甚至是正在使用cpu的人来说,所谓的“线程”经常造成困惑我们的主要架构图.它们到底是什么从来没有被真正地解释过,大多数确实存在的解释只是给出一个粗略的概念,或者把它和其他东西混在一起。

最后,基本的解释非常简单,所以让我们一劳永逸地澄清一下。

那么,什么一个线程?

“线”指的是两种事物,但两者之间有着密切的联系。

这个术语最常见的用法是指软件中的线程。软件线程就中央处理器而言,软件使用的指令序列做软件能做的事。关于它们有很多可以讨论的地方,特别是因为它们在不同的核心数如何影响软件性能方面扮演着直接的、关键的角色,但这是另一个话题。

R9机型3900 x然而,您可能在CPU产品页面或AMD或英特尔的网站上看到的规格,都是指硬件中的线程。在讨论“线程”时,硬件线程是造成混淆的主要原因。

硬件线程本质上是基础设施。简单地说,硬件线程保存有关软件线程的重要信息,内核需要这些信息来运行软件线程.就是这样。它们不做实际的工作(那是为CPU核心的其余部分)。它们不像“较弱”或“伪”核,或其他花哨的东西。它们只是保存信息。核心的其余部分负责处理其余部分(当然,需要进行一些细微的修改,以避免技术问题并维护性能)。

因此,硬件线程的数量告诉我们有多少软件线程可以同时在CPU上运行。

但是,您可能还见过术语“逻辑处理器”或“虚拟内核”或类似的东西,它们可能与硬件线程处于同一上下文中。这仅仅是操作系统(例如Windows, Linux等)对硬件线程的看法。就我们作为用户而言,它们其实是一样的。但是,不要把这两个线程弄混了——硬件线程是实际存在的东西。“逻辑处理器”身体上的存在。操作系统决定让某个软件线程运行在某个逻辑处理器上,而某个核心上的相应硬件线程运行该软件线程。到此为止。

SMT /超线程是怎么回事?

超螺纹CPU

超线程简化图从维基百科(一组有颜色的矩形类似于软件线程)

因此,如果硬件线程实际上并没有自己做任何事情,为什么同时多线程(在英特尔cpu中称为超线程,可能是因为英特尔喜欢感觉特别)有潜力提高性能?

简而言之,SMT / Hyper-Threading需要同时在每个内核上运行两个软件线程,这使得内核可以使用更多的软件线程.现代内核强大而广泛,硬件架构师对此非常自豪:一个单独的软件线程几乎总是让一些强壮的硬件无所事事。这就像一个雇主有太多的人来完成通常的工作,但有时这些额外的人可能是必要的。同时两条线?这就占用了一些呼吸的空间,让事情变得美好而忙碌。

现在,如果硬件中有一些特定的东西已经限制了一个线程的性能,并且在使用两个线程时同样糟糕甚至更糟,那么就不会有什么好处(在这种情况下,SMT实际上可能是一种损害)。但这并不是大多数软件的典型情况——因此SMT是一个常见的特性。

顺便说一句,您有时会看到用SMT添加的硬件线程被称为“超线程”或其他类似的东西。需要明确的是,在没有SMT的情况下已经使用的硬件线程与为SMT添加的硬件线程之间没有区别——它们是完全相同的。

结论

本质上,硬件线程是CPU一次可以完成多少工作的指示。至少在技术上是这样的。8线程4核SMT仍然不如有用8线程在8核(至少相比cpu从过去一些年),因为有更少的硬件资源,即使他们可能运行相同数量的线程在给定的时间。

除了你在特定用途(如游戏)中看到的比较基准之外,硬件线程非常重要,因为它们会影响CPU的多任务处理能力。具有SMT的四核CPU将处理视频编码等后台任务,与没有SMT的类似四核CPU相比,它对其他任务的潜在影响更小。但我离题了。

cpu可以是一个既令人困惑又简单的主题。如果你还有任何问题,请在评论中提问!如果你想了解我们关于构建不同预算的个人电脑的一般建议,请访问我们主页上的图表

Baidu