提出一個靈活多核處理器結構: FTPA.首先,通過將單個超塊獨立映射到單個物理核,F(xiàn)TPA 有效減少了超塊執(zhí)行時指令間通信開銷。其次,通過將物理核資源劃分為需要頻繁調(diào)整的計算資源和不經(jīng)常重構的共享資源分別管理,F(xiàn)TPA 有效降低了邏輯核的重構開銷。最后,通過將計算資源在邏輯上組織成環(huán)形拓撲,F(xiàn)TPA 實現(xiàn)了邏輯核的任意粒度調(diào)整,提供高度的靈活性。運行SPEC2K 測試程序的結果顯示,F(xiàn)TPA 比已有的靈活多核結構TFlex 性能平均提升19. 2% .
隨著半導體技術的發(fā)展,處理器設計進入多核時代。在多核平臺上,單線程程序加速仍是一個關鍵問題,同時也面臨著巨大挑戰(zhàn): 一方面,程序的映射需要在并行性和通信開銷之間做出權衡,因為并行執(zhí)行在帶來并行潛力的同時,也伴隨著通信開銷的增加; 另一方面,由于應用的多樣性,程序之間以及程序內(nèi)部的不同執(zhí)行階段,并行性也存在巨大差異。因此,如何根據(jù)程序運行時的并行特征適當?shù)胤峙湫酒Y源、提高資源利用率,對于提高多核系統(tǒng)整體性能和降低功耗都有重要意義。
當前商業(yè)通用多核處理器主要基于傳統(tǒng)的單處理器核來構建,這種粗粒度的設計方案適合開發(fā)單個核上的指令級并行性和多個核上的線程級并行性,但并不能很好地解決多核平臺上單線程程序并行執(zhí)行問題。近年來學術界提出的處理器核可配置的靈活多核處理器方案為多核結構發(fā)展提供了一種嶄新的思路: 靈活多核處理器通常由很多同構的、性能較弱的小處理器核( 稱為物理核) 構成; 在執(zhí)行程序時,多個物理核可以根據(jù)程序當前的并行性特征,動態(tài)地組合成單個更大粒度的邏輯核。由于邏輯核可以集成多個物理核的指令窗口、發(fā)射寬度以及物理核內(nèi)的高速緩存等資源,因此具有巨大的并行性開發(fā)潛力。此外,在執(zhí)行過程中,這種2 級的組織方式,允許運行時系統(tǒng)根據(jù)不同應用,或者同一應用內(nèi)部不同執(zhí)行階段的并行性差異,動態(tài)增減邏輯核內(nèi)物理核的數(shù)量,從而在滿足應用并行性需求的同時,最大限度的提高資源利用率。
然而,現(xiàn)有的靈活多核處理器結構方案仍存在很多問題: Core Fusion, Federation,Voltron和WiDGET目前只支持靜態(tài)的、編譯器指導的邏輯核配置。TFlex雖然支持動態(tài)的邏輯核粒度調(diào)整,但是由于邏輯核內(nèi)分布式共享物理核的所有資源,導致邏輯核重配置的開銷巨大,不適合實時的細粒度的動態(tài)資源調(diào)整; 同時,TFlex 上單線程程序在多個物理核上激進的分布式執(zhí)行,也造成顯著的指令間通信和寄存器文件訪問開銷,限制了其邏輯核性能的可擴展性。
針對目前靈活多核結構存在的上述高通信開銷、高邏輯核重構開銷和低靈活性問題,本文提出一種新的靈活多核處理器結構FTPA ( flexibletiled processor architecture) . FTPA 采用顯式數(shù)據(jù)流圖執(zhí)行( EDGE) 指令集,將程序編譯成超塊( Hyperblock),并以超塊為基本單元進行推測執(zhí)行。 從程序執(zhí)行角度看,F(xiàn)TPA 可以根據(jù)程序的階段并行性特征,改變超塊級推測執(zhí)行的深度,從而保證程序的高效執(zhí)行。 從結構設計角度看,在邏輯核層次,F(xiàn)TPA 將易擴展的計算資源( 如ALU)和相對固定的共享資源( 如一級Cache) 進行邏輯上的分離,并將計算資源組織成環(huán)形的拓撲結構,從而實現(xiàn)了邏輯核任意粒度的增減,提供高度的靈活性。 在物理核層次,首先,F(xiàn)TPA 通過將超塊和物理核一一對應映射,有效降低了超塊執(zhí)行時指令間通信和寄存器文件訪問開銷; 其次,根據(jù)對超塊并行性特征的分析,F(xiàn)TPA 選擇4 發(fā)射的物理核設計,保證對超塊內(nèi)指令級并行性的高效開發(fā);最后,F(xiàn)TPA 將物理核內(nèi)指令窗口進行分體,與4套執(zhí)行部件相對應,從而降低了指令選擇發(fā)射邏輯復雜度。實驗評估表明,F(xiàn)TPA 在具備高靈活性的同時,比已有的靈活多核結構TFlex 性能平均提升19.2% .