多執行緒於未來運算應用的優勢與侷限

作者 : Imagination供稿

為了與現代應用的發展俱進,CPU架構飛快的演進中。CPU的設計路線向來有不少爭議:多執行緒對上多核心…

CPU是大多數數位科技的關鍵元件,為了與現代應用的發展俱進,CPU的架構也以飛快的速度演進。CPU的設計路線向來有不少爭議——多執行緒(Multi-threading)對上多核心,後者是運用完全相同的硬體同步執行程式,並視需要開啟與關閉各個核心,多執行緒則是利用較少的矽元件空間創造更多的運算力。

儘管從軟體的角度來預測用途有些複雜——單核心系統中的多個執行緒,對比多核心設計爭用資源,執行緒架構能協助業者獲得低空間成本效能。這對於服務品質要求較低的任務尤其有用,其使這類任務可選擇較佳的時機來執行運算。

什麼是多執行緒?

多執行緒是指CPU在最少的硬體投入下同時執行多個執行緒的能力,依照實際執行的應用,最多可藉由平行處理達到30%的效能提升。單一核心藉由執行緒層級的平行處理,以及指令層級的平行處理,幾乎所有現代系統架構都會同時運用這兩種相輔相成的技巧,從而提高處理資源的使用率。

在超純量架構中,指令層級的平行處理是運用多個平行執行單元,在同一時間發送多個指令。此外,當目前的執行緒無法找到足夠的指令層級平行機制,或是因為快取錯失或分支預測錯誤,多執行緒機制還能運用硬體執行另一個執行緒。

從軟體角度來看,多執行緒CPU就像具備多個CPU,而每個CPU都處於自身的狀態。(硬體)多緒和多核心架構在使用軟體執行緒時會透過硬體分離程式狀態,藉以免除內容切換(context switches)造成的負荷。多執行緒會共用整個記憶體結構,包括低階快取在內。這種作法允許各執行緒之間快速通訊,在向處理工作相同的執行緒伺服資料時便能提高效率。然而,有時執行緒也會相互干擾,導致某個執行緒的效能被其他執行緒影響。而反觀多核心架構則只會共用高階快取與主記憶體。

目前有非常多種類的應用受益於多執行緒CPU因為其允許CPU同時執行兩個或更多個程式片段,包括處理多個網路請求、即時控制與量測,以及媒體處理等作業。這種機制開創了新的機會,讓我們得以探討對確定性執行的即時需求,以及對比保證效能與高效率運用所有可用硬體資源的利弊得失。

 

 

多執行緒或多核心——何者最好?

其實兩者各有其優缺點。多核心架構提供專屬硬體執行應用而達到可預測的效能,在尖峰與低使用率時段可視狀況開啟與關閉核心。其缺點是會增加晶片硬體——如果多核心部分在大多數時間沒有啟用,這些部分的晶片便將浪費。某些使用情境可接受這種浪費,但在其他情境可能是不必要的成本負擔。儘管是針對多執行緒設計,但當應用在多核心系統中進行處理時,通常會在不同核心之間跳換,而這時快取就會裝滿資料並補償其處理速度——導致潛在設計效率缺陷更加嚴重。

多執行緒增加的晶片空間雖然壓縮至最少,但其開創更多餘裕空間來處理更高效能的要求,並能運用更多可用硬體來提升效率,更多部分的時段是用在運算上。不同於多核心架構,每個分緒需要共用快取與記憶體空間,因此更涉及資源管理、使用效率及可預測性。另外在設計與驗證過程中,晶片供應商會面臨更高的複雜性。

多執行緒能否用於確定性應用?

某些應用需要達到確定的反應時效,其通常受到終端應用對於服務品質的要求所驅動。多執行緒的實作可促成服務品質的控制機制,使執行變得可預測,藉由底層硬體的優先排程機制,達到執行緒的確定性。

RISC-V架構的CPU能否支援執行緒?

RISC-V架構在設計時可納入多執行緒的思維,藉此促成高效率的實作,但這並不屬於必要的需求。

從多執行緒的角度來看,硬體多執行緒對軟體而言極大程度是完全透明,每個分緒對軟體而言就像不同的處理器。然而,不同的執行行為也衍生出許多必須考量的情境。

 

 

未來運算的面貌為何?

隨著高效率運算的需求持續攀升,多加思索最佳化設計是必要的。多執行緒架構已廣泛發展,也帶來許多優點,目前在許多執行緒CPU,尤其是專為如5G數據機與連網應用設計的SoC中,晶片的效率會是其中一項要考量的設計目標。多執行緒若能運用得當,不僅能大幅提升效能,還能維持資源利用的最佳化。

  Imagination深刻體認新世代的SoC設計必須在功耗與效能之間取得平衡——公司於針對跨市場應用開發創新節能半導體IP方面累積了超過20年的經驗,應用涵蓋汽車、行動、消費、桌機與資料中心,以及數位電視。最近發表的Catapult RISC-V系列CPU內含多個核心,可支援多執行緒處理機制,其象徵公司跨出的一大步,使半導體製造商能擁有更多元選擇來開發差異化的異質運算解決方案。展望未來,對於評估多執行緒將如何協助業界開發獨有的差異化產品上亦是關鍵的一環。

(本文由Imagination供稿)

本文同步刊登於《電子工程專輯》雜誌2022年6月號

 

 

 

加入我們官方帳號LINE@,最新消息一手掌握!

發表評論

  1. 噗嚕^ↀᴥↀ^表示:

    嗯,這篇文章就是在推廣多執行。