• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 業界動態 > 多核系統設計標準

    多核系統設計標準

    作者:EEMBC創始人兼總裁 Markus Levy 時間:2008-03-21 來源:《 IQ 》雜志 收藏

           實施多核系統的最大挑戰是什么?對這個問題的回答當然是見仁見智,但是,如果您詢問大多數業界學者,他們會說是編程。

    本文引用地址:http://www.czjhyjcfj.com/article/80450.htm

           雖然很多公司和研究人員都在努力解決多核的編程問題,但是也有大量處理器供應商正在力爭改進其架構,以應對不斷增長的內核數目。例如,單核設備的數據總線只有“一張吃飯的嘴”,添加第二個內核后,總線負載就翻倍了。每添加一個內核,面臨的總線挑戰就呈線性增長。當內核數達到 80、500、1000或更多時,就令人難以想像了。

           但是也有好消息,處理器供應商(如ARM)正在改進其架構,以應對更高的數據吞吐率,這反映在所謂的互連技術中。同時還在實施其他技術,以應對不斷增長的內核數目。但是,業界對這些新型多核架構的性能如何進行定量測量呢?如何確定可擴展性?系統設計人員如何選擇最優的處理器?

            在最簡單的層面上,設計用于測試多核平臺的基準必須可擴展,以便支持從一個內核到“無限”多個內核的情形。要確定多核設備的性能開始背離線性預期、進入下坡路的那個點,這是有意思的。

            多核基準分類基本上有兩個最高層次:共享內存和以消息為基礎。共享內存方法依賴基于線程 API(如 POSIX)的語義。以消息為基礎的方法適用于非對稱異構多核解決方案。

          EEMBC(嵌入式微處理器基準協會)認為這兩種方法都可以有效支持必須處理一致性和分布式內存架構的嵌入式應用程序。

           要衡量處理性能,可以利用速度測量來確定處理器完成一項任務的速度;也可以測量處理器在一定時間內能完成的任務數量,稱為吞吐量或速率測量。

            在最基本層面上檢查一下共享內存多核基準,一類測試是對單個基準進行獨立并行執行。這種速率測量基本上是利用相同的輸入數據集,同時運行同一基準的多個實例,經過多個線程,所有線程運行完畢后,測量時間。這與S P E C速率基準(如 SPECint_rate2000)實施的傳統吞吐量測量技術相同。

           使用該方法的最大優勢之一就是它采用簡單的方法,易于說明和演示。該方法還可以輕松擴展至任意數目的并發執行上下文。一般來說,上下文數目與機器上的 CPU 數目相同,但這不是要求。這樣可以近似一種粗粒度并行方法,該方法有時在現實應用中會使用(例如多Vo I P通道)。但是,每個上下文使用相同的輸入數據集是不現實的。

           不僅如此,使用相同數據集還會使處理器L2緩存和內存總線上的效果降到最低并無法測試。

           E E M B C認為此方法只能測量單個內核的效率和處理器的總線帶寬。此方法并不測量真正的多核性能,它是在內核之間建立某種形式的通信、同步和共享內存。

            并且此方法不將多流分解或任何流之間的同步考慮作為測試結果的一部分。如果基準和工作負載不是設計用于多任務環境,此方法將很難反映這些算法在多任務系統中的實際使用情況。

           換言之,由于處理器/線程之間沒有或只有很少交互,此方法可以更有效地評測臺式系統。例如,它可以表示以下情形:

           瀏覽器運行的同時,還在播放聲音、編譯程序、檢查病毒、為圖片/文檔編索引,以及其他任務。

           測試多核可擴展性

           對上述方法的一項改進是讓每個線程上下文以唯一的數據集運行。這樣可以反映更真實的情況,例如多Vo I P通道的處理,其中每個通道接收不同的輸入數據。

            從系統級別基準觀點來看,此方法的價值在于它可以確保提升內存活動(如L 2緩存、內存總線)。此方法還可顯示解決方案在可擴展的數據輸入基礎上的擴展能力。

             換言之,要確定增加數據輸入個數時性能開始下降的那個點,是有意義的。制定此類基準測試時,最大的挑戰是:代碼對于線程必須是安全的,才能讓多個線程同時執行。特別地,它必須滿足多個線程訪問相同共享數據的需求,以及在任一給定時間,某一共享數據只由一個線程訪問的需求,同時不降低要求的性能吞吐量。

           制定可同時啟動多個項目的測試,對數據和代碼都執行并發,可進一步擴展上述方法。這可顯示一種解決方案對于通用處理的可擴展性。舉例來說,考慮執行MPEG decode(x),后跟 MPEGe n c o d e(x),類似機頂盒應用程序中的步驟,其中,會接收衛星信號、進行解碼并編碼成為另一種信號存入硬盤。作為基準評測,這需要上下文之間的同步以及確定評測何時完成的方法。

           另一種稱為任務分解(或算法并行)的方法允許多個線程合作實現統一的目標,可以顯示處理器支持細粒度并行的能力。例如線程中M P E G解碼算法的分解,其中每個處理一項不同的工作負載。

           由A R M的J o hn G o odacre領導的嵌入式微處理器基準協會(E E M B C)正在著手研究一套非常完整的新基準,它將針對多處理系統、多核處理器和多線程處理器。這些基準不僅測試系統級別的功能(即操作系統支持、內存性能),還將測試互連能力以及片上網絡(N o C)。換言之,這些基準將審視“整個產品包”。

           E E M B C的多核基準軟件將開始支持共享內存對稱多核處理器,并利用基于線程的A P I建立通用編程模型。這些基準的目標是上述三種并發形式,包括任務分解、多數據流處理和多工作負載處理。

           嵌入式行業好像已經非常認可多核技術,但是其性能之間的差距仍在增長。即將推出的行業標準基準將顯示多核處理器并行執行多個上下文的效率,并有助于推動處理器隨嵌入式細分市場并行資源的發展,同時提供中立的方法,供系統開發人員比較相互競爭的處理器。

    linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


    關鍵詞: 多核 嵌入式

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 长子县| 措勤县| 南阳市| 农安县| 镇沅| 乌兰察布市| 余庆县| 平湖市| 兴和县| 苏尼特左旗| 正阳县| 盐源县| 诏安县| 威远县| 湖北省| 德阳市| 措勤县| 抚远县| 定南县| 弥勒县| 阿拉善右旗| 会理县| 谢通门县| 乌拉特前旗| 台山市| 新巴尔虎左旗| 荥经县| 林周县| 无为县| 通山县| 凭祥市| 进贤县| 奈曼旗| 木里| 浑源县| 富平县| 神池县| 盱眙县| 合山市| 馆陶县| 曲水县|