使用SMT时,一个处理器的部分在线程之间共享,而其他部分在它们之间重复 另一方面,多核处理器将两个或多个独立的执行内核嵌入到单个处理器程序包中。
我的问题:在不同情况下每种体系结构的优点是什么?
答案 0 :(得分:3)
并没有真正的主要弊端,但要获得高性能,则两者都需要。
要获得高单线程性能 并选择将其中一些性能换成更高的吞吐量,则需要SMT。
但是您不能使单个核变得非常宽;它不能线性扩展,因此添加更多的物理内核是一种在超出特定管道宽度的情况下花费晶体管/功率的更好方法。
这就是所有高端现代CPU 每个芯片都具有多核且每个内核都支持SMT的原因。它使您能够以每线程性能为代价来获得更大的总吞吐量。 ,使每个内核上有更多执行单元繁忙。
SPARC Niagara有点例外:它可能不是真正的SMT,而是细粒度的多线程,因为每个内核只能发出一条指令/时钟(wikipedia)。
AMD在推土机中对CMT进行了试验:一组共享SIMD / FPU的弱整数内核。当有足够的线程来保持所有内核繁忙时,这具有良好的吞吐量,但是无法像普通SMT一样快地运行更少的线程。
答案 1 :(得分:1)
使用SMT时,一个处理器的部分在线程之间共享,而其他部分在它们之间重复。实际执行引擎是最重要的共享资源之一。该引擎通过在另一个线程未使用的资源上为一个线程执行指令来同时在两个线程上工作。当两个线程都在运行时,SMT Technology从字面上将执行管线中的指令交织在一起。何时插入哪些指令完全取决于处理器在执行时可用的执行资源。此外,如果一个线程被束缚了从磁盘读取大数据文件或等待用户在键盘上打字,则另一个线程将接管所有处理器资源,而无需操作系统切换任务,直到第一个线程准备就绪为止。恢复处理。这样,每个线程接收最大的可用资源,并且处理器保持尽可能繁忙。
SMT技术通过隐藏延迟来提高性能。从根本上讲,单个执行核心在多个线程之间共享。因此,线程执行不是并行的。结果,性能结果根据应用程序和硬件平台的不同而不同。 SMT优势 •常规:更好地利用系统资源 •在多处理器计算机上并行执行任务并增强性能 缺点 •同步共享资源(对象,数据) •“饥饿”:某些线程可能设计不佳
另一方面,多核处理器将两个或多个独立的执行内核嵌入到单个处理器程序包中。通过提供多个执行核心,每个指令序列或线程都完全具有硬件执行环境。这使每个线程都能真正并行运行。 A
请注意,双核处理器可真正并行执行每个线程。应当注意,SMT技术并未尝试提供多核性能,理论上,双核系统的性能可能接近100%或2倍的提高。 SMT技术更像是一种工具,程序员可以在其中使用空闲的CPU资源来完成更多工作。与多核技术结合使用时,SMT技术可以提供强大的优化机会,从而大大提高系统吞吐量。