過去的十幾年,計算機芯片制造商一直通過給芯片添加更多的核以提高芯片的速度。現(xiàn)在大多制造商提供8核、10核甚至是12核的芯片。
但如果芯片繼續(xù)按照以往的做法來提高,那么芯片很快就會需要數(shù)百甚至成千上萬個核。當然,學術(shù)界和業(yè)界的研究人員對提高多核芯片的性能有各種各樣的方法,但是他們的方法要想工作的好也得需要24核或48核的芯片,當核的數(shù)量更高時這就會帶來很大的問題。而目前,也沒有一個芯片制造商能提供充分的證據(jù)來證明他們在嘗試芯片設(shè)計的革新。
如今,麻省理工學院專注于計算機功能結(jié)構(gòu)的研究小組開發(fā)出了一個叫做“大黃蜂”( Hornet)的軟件模擬器,相比于以往的種種方法,它可以更精確的模擬多核芯片的性能。他們利用“大黃蜂”分析了一種多核計算技術(shù),并發(fā)現(xiàn)了一個其他模擬都沒有注意到的致命瑕疵。
通過帶有好幾百個核的芯片的數(shù)據(jù)流是非常復(fù)雜的,以往的軟件加速器一直是犧牲部分準確性而換來效率。對于更精確的模擬器來說,研究人員們通常使用可編程的芯片來模仿多核芯片的行為。各種各樣的計算機任務(wù)是通過一個芯片的許多部件(靠一個任務(wù)時鐘來同步)來執(zhí)行的,在每一次“時鐘周期”(clock cycle)里,每個部件執(zhí)行一項任務(wù)。“大黃蜂”比以往的方法要慢很多,但是它能提供一個相當于1000核芯片的“周期精確”的模擬。李哲明(音譯,Myong Hyon Cho)是該項目的開發(fā)者之一,他表示,“‘周期精確’意味著最終結(jié)果會精確到單個周期的水平,比如,該軟件可以讓這項任務(wù)進行1223392個周期直到完成。”
現(xiàn)有的模擬器擅長評估芯片的常規(guī)性能,但是它們可能會遺漏那些不常見的問題。而“大黃蜂”更可能把這些難發(fā)現(xiàn)的罕見問題偵查出來,它可以識別一種叫做“死鎖”(deadlock)的問題的風險,但其他的模擬器都會把這些問題遺漏掉。所謂的“死鎖”是這樣的一種情況:許多核正在等待被其他核使用的資源(通信渠道或內(nèi)存地址),但沒有核會放棄這種資源直到它被允許使用它需要的那個,因此時鐘周期會一直記錄不到任何核做任何事情的信息。按照李哲明的說法,“大黃蜂”正是為了補充以往方法的不足,而非與它們競爭。
除了能識別“死鎖”的風險,研究人員也提出了一種能避免“死鎖”的方法,證明了“大黃蜂”在硬件系統(tǒng)上的優(yōu)勢:它可以輕松被重新配置以檢驗替代性的設(shè)計方案。愛德華·蘇(Edward Suh)是康奈爾大學電力和計算機工程的副教授,他表示,構(gòu)建運行在硬件上的模擬器“要比只編寫軟件棘手的多”,在“快速精準檢驗幾種方案”方面,“大黃蜂”占有優(yōu)勢。并且,如果要發(fā)現(xiàn)一些異常行為,該軟件無疑是非常有用的。
在第五屆“芯片上的網(wǎng)絡(luò)”國際研討會上,該研究小組獲得了“最佳論文”獎。研究人員將很快展示“大黃蜂”的新版本,新版本會考慮能量消耗的因素,也會將核與核之間的通信模式考慮在內(nèi),同時也會考慮個別任務(wù)的處理時間和內(nèi)存訪問的模式。