什麼是CPU超線程技術

mr易111 發佈 2022-09-22T04:32:20.937205+00:00

CPU hyper threadCPU超線程技術,可以理解為讓一個CPU核心在一個時鐘周期內可以執行多條指令的技術。CPU發展的階段經歷了:單核,多核,超線程。單核CPU只有一個物理核心,此時決定CPU在單位時間內能處理多少條指令的因素是CPU核心的工作頻率。

CPU hyper thread

CPU超線程技術,可以理解為讓一個CPU核心在一個時鐘周期內可以執行多條指令的技術。

CPU發展的階段經歷了:單核,多核,超線程。

  • 單核

CPU只有一個物理核心,此時決定CPU在單位時間內能處理多少條指令的因素是CPU核心的工作頻率。工作頻率越高,執行指令的速度就越快,CPU的性能就越強。CPU的工作頻率從幾十兆赫茲不斷提高,最後提高到1千兆赫茲左右。

  • 多核

CPU工作頻率的提升伴隨著CPU溫度的不斷提升。隨著CPU工作頻率的提升難度越來越大,開始出現了把兩個或者多個物理核心封裝成一顆CPU,這個就是多核CPU。多核CPU可以在同一時刻處理多條指令,CPU整體的性能就得到了很大提升。

  • 超線程

超線程技術,是在多核CPU之後的又一種提升CPU性能的技術。它的實現既有CPU硬體封裝技術的變化,也有CPU指令執行調度的改進,使一個CPU的物理核心在同一時刻也可以執行多條指令。

CPU的物理核心可以認為是由讀取部分和執行部分組成的,執行部分比較複雜,一個執行部分是由多種運算法則的計算單元組成。常規CPU的讀取部分和執行部分是一對一的。

支持超線程技術的CPU一個物理核心裡包含執行部分和多個讀取部分,讀取部分和執行部分是一對多的。

以一個處理的場景來對比下兩種CPU的工作方式:

假設有兩個線程,線程A和線程B。線程A要執行一條加法的指令,線程B要執行一條減法的指令。

傳統CPU先用讀取器1讀取線程A的指令,然後交給執行器里負責加法運算的計算單元執行,執行完成後再讀取線程B的指令,然後交給執行器里負責減法運算的單元執行。

超線程CPU可以在讀取器1讀取線程A的加法指令交給執行器里的加法計算單元計算的同時用讀取器2讀取線程B的減法指令交給執行器里的減計算單元計算,也就是在同一時刻執行了線程A和線程B里的指令,同時進行了兩個線程的計算。這樣就相當於有兩個CPU內核在工作。

要是線程A和線程B執行的指令需要用到同樣計算單元,或者是線程B的指令需要線程A的指令的計算結果時,即使是超線程CPU也無法同時執行線程A和線程B的指令,只能順序執行。

通過上面例子可以看出,在多個線程要執行的指令符合超線程的工作條件的前提下,超線程CPU的性能接近於多核,反之,超線程CPU就是單核。

那麼,多線程技術的效果實際上取決於對指令的排列順序。在通常的CPU上這是取決於當前執行的程序,而為了提升CPU的性能以intel為首的CPU巨頭使用了一個叫做指令預測和亂序的技術。通過數學邏輯上的優化可以相當程度的重排CPU指令順序這樣就能有效的避免指令2等待指令1的悲劇,性能也就提升了不少。

關鍵字: