21
用用用用用用用用用用用用用用用用用用用 Distributed Control Independence for Composable Multi-processors 指指指指 CAD Group Department of Electrical Engineering National Cheng Kung University Tainan, Taiwan, R.O.C 2012/1/28

用於可 組合式 多處理器之分散控制獨立分析 Distributed Control Independence for Composable Multi-processors

  • Upload
    hanne

  • View
    47

  • Download
    1

Embed Size (px)

DESCRIPTION

2012/1/28. 用於可 組合式 多處理器之分散控制獨立分析 Distributed Control Independence for Composable Multi-processors. 指導教授 :周 哲 民 學 生 :陳 佑 銓 CAD Group Department of Electrical Engineering National Cheng Kung University Tainan, Taiwan, R.O.C. Outline. Introduction - PowerPoint PPT Presentation

Citation preview

Page 1: 用於可 組合式 多處理器之分散控制獨立分析 Distributed  Control Independence for  Composable Multi-processors

用於可組合式多處理器之分散控制獨立分析

Distributed Control Independence for Composable

Multi-processors

指導教授 :周 哲 民 學 生 :陳 佑 銓

CAD GroupDepartment of Electrical Engineering

National Cheng Kung UniversityTainan, Taiwan, R.O.C

2012/1/28

Page 2: 用於可 組合式 多處理器之分散控制獨立分析 Distributed  Control Independence for  Composable Multi-processors

NCKU EE CAD

ASIC Lab 2 NCKU

OutlineIntroductionEDGE-BASED TFLEX ARCHITECTUREDISTRIBUTED CONTROL INDEPENDENCE (DCI)ResultConclusion

Page 3: 用於可 組合式 多處理器之分散控制獨立分析 Distributed  Control Independence for  Composable Multi-processors

NCKU EE CAD

ASIC Lab 3 NCKU

摘要可組合式多處理器採用大的指令窗口和分散式布置 (distributed

layout),而這兩種都將放大分支預測錯誤的損失。一旦檢測到分支預測錯誤,數百數千計的指令可能是運行中 (inflight)。

簡單摒棄所有的錯誤預測的分支指令,將是一個很大的浪費。在這些系統中,分支預測錯誤成為關鍵的瓶頸。

在本文中,我們介紹了分散式控制獨立 (Distributed Control Independence)( DCI)來減少在一個 TFlex可組合式多處理器的分支預測錯誤的瓶頸。

我們發現,只有一小部分的保存指令,其資料取決於控制相關的指令,需要重新執行。 DCI實現了高硬體的效率和效能可擴展性。

我們的實驗結果表明,運行於 16核心的 Tflex架構, DCI有效地減輕分支預測錯誤和速度可達幾何平均值為 35%.

Page 4: 用於可 組合式 多處理器之分散控制獨立分析 Distributed  Control Independence for  Composable Multi-processors

NCKU EE CAD

ASIC Lab 4 NCKU

Introduction(1/4)為了在一個線程中展現更多的並行性,目前處理器採用大的指令窗口和更深的管線級數,這兩者都在分支誤預測時,容易發生更嚴重的代價.

可組合式多處理器 [9]具有更大的指令窗口,並採用一個分散式的基體 (substrate),從而增加在 brand之間預測失誤檢測和報告的週期。

所以分支預測失誤將會造成很大的浪費在本篇論文專注於控制獨立性,利用在清除 (squash)分支預測中的相依控制指令,並讓控制獨立的指令繼續執行.

Page 5: 用於可 組合式 多處理器之分散控制獨立分析 Distributed  Control Independence for  Composable Multi-processors

NCKU EE CAD

ASIC Lab 5 NCKU

Introduction(2/4)

圖 1右邊部分是一個控制流程圖 (Control Flow Graph)( CFG)的,對應到左側部分中的代碼。

CFG包含 4個指令塊。

Page 6: 用於可 組合式 多處理器之分散控制獨立分析 Distributed  Control Independence for  Composable Multi-processors

NCKU EE CAD

ASIC Lab 6 NCKU

