5

有兩個方面:時間多線程和超線程之間有什麼區別?

  • Temporal multithreading:在細粒度多線程時間,主處理器流水線可以包含多個主題,使用上下文切換管道級之間有效地存在的(例如,在barrel processor)。桶式處理器是在每個週期之間在執行線程之間切換的CPU。

  • Super-threading:是一種多線程技術,它使不同的線程能夠被單個處理器執行,而不會同時真正執行它們。 1這可以將其定義爲時間分割或時間多線程,而不是同時多線程(SMT)。它的動機是由於長時間延遲事件,處理器的功能單元在執行來自一個線程的指令時偶爾處於空閒狀態。超線程試圖通過執行來自另一線程的指令來使用未使用的處理器週期,直到前一線程準備好恢復執行爲止。

是TM和ST之間的主要區別,在於時空多線程(精細)使用C-slowing和執行的線程之間的切換在每個週期中,但線程間超級線程交換機並不是每一個循環,只有當處理器由於長時間延遲事件,功能單元在執行來自一個線程的指令時處於空閒狀態?

時間多線程(細粒度)和超線程有什麼區別?

+3

從一個*非常簡短的*搜索(和*一些*熟悉計算機體系結構)看來,超線程首次在Shuichi Sakai等人的「Super-threading:Architecture and Software Mechanisms for Optimizing Parallel Computation 「具有更廣泛的線程硬件支持意識。這個術語在計算機體系結構社區中並不常用(據我所知)。時間多線程包括粗粒度(通常爲開機事件MT)和細粒度(包括桶式處理和更靈活的逐週期調度)。 –

+0

@Paul A. Clayton ST很少使用。是否有可能是因爲超線程(ST)僅爲一個流水線(ALU)提供指令,但爲多個流水線(ALU)提供同時多線程(SMT)?即ST僅利用失速(高速緩存未命中,分支錯誤預測或數據依賴性),但現代CPU也是超標量體系結構,而不是ST使用SMT來利用超標量體系結構。例如超線程 - 是英特爾專有的同步多線程(SMT)。 – Alex

回答

2

時間多線程可以是細粒或粗粒多線程的形式。細粒度多線程切換以固定的細粒度間隔(例如每個週期)切換上下文。粗粒度多線程切換長延遲事件的上下文(例如,LLC緩存未命中)。

另一方面,同時多線程沒有任何線程切換的概念。多個線程可以同時運行。

一張圖片勝過千言萬語。看看幻燈片5至7 here。它有所有3種方法的圖片並且很好地進行比較。正如其他人所說,超線程並不是一個常見術語,它似乎與我的粗粒TM相似。

+0

謝謝,是的,這是很好的幻燈片。我們可以認爲超線程與時態多線程(粗粒)相同。即多線程的類型如下所示 - 從CPU-core之間的共享任務到共享線程之間:**無**(完全軟件多線程),** TM(細粒度)**桶式處理器**,TM (超線程)**,** SMT ** - 超線程,** CMT **(芯片多線程) - 具有共享昂貴資源的多核(某些內核中的單個FPU),** CMP **(芯片多處理器) - 具有共享最終級緩存和互連的多核。 – Alex

+0

我們可以說,現代的英特爾CPU,例如英特爾酷睿i7既是CMP又是SMT? – Alex

+1

@Alex,據我所知,是的。現在幾乎所有的x86處理器都是CMP(我想不出任何單核x86 CPU)。 SMT也是如此。有些是2路SMT,有些是4路SMT。請注意,英特爾使用術語超線程來表示SMT。順便說一句,看看斯坦福CPU數據庫供您參考。 http://cpudb.stanford.edu/ – aminfar

相關問題