2012年2月22日 星期三

多核心的異想世界

文章出處:電子工程專輯
http://www.eettaiwan.com/ART_8800661416_622964_NT_46ad3aa1.HTM?8800090775&8800661416&click_from=8800090775,8610866762,2012-02-17,EETOL,ARTICLE_ALERT

多核心的異想世界


Advertisement
在公路上,「禁止超速」的標誌處處可見。

馬里蘭州140號公路上有大量巡邏車來回,你當然可以超速,不過很快就會收到罰單。

然而,有一些限制是人們如何努力都很難打破的。最先躍入腦袋的自然是光速。不過,多處理器應該也算是其中一種。安達爾定律(Amdahl’s Law)已經告訴我們最大加速公式:

其中的f代表著無法平行處理的問題比例,n是處理器數量。在一個系統中,大約只有50%的問題可以平行執行,即使用再多的CPU,你所能得到的執行時間,依然只有你所增加的處理器的一半。

Gustafson定律 (Gustafson's Law)則認為安達爾定律過於保守,並指出有時候問題出在平行部份的純量處理要比在序列部份來得快。Google的Pagerank演算法就是一個例子。不過我很懷疑,在大多數的嵌入式系統中,Gustafson定律並不大合用。

不過,我想在許多情況下,安達爾和Gustafson必然都能保持樂觀態度,特別是在對稱式多核心處理器的運作方面。這些處理器都擁有兩個或更多的相同核心,每一顆核心都擁有自己的L1快取記憶體。這些核心們也共享L2和通用記憶體匯流排。若沒有L1,這些核心可能會癱瘓甚至無法使用。然而,供給這些核心的快取記憶體容量畢竟非常小,通常都只有32KB而已。而看看L2,情況可能更糟,因此推動了對主記憶體性能提升的需求。試想多達10幾個處理程序都處在等待情況,若此時再多加入一顆需要記憶體資源的CPU,那麼匯流排競爭的情況就會更加嚴重。不過,由於這些狀況都是高度不確定,而且其中一部份屬於非常特定的問題,因此很難對它們建立精確模型。

為此,美國桑迪亞國家實驗室(Sandia National Labs)的研究人員提出了一些有趣的資料,顯示在傳統平行問題影響下,多核心的優勢會快速減少。在雙核心到四核心的處理器中,部份執行時間會嚴重變慢。而到了八核心,情況會加倍惡化,而且沒有任何提升跡象。核心愈多,系統就愈慢。一款64核心解決方案顯示系統性能比四核心系統降低了一半的數量級。

許多主要的半導體供應商都在開發多核心處理器,在某些應用中,多核心確實可在速度和功耗方面帶來顯著優勢。但我仍然認為,多核心的優勢有些被誇大了。記憶體頻寬是一個巨大限制。採用非對稱式多處理技術通常是不錯的解決方案,當然,這還必須視待解決的問題性質而定。

最近,Venray Technology提出了一種新的處理器技術,看來似乎能解決記憶體頻寬問題。有別於傳統上為 CPU 添加 DRAM 的做法,這家公司反其道而行,為 DRAM 添加 CPU 。該公司開發出了一種超小型(僅具備20K電晶體)處理器,能與記憶體緊密整合。

將四顆這種微型核心與64MB DRAM 緊密排列的組合,其CPU電晶體總數僅佔記憶體的0.01%而已。Venray的公司網站上僅提供了部份技術資訊,不過這個想法相當引人矚目。(編按:有關Venray的設計資訊,可參考美國版《EE Times》之前報導的‘ Startup proposes processor on DRAM process ’一文)

本文作者Gack G. Ganssle是嵌入式開發專家,可透過jack@ganssle.com與他聯絡。他的個人網站是www.ganssle.com。

編譯: Joy Teng
(參考原文: Multicore madness ,by Jack Ganssle)

沒有留言:

張貼留言