Introduction(3/4)在 1塊的分支錯誤預測的繼任者應該是塊 3。在檢測到錯誤預測,處理器與控制獨立性唯一的清除 (squash)塊 2,我們稱之為控制相依塊。

塊 4,這是我們稱之為控制獨立塊,並把他保留下來。正確的繼任者 (塊 3),塊之間插入 1和塊 4。控制獨立的模塊中的某些指示需要重新執行,因為他們的數據依賴關係改變後刪除 /插入控制相關塊。

例如,塊 4應該使用新的塊 3來計算正確的 b的值。

在分支預測錯誤,保留大量的指令,只有其中的一個小的子集需要重新執行後

如此可以減少浪費的指令,以增加效能.

Page 7: 用於可 組合式 多處理器之分散控制獨立分析 Distributed  Control Independence for  Composable Multi-processors

NCKU EE CAD

ASIC Lab 7 NCKU

Introduction(4/4)我們提出一種新穎的分散式控制獨立( DCI)在 TFlex可組合式多處理器。

TFlex效能的可擴展性由四個主要瓶頸所限制,其中之一為fetch stall[11]。

我們的評估顯示, DCI有效地減輕這瓶頸,顯著提高大量的核心 TFlex運行時的效能。

Page 8: 用於可 組合式 多處理器之分散控制獨立分析 Distributed  Control Independence for  Composable Multi-processors

NCKU EE CAD

ASIC Lab 8 NCKU

EDGE-BASED TFLEX ARCHITECTUREEDGE ISA EDGE ISA的設計目標是為單執行緒提供一個高效,低功耗和分散式的運行平臺。

EDGE編譯器將程式切分為單入口,多出口的指令塊。EDGE(Explicit Data Graph Execution) ISA支持兩種主要的特點:

1)不可分割的 (atomic)執行,提取和提交協議運行在指令塊上,而不僅是單個指令 ;

2)直接指令通訊,指指令塊內部的指令實現了資料流程執行,所有指令將其消費者指令的編號記錄在自身指令的編碼中。

Page 9: 用於可 組合式 多處理器之分散控制獨立分析 Distributed  Control Independence for  Composable Multi-processors

NCKU EE CAD

ASIC Lab 9 NCKU

DISTRIBUTED CONTROL INDEPENDENCE (DCI)(1/7)

正如在圖 1中示出, DCI從分支預測失誤恢復為以下三個步驟:

檢測分支預測錯誤時, DCI立即找出一個控制的獨立塊,稱再匯聚點(Reconvergent Point)( RP)。

清除在錯誤預測點 (Mispredicted Point)( MP)與 RP間的指令塊,然後插入正確的指令塊。

重新執行控制獨立的指令,修改其數據相依性。以下分別介紹這三個步驟

2.Incorrect path

2.correct path

3.Control independent

3.Control dependent

1.mis-predicted point 1.RP

Page 10: 用於可 組合式 多處理器之分散控制獨立分析 Distributed  Control Independence for  Composable Multi-processors

NCKU EE CAD

ASIC Lab 10 NCKU

圖三標示出 Distributed Reconvergence Predictor (DRP)在實際核心中的組成元件.

並利用圖一來描述 DRP如何運作.

Page 11: 用於可 組合式 多處理器之分散控制獨立分析 Distributed  Control Independence for  Composable Multi-processors

NCKU EE CAD

ASIC Lab 11 NCKU

DCI(3/7)初始化 (Initialization):

在塊 1檢測到錯誤預測,塊 1的協調核心會分配一個空閒的錯誤預測點緩衝器 (Mispredicted Point Buffer)( MPB),然後初始化每個項目內的MPB。關鍵的一個項目是控制流列表 (Control Flow List)( CFL),保存當前運行中的指令塊列表。

根據目前情況, CFL為塊 1→塊 2→塊 4→塊 1。預測和追蹤 (Prediction and track):

協調核心採用 PC(塊 1地址),與最後的預測 PC(塊 2的地址)和Next PC(塊 3的地址)指到再匯聚點表 (Reconvergence Point Table)( RPT)並檢索 RP(塊 4的地址),然後記錄到 MPB的 RP。

