多核處理器及系統(tǒng)設計面臨著一些新的挑戰(zhàn)
為什么要采用多核呢?如果設計一款兩倍于原來大小的處理器,性能并會不增加到原來的兩倍,性能大概只會作平方根的增長,所以尺寸加倍并不會帶來同等數(shù)量級的性能增長,只會帶來大概1.4倍于原來的性能,即增長40%。這個被稱為Pollack定律(由英特爾工程師Fred Pollack定義),在單核系統(tǒng)中已經(jīng)得到了證明。而芯片制造商力圖采用多個核心來提高性能和速度提升的系數(shù)。
本文引用地址:http://m.butianyuan.cn/article/201609/304681.htm但設計一個多核系統(tǒng)面臨一些新的挑戰(zhàn)。
通信的鴻溝
核心之間的通信也許是最關鍵的問題,因為在一些系統(tǒng)中會起到至關重要的作用。無需特別的測量,一般通信量的增加與核心的數(shù)量n是一個二次方程 (n+1)*n/2的關系,因此一個四核系統(tǒng)在通信數(shù)據(jù)量上相比單核系統(tǒng)會有成十倍的增加,一個16核系統(tǒng)會增加到原來的136倍,一個256核系統(tǒng)會增加超過32,000倍!因此一個核心之間的靈活的通信系統(tǒng)對于多核系統(tǒng)的工作是最基本的。
有幾個解決方案是采用中心存儲器來緩沖,不過當所有的處理器核都與存儲器進行內(nèi)部通信時就會出現(xiàn)問題。一般會采用信息包開關網(wǎng)絡或其他架構。
我們可以做一個有趣的類比,假設這是一個人類組織,如果人數(shù)增多,交流就會變得困難,甚至會帶來瓶頸。如果是一個2個人或4個人的小團體,交流起來就簡單得多,如果人數(shù)超過20個或更多,就需要一個更有效的交流架構,比如每周例會、技術小組等等。
實踐表明一個6到8個人的小組是最為有效的。更大的小組需要合理的架構和其他形式的咨詢和協(xié)作。在多核系統(tǒng)中也是一樣的道理。
人為設計因素
人為設計因素同樣會影響多核系統(tǒng)的架構。在1990年我曾經(jīng)在荷蘭埃因霍溫作個一個技術講演,我將設計分解為一個一個的模塊和模塊之間的互聯(lián)。同樣,連接的數(shù)目也同模塊數(shù)是一個二次方程的關系。
解決復雜問題的方法是應用和歸納概念的能力。這里,一些元件被看成是宏元件。
自下而上的設計,簡單的分解和構造各個元件直到達到最基本的構成 -- 邏輯門或是運算單元,例如,采用分級的方法,復雜的二次方程問題可以簡化為線性問題。
在設計一個多核系統(tǒng)中完成通信和設計復雜性的管理,選擇合適的架構、設計思想、工具的應用等等都非常重要。
功耗的平衡
降低多核系統(tǒng)的功耗和散熱處理是工程師面臨的另一個主要的問題。降低功耗可以通過限制每個核心的運算來實現(xiàn),稱為voltage scaling -- 每個核心的頻率和供電電壓可以根據(jù)每個處理核的任務運算兩來進行功耗優(yōu)化。
另一個要考慮的因素是可以由進程推斷的并行處理的數(shù)量,如果并行運算很少,采用多核來處理也就沒有什么優(yōu)勢。
多線程是處理并行運算的一個方法。在通信處理器里面寫軟件是另一個方法。這些技術由特殊的運算支持,以維持系統(tǒng)的精確度和一致性。
評論