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