協調核心會在 CFL 探索 RP。如果發現 RP,將會廣播一個信號到所有相關 (participated)的核心去清除在 MP和 RP之間的指令(塊二)。

協調核心將重新訂定方向到正確的控制塊(塊 3)。當此流到達 RP,協調核心再次重新定向去獲取下一個 Refill PC(預測塊 1中的下一個數據塊的地址),然後釋放 MPB。

Page 12: 用於可 組合式 多處理器之分散控制獨立分析 Distributed  Control Independence for  Composable Multi-processors

NCKU EE CAD

ASIC Lab 12 NCKU

DCI(4/7)更新和追蹤 (Update and track):

如果沒有有效的 RP 給目前的 MP,處理器會清除所有在 MP後的指令,然後重新定向取到正確的控制塊。

當預測去提取一個新的指令塊,對應的協調核心檢查新的指令塊位址是否存在於 CFL中。

如果成功,它將使用該檢查地址去更新目前的 MP的 RP,然後釋放MPB。

當對應的核心結合再一起時,數個個別的 DRPs可以結合起來成為一個強大的 DRPs。

一個值得考慮的問題是,透過在 CFL 尋找的這些操作,所花費的時間成本。

幸運的是,所造成的延遲這些操作是微不足道的DRP 花費很少的硬件資源來實現高準確度

它使用每個核心只有不到 0.6KB資源

Page 13: 用於可 組合式 多處理器之分散控制獨立分析 Distributed  Control Independence for  Composable Multi-processors

NCKU EE CAD

ASIC Lab 13 NCKU

DCI(5/7)鏈接串列 (linked-listed) 的指令槽

TFlex合併指令窗口和 ROB到一 structureinstruction 槽中。 為了方便任意刪除 /插入,我們改變原來的 FIFO指令槽成鏈結串列 (linked-

listed)。 Tflex的指令獲取與提交協議以指令塊的形式來取代個別指令.

指令槽的邏輯長度遠遠小於實際總和插槽,這顯著降低了複雜性.分散式選擇性地重新執行

利用直接指令通信功能,輕鬆地重新執行 TFlex“dirty”的指令。一個 TFlex指令塊可以被劃分分為三個部分:

輸入指令 ( 暫存器讀取和儲存 ) 輸出指令 ( 暫存器寫入,儲存和分支 ) 中間指令 (所有其他指令 )。

Page 14: 用於可 組合式 多處理器之分散控制獨立分析 Distributed  Control Independence for  Composable Multi-processors

NCKU EE CAD

ASIC Lab 14 NCKU

圖 4 說明了如何提交遮罩和版本號的運作方式。這組圖形呈現一個指令塊的資料流程圖。

提交遮罩用來用來辨識所有的輸入指令. 版本號是用來區分不同版本的輸入指令.

Page 15: 用於可 組合式 多處理器之分散控制獨立分析 Distributed  Control Independence for  Composable Multi-processors

NCKU EE CAD

ASIC Lab 15 NCKU

DCI(7/7)圖四 (a)所有的輸入指令均執行 (fired),並且所有的輸出指令產生第一筆的版本號.

圖四 (b)R2會先在執行一次並從協調核心得到一個新的版本號 0x1,然後 R3與 LD 也會在執行,並得到版本號為 0x2, 0x4.

WR會先從最近的 LD中得到新的運算元,並通知協調核心,但協調核心辨認 WR的版本號應該為 0x5.

記憶體相依預測反轉 (Memory dependence speculation reversal) TFlex上的記憶體預測器依靠記憶體存取操作的先後和計數來提高預測

精度, DCI 技術需要動態地從指令視窗中間移除或插入指令,引入 DCI後,相當一部分應該被激進執行的記憶體讀指令被誤推測為保守執行,這就嚴重了影響了系統效能。這就擾亂了記憶體預測器的正常工作。

