Global Sources
電子工程專輯
 
電子工程專輯 > 嵌入式技術
 
 
嵌入式技術  

多處理器和多執行緒技術分析

上網時間: 2006年08月03日     打印版  Bookmark and Share  字型大小:  

關鍵字:多處理器  多執行緒  MP  MT  超執行緒 

對無線系統設計工程師來說,清楚地瞭解單處理器上的多執行緒和利用多處理器處理之間的差異至關重要。行動電話是首個實現了雙核心設計的大量應用,然而雙核心實現對於許多需要高性能、低功耗的無線應用同樣適用。

當然,多處理器/多執行緒的話題同樣適用於除無線電之外的許多系統,最普遍的誤解是,多處理器和多執行緒處理器是具有同等軟體複雜度的同類技術。這一點應該會引起許多設計工程師的興趣。

重新考慮速度

在過去十年中,桌上型電腦處理器設計的差異化因素很簡單,就是速度。英特爾和AMD在處理器設計上都全力追求提高速度的方法,熱衷於領先競爭對手先行開發出更高頻率的處理器。

在搶先推出全球第一款1GHz處理器的白熱化競爭中,AMD脫穎而出成為贏家。但在這期間,業界慢慢開始認識到:處理器的時脈速度越高,硬體的複雜性也會隨之成長。

業界還意識到:速度提高的路線不可能無限制地走下去,需要採取其它辦法。除了改善處理器的效率外,透過多處理器(MP)或多執行緒(MT)技術實現多處理而獲得的執行緒級平行可以提高整體性能。

英特爾是第一個推動稱為超執行緒(Hyper-Threading)的MT技術的公司,而AMD則將自身定位於雙核心與64位元處理器。但是這個過程也變成了一場雙核心競賽,兩家公司都千方百計地要成為第一個為家庭和商業運算提供真正多處理器解決方案的公司。

最近,這種向多處理轉移的趨勢已推動著桌上型電腦的軟體技術進入嵌入式設計中。多年以來,嵌入式設計工程師一直在他們的設計中採用多處理器,以在有限的功率預算內提供所需要的運算性能。

在嵌入式市場現在真正的變化是:應用軟體必須把通用處理器單元視為一個多處理系統,以從可能實現的的更高性能和低功耗中獲益。

儘管MP和MT都為軟體開發者帶來了多處理的複雜性,可是當在這兩者之間檢查代價和複雜性的折衷因素的時候,你會發現並非一切都相同。

改變處理特性

為了不斷提高性能,IC設計工程師要為他們的下一代設計研究處理器架構,以提供滿足消費者需求的靈活性和可擴展性。

如果全新的架構不能沿用傳統的軟體,就會強烈阻礙在處理器架構中作出任何根本上的變化。運算技術發展歷史充斥著此類架構的案例。不論它們的運算性能多麼優越,也會因它們對軟體社群的需求和造成的中斷而未被採用。

任何向多處理架構的轉移都要考慮到這一點,因此必須找到一種方法,針對現有軟體的需求,平衡多處理在理論上的可行性。

此外,由於在嵌入式設備中的應用軟體和作業系統越來越多地採用並行行為,因而推動了向多處理的轉移。這種軟體的並行性有助於推進MP或MT(或兩者的結合)的應用,以實現下一代嵌入式設備所需要的性能和效率。

多處理器和多執行緒技術

MP和MT兩種技術都努力改善處理器的整體性能,並減少任何採用並行軟體執行緒的應用處理時間。

然而,這兩種技術在硬體上採用不同的方法來實現這些目標,並因此對於各種特定的軟體程式碼提供了不同程度的成功。

一個普遍的誤解,是認為MP和MT是相當的技術,且具備相等級的軟體複雜度。只要你看一下其它通用的多處理編程介面,就會發現這兩者之間的區別。這顯示程式設計師必須完全瞭解他們的多處理解決方案是基於MT、MP還是二者的結合。

當高頻率處理器存取較慢的記憶體時會產生一個延遲,該延遲導致執行單元中存在空閑週期,MT的目標就是利用這段空閑週期以增加處理器的整體性能。透過把執行緒適配到空閑週期中,核心的效率就得到提升。

然而,歷史顯示,這種多處理實現方法帶來的好處還很不明顯。MT本質上是一種單處理器技術,其中只有最小程度的處理器邏輯被複製以支援附加的硬體執行緒。通常是因為有了程式設計師的暫存器設置和足夠的CPU管理程式狀態,作業系統才可能視硬體執行緒為一個虛擬處理器。

之後,處理器邏輯的剩餘部份由各執行緒之間共享,而這會導致一個增加軟體複雜度的嚴重問題。在傳統的單處理器上執行兩個現有的應用程式,意味著作業系統要在兩個應用之間共享處理器資源,透過關聯切換(context switch)每秒在兩個應用之間交換執行10到100次。

關聯切換

正在執行的應用使用保存在處理器暫存器和記憶體中的執行狀態,這個狀態需要與現有的應用交換。在一個MT系統中,當執行單元停止的時候,產生關聯切換;關聯切換每秒鐘可能會產生數十萬次。

這種切換程度的極大增加要求在作業系統和MT硬體設計之間仔細協調。必須確保有足夠的複製硬體來限制執行狀態的保存和再次加載,並確定這不會成為處理器的主要成本。

