Page 52 - MCU大廠分享10億級出貨秘訣
P. 52
48
多執行緒於未來運算應用的優勢與侷限
Imagination供稿
CPU是大多數數位科技的關鍵元件,為了與現代應用 的發展俱進,CPU的架構也以飛快的速度演進。CPU 的設計路線向來有不少爭議——多執行緒(Multi- threading)對上多核心,後者是運用完全相同的硬體 同步執行程式,並視需要開啟與關閉各個核心,多執 行緒則是利用較少的矽元件空間創造更多的運算力。
用高階快取與主記憶體。 目前有非常多種類的應用受益於多執行緒CPU,
儘管從軟體的角度來預測用途有些複雜——單核 心系統中的多個執行緒,對比多核心設計爭用資源, 執行緒架構能協助業者獲得低空間成本效能。這對於 服務品質要求較低的任務尤其有用,其使這類任務可 選擇較佳的時機來執行運算。
因為其允許CPU同時執行兩個或更多個程式片段,包 括處理多個網路請求、即時控制與量測,以及媒體處 理等作業。這種機制開創了新的機會,讓我們得以探 討對確定性執行的即時需求,以及對比保證效能與高 效率運用所有可用硬體資源的利弊得失。
什麼是多執行緒?
多執行緒是指CPU在最少的硬體投入下同時執 行多個執行緒的能力,依照實際執行的應用,最多可 藉由平行處理達到30%的效能提升。單一核心藉由 執行緒層級的平行處理,以及指令層級的平行處理, 幾乎所有現代系統架構都會同時運用這兩種相輔相 成的技巧,從而提高處理資源的使用率。
多執行緒或多核心——何者最好?
在超純量架構中,指令層級的平行處理是運用多 個 平 行 執 行 單 元,在 同 一 時 間 發 送 多 個 指 令。此 外,當 目前的執行緒無法找到足夠的指令層級平行機制,或 是因為快取錯失或分支預測錯誤,多執行緒機制還能 運用硬體執行另一個執行緒。
其實兩者各有其優缺點。多核心架構提供專屬硬 體執行應用而達到可預測的效能,在尖峰與低使用率 時段可視狀況開啟與關閉核心。其缺點是會增加晶片 硬體——如果多核心部分在大多數時間沒有啟用,這 些部分的晶片便將浪費。某些使用情境可接受這種浪 費,但在其他情境可能是不必要的成本負擔。儘管是 針對多執行緒設計,但當應用在多核心系統中進行 處理時,通常會在不同核心之間跳換,而這時快取就 會裝滿資料並補償其處理速度——導致潛在設計效 率缺陷更加嚴重。
從軟體角度來看,多執行緒CPU就像具備多個 CPU,而每個CPU都處於自身的狀態。(硬體)多緒和 多核心架構在使用軟體執行緒時會透過硬體分離程 式狀態,藉以免除內容切換(context switches)造成 的負荷。多執行緒會共用整個記憶體結構,包括低階 快取在內。這種作法允許各執行緒之間快速通訊,在 向處理工作相同的執行緒伺服資料時便能提高效率。 然而,有時執行緒也會相互干擾,導致某個執行緒的 效能被其他執行緒影響。而反觀多核心架構則只會共
多執行緒增加的晶片空間雖然壓縮至最少,但其 開創更多餘裕空間來處理更高效能的要求,並能運用 更多可用硬體來提升效率,更多部分的時段是用在運 算上。不同於多核心架構,每個分緒需要共用快取與 記憶體空間,因此更涉及資源管理、使用效率及可預
www.eettaiwan.com | 2022年6月
DESIGN CORNER