為了解決這個問題,我們簡單的將記憶體預測器的預測反轉,並且使用 DSR來恢復由此引入的違例。

Page 16: 用於可 組合式 多處理器之分散控制獨立分析 Distributed  Control Independence for  Composable Multi-processors

NCKU EE CAD

ASIC Lab 16 NCKU

Result(1/4)

顯示了各個測試程式運行在引入分散式控制無關技術的 TFlex上所獲得的效能加速比,對比的基本物件為程式運行在相同核數配置的原版 TFlex上獲得的效能。

在兩個核的配置下, DCI 總體幾何平均加速為 3.9% ;當擴展到4核時為 10.5% ; 8核時為 21.3% ;當把 16個核運行時,所有類別均獲得最大加速比,總體為 35.1%。

Page 17: 用於可 組合式 多處理器之分散控制獨立分析 Distributed  Control Independence for  Composable Multi-processors

NCKU EE CAD

ASIC Lab 17 NCKU

為了更好地分析 DCI對效能的影響,圖顯示了各個應用程式運行在 16核 DCI 配置下的分支預測失誤率

本文把分支預測失誤分成四個類別。 第一類是發生分支預測失誤時沒有可預測的匯聚點,記為 PF。當沒有在匯聚點表中找到有效的匯聚點時會導致第一類情況的發生。

第二類是匯聚點預測成功,但沒能在人控制流鏈表中找到期望的匯聚點,記為 PS-FF。

第三類是在控制流鏈表中找到匯聚點,但其後的控制流沒有到達匯聚點,即匯聚點預測錯誤,記為 FoR-FR。

最後一類是成功到達匯聚點,記為 RR。只有 RR 類的分支預測失誤才能被 DCI 覆蓋。

Page 18: 用於可 組合式 多處理器之分散控制獨立分析 Distributed  Control Independence for  Composable Multi-processors

NCKU EE CAD

ASIC Lab 18 NCKU

Result(3/4)

顯示了各個應用程式運行在 16核 DCI 配置下最後提交的指令組成情況。

在圖 4.6中,所有應用程式最終提交的指令被分為兩大類: 1)沒有被分散式控制無關覆蓋( NS); 2)被分散式控制無關覆蓋,即控制無關指令,其中又可分為需要重執行的控制無關指令( SR)和不需要重執行的控制無關指令( SNR)。

總體上來看, RR 占分支誤預測數目總和的比重越高, DCI指令占最終提交指令的比重就越高;

SNR 占 DCI指令總數的比重越高,程式獲得的加速效果就越明顯。

Page 19: 用於可 組合式 多處理器之分散控制獨立分析 Distributed  Control Independence for  Composable Multi-processors

NCKU EE CAD

ASIC Lab 19 NCKU

顯示了 DCI 技術和原版配置在不同核數的 TFlex上運行多種應用程式時取得的平均效能,所有效能資料都除以單核 TFlex的效能資料。

運行在引入 DCI的 TFlex上時,四種應用程式的效能都比運行在原版配置上的效能要好,並且表現出很好的效能可擴展性。

特別是從 8核到 16核的配置時, DCI 技術獲得的加速比前面任何一種核數擴展帶來的加速都好。

Page 20: 用於可 組合式 多處理器之分散控制獨立分析 Distributed  Control Independence for  Composable Multi-processors

NCKU EE CAD

ASIC Lab 20 NCKU

Conclusion本文提出了在可組式多核心架構上的分布式控制獨立 (DCI)DCI可以避免當分支預測失誤時,消除不必要的控制獨立指令.

分散式的在匯聚預測器涵蓋了大量的分支預測失誤,這説明的處理器節省 post-reconvergent的指令。

大部分的保存的指令為資料獨立的,不必要的被重新執行。

DCI 降低可組合式多處理器 fetch stalls的瓶頸,導致整個系統效能有著顯著的改善。

Page 21: 用於可 組合式 多處理器之分散控制獨立分析 Distributed  Control Independence for  Composable Multi-processors

NCKU EE CAD

ASIC Lab 21 NCKU

Thanks for your attention.