<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 從Multicore到Many-Core:體系結(jié)構(gòu)和經(jīng)驗

          從Multicore到Many-Core:體系結(jié)構(gòu)和經(jīng)驗

          作者: 時間:2012-11-07 來源:網(wǎng)絡(luò) 收藏

          編程模型

          這三種芯片代表了系統(tǒng)軟件開發(fā)人員三種完全不同的模型。Octeon Fusion非常專用:它是芯片基站。編程人員使用它時,將基站應(yīng)用線程映射到CPU、加速器和DSP上,通過中心共享高速緩存來同步線程。雖然可以在CPU之間或者在DSP之間動態(tài)映射任務(wù),還是需要在不同類型的處理器之間來回遷移一些任務(wù)。

          對于軟件設(shè)計人員,16核SPARC64在兩方面是完全不同的。所有這些處理器都是一樣的,都共享一個L2,因此,不需要將線程鎖定某一CPU。硬件加速器位于指令級,由編譯器推斷其使用,而不是由編程器進(jìn)行調(diào)用。您不需要在分立的硬件加速器之間輸入輸出數(shù)據(jù),確定正確的線程位于正確的CPU上,或者與松耦合輔助處理器同步。

          Xeon Phi在數(shù)量上與Fujitsu SPARC64芯片不同,北向有50個CPU,而不是16個。其互聯(lián)結(jié)構(gòu)也明顯不同,連貫環(huán)上有適度的專用L2,而不是完全共享的L2。毫無疑問,對于與以前IBM相似的Intel體系結(jié)構(gòu),雙環(huán)是最高效的芯片實現(xiàn)方式。

          Intel和Fujitsu芯片都具有同構(gòu)體系結(jié)構(gòu)的優(yōu)點,不需要專門調(diào)用硬件加速器,性能與具體位置無關(guān),沒有跑道方式那么復(fù)雜。軟件設(shè)計人員可以按照自己的方式,將任何混合數(shù)據(jù)流、多線程或者數(shù)據(jù)并行機映射到CPU中。

          那么,這到底意味著什么?

          很顯然,這三種完全不同的many-core芯片對軟件開發(fā)人員提出了不同的需求。但是,如果是這樣,這些SoC究竟給系統(tǒng)開發(fā)人員帶來了哪些問題呢?由于這些芯片是新出現(xiàn)的,因此,我們向其他公司中有many-core應(yīng)用的用戶提出了我們的問題。

          他們建議我們應(yīng)深入了解幾個不同的問題。一是配置:SoC需要多大的I/O帶寬、總線帶寬以及外部存儲器帶寬?第二,密切相關(guān)的問題是性能建模。芯片到底需要多大帶寬與它使用數(shù)據(jù)和產(chǎn)生數(shù)據(jù)的速度有關(guān)。第三是控制問題:SoC怎樣處理中斷?芯片初始化調(diào)試操作、電源管理和按序關(guān)斷時,都需要什么條件?還有功耗問題,在另一篇文章中專門解決了這一問題。

          的用戶還提出了另一個有用的建議:明確Octeon Fusion等異構(gòu)專用SoC與Xeon Phi等同構(gòu)芯片之間的不同。專家說,這兩方面代表了完全不同的挑戰(zhàn)。

          數(shù)據(jù)之后

          異構(gòu)many-coreSoC盡管在內(nèi)部組織上是圍繞共享存儲器和總線進(jìn)行構(gòu)建,而實際上用作數(shù)據(jù)流機。在某一工作模式下,已知數(shù)據(jù)流通過芯片的各種處理器來傳送,一般是固定的數(shù)據(jù)無關(guān)碼型。這些約束簡化了系統(tǒng)級分析。

          全球研究組織IMEC (比利時Leuven)的軟件無線電(SDR)研究部科學(xué)項目總監(jiān)Liesbet Van der Perre解釋說:“這些系統(tǒng)的存儲器數(shù)據(jù)流有很高的可預(yù)測性。在這些系統(tǒng)中,數(shù)據(jù)流定義了處理器和通路。在某些共享總線或者存儲器結(jié)構(gòu)中的某些點上,您會看到瓶頸,但這通常是可以預(yù)測的。”

          Van der Perre的計劃是采用可重新定義的粗粒度處理器陣列來實現(xiàn)移動SDR。芯片配置會隨著射頻工作模式而變化,但是,當(dāng)射頻保持在某一模式上時,配置會保持穩(wěn)定。那么,在某一模式下,陣列的行為實際上與靜態(tài)異構(gòu)體系結(jié)構(gòu)非常相似。一旦您理解了數(shù)據(jù)流之后,就比較容易對帶寬需求和功耗進(jìn)行建模。其實施要求主要來自算法級模型。

          這種實現(xiàn)方法是應(yīng)用異構(gòu)多處理器常用的方法,能夠以同樣的方式來使用同構(gòu)many-core系統(tǒng)。對于某一工作模式,可以將任務(wù)固定映射至處理器和存儲器,明確設(shè)計團(tuán)隊的配置需求,能夠解釋數(shù)據(jù)。由于這種映射,分析SoC體系結(jié)構(gòu)和算法描述體現(xiàn)了系統(tǒng)設(shè)計人員是否具有這方面的設(shè)計技巧。這也是Mercury計算機公司成名的原因之一,該公司是高端嵌入式計算公司,在PowerPC早期就使用了multicore和many-core體系結(jié)構(gòu),并率先使用了圖像處理單元(GPU)進(jìn)行信號處理。Mercury公司的技術(shù)總監(jiān)Scott Thieret說:“這成為我們增值的主要來源,使我們能夠與客戶一起工作,將數(shù)據(jù)流映射到硬件中。”
          通過固定映射,至少有信心在理論上對數(shù)據(jù)流和功耗建模。但這并不意味著很容易實現(xiàn)。Thieret說:“對這些系統(tǒng)建模和優(yōu)化來自于。您需要進(jìn)行很多測試。有一些重要的指南,例如,讓數(shù)據(jù)盡可能靠近處理器,利用芯片最佳數(shù)據(jù)移動模型等。但這要依靠經(jīng)驗。”

          動態(tài)挑戰(zhàn)

          一些規(guī)劃人員認(rèn)為many-core系統(tǒng)的未來是在另一方向:不是將任務(wù)靜態(tài)映射至處理器,而是流動的、虛擬化系統(tǒng),其中任何線程都可能隨時占用任何資源。在這一環(huán)境中,預(yù)測帶寬需求、處理負(fù)載甚至是功耗都會成為很復(fù)雜的任務(wù)。

          一家經(jīng)驗豐富的many-core系統(tǒng)開發(fā)公司內(nèi)部人士評論說:“出于這一原因,發(fā)售的很多系統(tǒng)性能都不是太好。開發(fā)人員能夠?qū)ο到y(tǒng)平均帶寬需求進(jìn)行建模,但是,他們低估了峰值需求,遇到了無法預(yù)測的瓶頸問題。使其能夠正常工作的唯一方法是降低系統(tǒng)性能。”
          他繼續(xù)解釋說:“很難預(yù)測這些系統(tǒng)中的總線競爭或者峰值帶寬。設(shè)計人員一般甚至都不會進(jìn)行嘗試;他們只是盡量做好總線和外部存儲器配置。他們設(shè)計,測試,并不斷重復(fù)。”

          這種不確定性意味著,在工程開始時,如果缺少工作參考設(shè)計,則無法知道某一many-coreSoC是否能夠滿足一些特殊的要求。解決的唯一方法是為系統(tǒng)提供過多的資源,使得資源競爭不會超出能夠使用的資源范圍。

          這樣做必然的結(jié)果就是增大了功耗。如果不能提前預(yù)測哪些處理器會全速運行,哪些會降速工作,哪些會在某些時刻關(guān)斷,那么,很難估算SoC和DRAM的功耗或者溫度。Thieret認(rèn)為:“很難預(yù)測功耗。總功耗等數(shù)據(jù)指標(biāo)幾乎與系統(tǒng)中的實際功耗不相干。您最好的做法是借鑒以前工程的經(jīng)驗,進(jìn)行大量的測試。在FPGA行業(yè)以外,還沒有很好的工具來進(jìn)行早期功耗估算。”

          誰在控制?

          如果理解了many-coreSoC的性能和功耗是很大的挑戰(zhàn),那么,也就知道這些芯片的系統(tǒng)控制同樣是棘手的問題。與前兩個問題不同,對于異構(gòu)、靜態(tài)映射的系統(tǒng),系統(tǒng)控制并不那么簡單。也不能通過過度設(shè)計來解決這一問題。Thieret提醒說:“系統(tǒng)控制是一個基本問題,隨著處理器數(shù)量的增加,會越來越復(fù)雜。但是,您必須解決這一問題。”

          最基本的難點在于將不同處理器中的任務(wù)與外部異步事件同步,例如,中斷、調(diào)試信號或者掉電等。即使是以清晰數(shù)據(jù)流模型為主的靜態(tài)系統(tǒng),如果需要對某一處理器中的任務(wù)進(jìn)行中斷,以響應(yīng)某一事件,那么,也很難弄清楚應(yīng)該啟動、暫?;蛘咧匦峦侥男┤蝿?wù)。

          在同構(gòu)虛擬系統(tǒng)中,只有系統(tǒng)管理程序知道某一任務(wù)所在的位置,幾乎不可能在正確的地方及時執(zhí)行中斷,在嵌入式操作系統(tǒng)中,會很難完成這一過程。系統(tǒng)設(shè)計人員可能要考慮中斷的替代方案,例如,讓一個處理器專門用于輪詢外部事件,或者使用中斷信號來啟動新服務(wù)線程,而不是中斷現(xiàn)有線程。這些方法都不能很好的解決SoC內(nèi)部和外部之間復(fù)雜的仲裁問題。

          初始化和關(guān)斷是同樣的難題。只是停止所有處理器上的所有線程,并不是一種好選擇,這可能會破壞數(shù)據(jù)結(jié)構(gòu),或者使得受控機處于危險狀態(tài)中。在出現(xiàn)電源完全失效等情況時,也會很難理解系統(tǒng)是怎樣工作的。一開始就會很難。一些設(shè)計團(tuán)隊已經(jīng)證實,能夠設(shè)計無法初始化的芯片。一些設(shè)計支持有序啟動,但是不在系統(tǒng)要求的時間范圍內(nèi)。Thieret看到:“不同的應(yīng)用有不同的需求。有時候,您有一個小時的重新啟動時間,而有時候,只有四秒的時間。” Many-core計算的前景很直觀:這是摩爾定律向前發(fā)展的唯一途徑。而采用many-core SoC來實際實現(xiàn)系統(tǒng)時,在系統(tǒng)理解、估算、配置和控制等方面會帶來很多新問題。SoC設(shè)計人員和系統(tǒng)設(shè)計人員一般通過參考設(shè)計來互相理解,這樣才能夠推動向前發(fā)展。


          上一頁 1 2 下一頁

          關(guān)鍵詞: Multicore Many-Core 經(jīng)驗

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();