引用:
作者ant1228
來源:電子工程專輯
在近日召開的多核心展覽會(Multicore Expo)上達成了一項明確的共識:在單一晶片內整合多個核心是兼具性能提升與控制功耗的最佳方式。但與會者警告說,除非業界能為多核心系統的編程和除錯開發出新的方法,否則多核心架構的優勢將無從發揮。
對目前的多核心系統進行編程是一項艱鉅的工作,因為這些多核心系統往往是一種採用對稱多處理技術(SMP)的2或4顆核心的同質系統。許多產業觀察家相信,未來的多核心系統趨勢將可能發展為包含有各種通用處理器、協同處理器與DSP,以及配備不同作業系統的異質多核心晶片。
而這樣的系統可能會變得很大。美國麻省理工學院(MIT)的工程與電腦科學系教授暨Tilera新創公司創辦人Anant Agarwal預測,新系統所整合的核心數量每18個月會成長一倍,而到了2011年時,具256個核心的系統晶片將會變得更為普及。
即使要發揮單純的多核心晶片優勢...
|
為了避免初學者看了這篇文章產生誤解,我嘗試解釋一下:
這篇文章指的是嵌入式系統的多core compiler問題,嵌入式系統的OS通常很簡易,排程能力弱,另一點最重要的它大都只執行單一特定的工作,因此在多 core時想要發揮效能的話,目前還是用人工的方式來分配task到不同core上執行。
如何讓compiler 能夠自動辨識單一program中的平行單元,並配置不同的處理單元實在是一大挑戰,這不只是發掘可平行運算單元這麼簡單,還有最佳化問題存在,因為多個core的處理能力可能並不相等,例如一個 ARM core + DSP core(這是目前常見的配置),哪個工作要給哪個core就很難決定,在加上communication cost那就更複雜了。
但如果是Desktop系統,情況就會好很多,因Desktop為多工,compiler只要支援multithread就能發揮多工效能(當然也是人工寫multithread來分配工作),所以需要compiler自動發掘單一program平行單元的需求並不急迫。