簡單多核心與多執行緒並非完美無瑕
但這世界上沒有所謂「絕對」不變的準則,Google放砲是一回事,他們的觀點能否放諸天下而皆準,那又是另一回事。首先,在相同時脈時,簡單的核心也代表著較差的單執行緒效能,有如銀行希望櫃台可以同時服務最多的客人,卻又不希望讓每個顧客都在櫃台前等太久,在「終極多執行緒輸出率」與「頂級單執行緒表現」中,勢必取得一個平衡點。其次,要開發出兼具高效能與可靠度的多執行緒程式,其「驗證」的困難,遠超過一般人的想像。為提昇效能,會盡量希望同一塊資源,能盡其所能的被最多的執行緒所共用;但反過來,為確保安全性,最保險的作法,僅讓少數的執行緒存取相同的資源,甚至只讓單執行緒獨享。想想個人電腦端與企業伺服器端的應用程式有著多驚人的價差(一套大型資料庫賣個幾百萬台幣也不是什麼新鮮事,更罔論大型製造業導入的ERP),就可以瞭解不同市場軟體開發成本的懸殊差異。越高檔的應用,軟體在整台電腦所佔的成本比例就越高。耗電量則是另一個棘手的麻煩,用較多的「低時脈簡單核心」並不保證整顆處理器的耗電量就一定比較低。事實上,很多人老是喜歡把漏電流(leakage)和高時脈掛在嘴邊,講的好像製程縮小的耗電量問題「都是」該死的漏電流和「天殺」的高時脈造成的。但他們忽略了一點:有別於可以透過深沉睡眠模式來「裝死省電」的個人電腦,對隨時得醒著的伺服器的需求來說,實作一個低時脈、高執行單元數的多核心,遭遇漏電流的問題機率處理器的運作功耗,其實多半都比一個高時脈、較低執行單元數的較少核心產品來得高,用來連結晶片內大量核心的內部匯流排與交換器結構(Switching Fabric),難道就不是狂吃晶片面積的巨大耗電黑洞?更何況,越多的核心對記憶體頻寬更加嗷嗷待哺,更多的I/O與記憶體介面腳位,也更難縮小晶片的面積。也許讀者看到這裡腦筋會有點轉不過來,積體電路進一步微型化所面臨的最大問題,竟然是毫不起眼、用來連接晶片上所有元件的細微金屬線?從高度摻雜的矽、矽化物到金屬,許多材料都可以用來做導線。連線的主要問題來對於電流的電阻,與電線的電容,訊號傳過連線的延遲時間與所謂的RC因素,也就是連線的「電阻與電容的乘積」有關。我們假設將晶片的製程縮小一倍,理論上晶片面積變成四分之一,連線長度也依照同樣的比例微縮,連線與氧化層的接觸面積縮小為原來的四分之一,考量到氧化層厚度也跟著變薄,估計整體電容降低約一倍,這看起來似乎不錯。但連線依照比例縮小,卻產生嚴重的電阻問題,因連線的截面積變小,使得電流更不容易通過連線,這時候截面積縮小四倍,電阻等於增加四倍,加上電阻也與連線長度成正比,長度減為一半,結果整體電阻將將是原先的兩倍,換言之,電阻增加的倍數和電容減少的倍數相同,意味晶片縮小了,連線延遲卻還是固定的,不但限制晶片的速率與縮小的幅度,更增加提高時脈後的耗電量。
一般來講,銅導線的電阻較鋁導線來得低,由IBM領軍,近十多年來高效能汎用處理器的連線材料已從鋁轉向銅,其因在此。但材料本身也有其物理極限,不能克服所有的困難。像Sun近期發表的16核心/32執行緒/時脈2.1GHz的UltraSPARC RK「Rock」,晶片面積僅比同為65nm製程的四核心SPARC64 VII「Jupiter」還小一點,但電晶體數卻少50%,且耗電量更是兩倍之譜,更別提SPARC64 VII是為了頂級可靠度,整顆處理器90%電路都可修正單位元錯誤的超精密巨獸。God Father大大詳細介紹Intel用來挑戰NVIDIA/ATI繪圖霸權的「Larrabee」,在16核心/64執行緒/2GHz時脈的組態時,耗電量也起碼150W,結構複雜的內部匯流排,絕對功不可沒。
"It's not about perfect. It's about effort. And when you implement that effort into your life… every single day, that's where transformation happens. That's how change occurs. Keep going, remember why you started."
星期四, 10月 02, 2008
十月達人之路「x86處理器發展史」連載第11集之「消失的一頁」
坦白講,昨天拿到雜誌後,看到從六頁砍成五頁,而且拿掉我認為最重要的一段,真的差點快昏倒了,不過看在原本沒辦法上稿、bobo好心將我的文章勉強塞到十月號的份上,想想就算了,沒什麼大不了。
訂閱:
張貼留言 (Atom)
3 則留言:
我是學電機的,很抱歉,我看不出電晶體漏電機率與高層次的邏輯設計有何關係。
漏電問題確實愈來愈嚴重,以Pentium 4來說就達1/4,假若尖峰運作為80W,則即便完全閒置也要耗電20W,因為這20W的電能是漏掉的,即源極漏到基極。
另外電晶體導通時閘極絕緣不佳(指未使用Metal Gate技術之前),導通操控時也會漏到基極,所以Intel為了阻絕閘極的漏電才導入Metal Gate技術,名字叫Metal Gate,但主要是換去閘極絕緣層,換了絕緣層後原有閘極材料與新絕緣層適應不良,只好把多晶矽的非金屬閘極換成金屬閘極(回到原來MOSFET中的M字意義)。
我果然腦殘了,那句話根本就是錯的。orz
通訊成本(面積/耗電/時間延遲)隨著多核數增加呈現非線性的成長?
如果有多核數vs通訊成本的數據示意圖會更明顯.
張貼留言