為什么要采用多核呢?如果設計一款兩倍于原來大小的處理器,性能并會不增加到原來的兩倍,性能大概只會作平方根的增長,所以尺寸加倍并不會帶來同等數量級的性能增長,只會帶來大概1.4倍于原來的性能,即增長40%。這個被稱為Pollack定律(由英特爾工程師Fred Pollack定義),在單核系統中已經得到了證明。而芯片制造商力圖采用多個核心來提高性能和速度提升的系數。
但設計一個多核系統面臨一些新的挑戰。
通信的鴻溝
核心之間的通信也許是最關鍵的問題,因為在一些系統中會起到至關重要的作用。無需特別的測量,一般通信量的增加與核心的數量n是一個二次方程 (n+1)*n/2的關系,因此一個四核系統在通信數據量上相比單核系統會有成十倍的增加,一個16核系統會增加到原來的136倍,一個256核系統會增加超過32,000倍!因此一個核心之間的靈活的通信系統對于多核系統的工作是最基本的。
有幾個解決方案是采用中心存儲器來緩沖,不過當所有的處理器核都與存儲器進行內部通信時就會出現問題。一般會采用信息包開關網絡或其他架構。
我們可以做一個有趣的類比,假設這是一個人類組織,如果人數增多,交流就會變得困難,甚至會帶來瓶頸。如果是一個2個人或4個人的小團體,交流起來就簡單得多,如果人數超過20個或更多,就需要一個更有效的交流架構,比如每周例會、技術小組等等。
實踐表明一個6到8個人的小組是最為有效的。更大的小組需要合理的架構和其他形式的咨詢和協作。在多核系統中也是一樣的道理。
人為設計因素
人為設計因素同樣會影響多核系統的架構。在1990年我曾經在荷蘭埃因霍溫作個一個技術講演,我將設計分解為一個一個的模塊和模塊之間的互聯。同樣,連接的數目也同模塊數是一個二次方程的關系。 大功率電感廠家 |大電流電感工廠