我想知道 CPU 的 2 核 4 线程是什么意思?我说的是我有的这个 CPU
http://ark.intel.com/products/47341/Intel-Core-i5-520M-Processor-3M-Cache-2_40-GHz
我最初以为 i5 有 4 个核心,但我想我错了。我对线程的理解是它是一段可以与其他线程同时运行的代码。那么,规格表中的 4 个线程是什么意思?它与编程线程不同吗?其中的线程数与我们创建的程序线程不同吗?如果它只有 2 个核心,那么即使它有 4 个线程,也只能运行 2 个并行程序,这是正确的吗?
答案1
答案2
我不确定您对计算机架构的专业水平,但是您在此处提到的 Core i5 实现了一种称为同步多线程 (SMT) 的多线程形式。英特尔对其 SMT 实现的商标是超线程。
除了 SMT 之外,还有其他形式的多线程,时间多线程就是其中一种。例如,细粒度时间多线程,处理器可以在每个周期在不同的线程之间切换,从而实现多个程序的伪并行执行。同样,也可以有粗粒度时间多线程,处理器在遇到高延迟操作(例如当前线程上的主内存访问)时可以在线程之间切换。确切的切换点可能因实施和要求而异,例如公平性或实时截止时间。
SMT 与多线程的上下文切换理念不同,它实际上有两个或多个线程同时在一个处理器上执行。虽然实现方式可能有所不同,但主要目标是利用处理器中在只有一个线程执行时处于空闲状态的功能单元,以及利用处理器的宽发射超标量特性。您可以将时间多线程想象为对处理器资源进行时间切片,而将 SMT 想象为对资源进行空间切片。
详细的分析可以在Tullsen 1995年的论文中找到:
答案3
“如果它只有 2 个核心,那么即使它有 4 个线程,也只能运行 2 个并行程序,这是正确的吗?”如果它有 2 个核心,则计算结果为除以 2 = 并行度,但是,如果您的系统具有超线程,它可以在同一个核心中进行 2 次计算,为什么,同一个核心在操作系统中显示为 2 个核心...逻辑核心。
答案4
将线程数除以核心数,即可得出每个处理器核心可同时运行的线程数。
在早期 [在早期的 Intel 型号上],超线程仅限于 1 个内核同时运行 2 个线程,或者多个内核每个内核运行 1 个指令集(又名线程)(在我看来,这是相当低效的)。但随着计算能力的提高和 i5 处理器等后续发展,您拥有了我所称的多核超线程处理器,它有多个内核,每个内核运行多个指令集(又名线程)。
在您的情况下,1 个核心有 2 个线程,因此当您进行计算时,您总共有 = 4 个指令集(线程)。
另一个例子:核心数 = 4,线程数 = 8 | 8/4 = 2,所以每个核心同时处理 2 个线程(不确定哪种处理器型号可以做到这一点,但我几乎可以肯定存在一种)。
希望这对我的朋友有帮助!祝您计算愉快!
来源:PEARSON IT 认证 CompTIA A+ Examp Cram Cert. 手册