很少為每個硬體執行緒進行快取記憶體複製。對於軟體編寫者,這意味著他們要非常清楚更高的關聯切換速率對快取記憶體以及應用程式帶來的影響。

在具有兩個獨立應用程式的簡單例子中,如果這兩個應用程式只是由作業系統做簡單的時間切片的話,MT機執行起來會比單處理器更慢。為了從MT技術獲益,軟體編寫者必須在表達軟體執行緒時非常注意,以使保存在快取記憶體中的執行狀態能在兩個執行緒之間很好地共享。

對於採用MT處理器的應用,這產生了更多的軟體複雜度,因為程式設計師要處理執行緒對共享的處理器資源的影響。然而,還有一些其它的硬體設計上的問題需要考慮。

多執行緒硬體

增加硬體執行緒增加了處理器的複雜度,而沒有從根本上改變處理器的微架構,還會影響到設計可以達到的整體峰值時脈速度。複雜度的增加也將增加整體功耗,甚至在執行單執行緒時也是如此。這些MT的複雜度降低了整個應用的性能,即使只有一個應用或一個執行緒正在執行。

當考慮到所有這些MT的代價相對於有限的性能增加,就很清楚為什麼業界越來越多公司導入雙核心和多核心MP解決方案。

MP將一個處理器設計中的大部份複製下來,以從多任務軟體中獲得最大的性能,而不會導致任何管理共享的處理器資源衍生的軟體複雜度。

實際上,如果你再次考察在兩個獨立的處理器上同時執行兩個獨立應用程式的案例,會發現整體性能將比單處理器高出兩倍。所有作業系統的關聯切換和在兩個應用之間的所有快取記憶體衝突都被消除了,而且每一個應用都能分別以全速持續執行。

對MP所做的明顯假設是:設計的成本要跟矽晶片面積一樣高出一倍,而MT是把多處理能力添加到嵌入式系統的有效得多的方法。

然而,在任何此類比較中都要考慮整體目標性能要求。採用最新的矽晶片實現技術和快取記憶體設計,完全有可能實現MP處理器在相同的矽晶片面積內提供與MT處理器相同的性能點。但是MP顯然具有另外的優勢─沒有額外的MT軟體問題。

多處理要進一步考慮的問題是功耗。MT本質上是一種更為複雜的單處理器,這樣就限制了單處理器所有的電源管理需求技術,如時脈閘控、待機模式、電壓和頻率調整等。

然而,在多處理器設計中,每一個處理器都可以採用這些單處理器技術,還有關閉整個處理器以節省所有耗電的能力。這就使得MP總是給軟體提供最大性能,而功耗直接與所完成的任務相關。圖1顯示了多執行緒和多核心處理之間的差異。


圖1:用MP和MT處理一組同等要求的多媒體工作負荷時節省的功率比較

MT實際上是從差距中獲取性能的技術,因為處理器的頻率和記憶體速度的提升不成比例。顯然在這些情形下MT是一種快速修復技術,隱藏了這些不斷成長的低效率問題。然而,這樣的方式會產生有限壽命和適用性問題。

這已經由桌上型電腦處理器設計所證明,處理器越來越高的時脈速度有一個與功耗相關的硬性極限,而不管其是否支援MT技術。

如果軟體具有並行性,更為有效的解決方案可能是直接從單處理器移植到一個可擴展的MP架構。在MP設計考慮了處理器間通訊和分散式MP快取記憶體間數據共享的影響後,幾乎沒有另外的相關軟體成本。這意味著MP系統可以利用高效的單處理器設計和更佳功效的優勢來實現超越MT處理器的性能和功耗的設計點。

可擴展的設計和性能

MP本質上採用的是分而治之的方法,透過把多個處理單元整合在一起,讓每一個處理單元能執行一個獨立的並行執行緒,利用模組化設計原理就建構了一個多處理器。

這使得整個設計沒有MT這麼複雜,風險更低,從而使系統設計工程師能夠在需要的時候簡單地插入另外的處理器。這種設計的簡單性使MP比MT的可擴展能力要強得多,因為在MT處理器中與逐漸升高的時脈速度相關的設計成本常常會限制其可擴展能力,特別是當考慮到,因為任意級別快取記憶體存取失敗而導致重要代價的時候。圖2以L2快取記憶體存取為例解釋了這種代價。


圖2:執行緒存取L2快取記憶體的代價

另一個選擇是在單個設計中同時部署MP和MT。然而,已經證實其相關的軟體複雜度被現有的多處理器作業系統和軟體編寫社群嚴重低估。

在這樣的設計中,存在一種基本矛盾,MT需要仔細管理處理器資源的存取和共享,而MP在執行獨立應用時具有高效率。許多系統設計工程師發現,實際上在禁用系統的MT後,他們實現了更高的性能。

考慮到許多軟體應用可能已經考慮到每種解決方案的特點而為其專門設計,所以籠統地聲稱一種方案比另一種更好是不明智的。然而,基於傳統的單處理器的MP具有更大的可擴展性,所以,在選擇開發策略的時候,軟體設計工程師現在就可以從一定程度的靈活性中獲益,他們可以為未來一段時間內軟體架構不需要變化而感到放心。

作者:John Goodacre

多處理器程式經理

ARM公司




投票數:   加入我的最愛
我來評論 - 多處理器和多執行緒技術分析
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首