同時多執行緒

同時多執行緒

同時多執行緒是指是超標量技術多執行緒技術的結合。它的基本思路是把注意力返回到處理器本身,從充分利用CPU的效率、挖掘單個物理CPU的潛力人手,通過發射更多的指令來提高處理器的性能。

基本介紹

  • 中文名:同時多執行緒
  • 外文名:Simultaneous Multi-Threading
  • 簡稱:SMT
  • 實現方法:細粒度、粗粒度方法
  • 意義:利用作業系統的虛擬多重處理
  • 學科:信息科學
簡述,實現方法,意義,

簡述

同時多執行緒(Simultaneous Multi-Threading,SMT)最重要的意義是利用作業系統的虛擬多重處理,把兩個(或多個)CPU看成是一個處理器。這樣,就能夠在每個時鐘周期都可以從多個執行緒中選擇多條不相關的指令發射到相應的功能部件去執行。由於基本解決了相關性問題,因此SMT處理器完全有可能在每個指令周期內填滿所有的發射槽。
SMT技術是超標量技術與多執行緒技術的充分協同與結合,可以解決影響處理器性能的諸多難題。

實現方法

主要有兩種主要的多執行緒實現方法。
第一種方法是細粒度(Fine-Grained)多執行緒技術,它在每條指令間都能進行執行緒的切換,從而導致多個執行緒的交替執行。通常以時間片循環的方法實現這樣的交替執行,在循環的過程中需要跳過被阻塞的執行緒。要實現細粒度的多執行緒,CPU必須在每個時鐘周期都能進行執行緒的切換。由於一個執行緒阻塞後其他執行緒的指令還能夠立即執行,所以細粒度多執行緒的主要優點是能夠隱藏由任何或長或短的阻塞帶來的吞吐率的損失。而其主要的缺點是減慢了每個獨立執行緒的執行,這是因為即使沒有任何阻塞,執行緒也會被其他執行緒的指令插入執行而導致延遲。
第二種方法是粗粒度(Coarse-Grained)多執行緒技術,它是基於細粒度多執行緒的優缺點而提出的。粗粒度多執行緒之間的切換隻在發生代價較高、時間較長的阻塞出現時,例如二級Cache失效時才進行執行緒間的切換。這一改變大大減少了執行緒間切換的次數,並且不會減慢每個獨立執行緒的執行,這是因為只有當執行緒發生高代價阻塞時才執行其他執行緒的指令。然而,粗粒度多執行緒也有較大的缺點:不能有效地減少吞吐率的損失,特別是對於較短的阻塞而言。這一缺點是由粗粒度多執行緒的流水線建立時間的開銷造成的。由於實現粗粒度多執行緒的CPU只執行單個執行緒的指令,因此當發生阻塞時,流水線必須排空或暫停。阻塞後切換的新的執行緒在指令執行產生結果之前必須先填滿整個流水線。由於有建立時間的開銷,粗粒度多執行緒對於減少高代價阻塞時帶來的損失較為有效,此時流水線的建立時間相對於阻塞時間可以忽略不計。

意義

SMT最重要的意義是利用作業系統的虛擬多重處理,把兩個(或多個)CPU看成是一個處理器。這樣,就能夠在每個時鐘周期都可以從多個執行緒中選擇多條不相關的指令發射到相應的功能部件去執行。由於基本解決了相關性問題,因此SMT處理器完全有可能在每個指令周期內填滿所有的發射槽。
SMT技術是超標量技術與多執行緒技術的充分協同與結合,可以解決影響處理器性能的諸多難題。
1)減少結構相關性的影響
當一條指令要使用的功能部件被前面的一條指令所占用而無法執行時,就產生了指令間的結構相關性。在STM處理器中,不僅支持在超標量處理器中採用的亂序執行,還採用從多個不同執行緒中選擇指令的方式,大大減少了功能部件衝突的機率。
2)減少邏輯相關性的影響
邏輯相關性包括“偽相關”(有“讀後寫”、“寫後寫”)和“真相關”(“寫後讀”)。對於前者,SMT處理器沿用了超標量處理器中採用的“暫存器重命名”策略加以解決;對於後者,超標量處理器無法解決,而SMT處理器為每個執行緒配備了獨立的暫存器檔案,不僅可以線上程切換過程中快速保存和恢復現場,而且由於只要選擇不同的執行緒就不存在相關。當再調度到同一執行緒時,先前的指令已經執行完畢。
3)減少控制相關的影響
對於超標量處理器來說,轉移預測的正確率對於減少控制相關非常重要。可惜預測的正確率並非百分之百,而且隨著IPC和指令流水級數的增加,作廢的指令條數也會迅速增加。STM處理器將兩個轉移方向映像到不同的執行緒中執行,等轉移地址確定後,從兩個執行緒中選擇正確的一個繼續執行,中止另一個。這一方法與轉移預測技術結合,會將控制轉移危害減輕許多。
4)隱藏遠程訪問和同步等待延遲
在大規模並行計算機系統,特別是擁有數千個處理器節點的DSP(分布共享處理器)系統中,處理器訪問遠程存儲空間的延遲可以高達200多個時鐘周期。在如此大的系統中,多個節點間的同步等待延遲也不容忽視。傳統處理器通過忙等待或一個耗時很長的作業系統級執行緒切換來處理此類情況,隨著高性能計算對系統效率要求的不斷提高,這樣的處理方式已經不能滿足要求了。

相關詞條

熱門詞條

聯絡我們