AIX 5.3 的並發多線程SMT 與 intel的超執行緒有什麼區別?

來源:互聯網
上載者:User

傳統的CPU在某一時間只能處理一個指令序列,通常我們把它稱為一個線程。線上程處理的過程中CPU的處理單元需要不斷調入指令與資料進行處理。隨著CPU技術的發展,CPU的主頻與效能不斷提高,需要調入指令和資料的速度不斷提高。但不幸的是記憶體技術的發展並沒有跟上CPU發展的速度,記憶體通常無法提供足夠的指令和資料給CPU進行處理。

為瞭解決這個問題,業界通常採用多級緩衝的方式。CPU處理單元中的寄存器是最快的,通常一個CPU中有一、兩百個寄存器,它可以在一個刻度內提供指令和資料。其次是一級緩衝,他的大小通常為幾十KB,它需要幾個刻度的訪問時間。再下面是二級緩衝,他的大小通常為幾MB,它需要十幾個刻度的訪問時間。然後是記憶體,從記憶體中取得資料需要幾十個個刻度。而最慢的是硬碟,通常需要幾千甚至幾萬個刻度的訪問時間。

當CPU需要處理下一條指令時,他通常按照寄存器、一級緩衝、二級緩衝、記憶體、硬碟這一順序去尋找。但如果在記憶體中仍然找不到需要的指令或資料時。系統會進行Context Switch,終止此線程在CPU上的運行,使其處於等待狀態,而讓其他的線程運行,當此線程需要的資料被調入記憶體後,此線程處於就緒狀態,可以被調度到CPU上運行。線程間的Context Switch需要幾十個刻度。

由此可見當CPU需要從記憶體中取資料時,處理單元需要空轉幾十個刻度,有關統計顯示當前CPU處理單元的平均利用率不足25%。為了提高CPU處理單元的利用率,設計者採用了線程級的並行技術,即在CPU的核心中執行一個以上的指令序列。對於作業系統來說,一個物理的處理器相當於兩個邏輯的處理器,當前有三種不同的方式,實現多線程技術。

粗粒度的多線程,在任一時刻只有一個線程執行,當線程遇到一個長延遲事件時,如二級緩衝不命中,則系統調度另一個線程執行,而不是讓系統資源空轉等待此線程。這一機制可以提高整個系統的利用率。這兩個線程共用許多系統資源,如CPU的寄存器和緩衝等,因此這兩個線程的切換比Context Switch要快得多,只需要幾個刻度。IBM在使用PowerPC RS64 IV處理器的pSeries 680和pSeries 660-6M1上使用過這種粗粒度的多線程技術。

另一種與粗粒度的多線程技術相對的是細粒度多線程技術,採用這種多線程的系統迴圈的執行兩個線程的指令,這就需要在處理器的設計上增加許多冗餘的組件。如果一個線程遇到個長延遲事件時,對應這一線程執行的刻度仍然沒有被利用。

第三種多線程技術是同步多線程技術(SMT),與其他的多線程技術一樣,同步多線程能夠從多個線程中取出指令來運行,它能夠同時執行不同線程的指令。通過同步多線程技術,系統能夠動態調整系統內容,如有可能同時執行不同線程的指令。當一個線程遇到長延遲事件時,允許另一個線程使用所用的處理單元。

Power5 處理器的設計採用兩路的同步多線程設計,雖然更多路的同步多線程也是可能的,但類比現實,其所增加的系統的複雜性是不經濟的。另外一個需要注意的問題是,同步多線程技術可能會由於緩衝爭用而降低整個系統的效能。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.