FTPA: 一種具有可配置核的靈活多核處理器結(jié)構(gòu)(二)
2 靈活多核處理器FTPA 結(jié)構(gòu)設(shè)計
2.1 現(xiàn)有靈活多核處理器結(jié)構(gòu)面臨的問題
● 通信開銷問題
靈活多核處理器結(jié)構(gòu)可以根據(jù)應(yīng)用特征,將多個物理核組合成一個功能強大的邏輯核。 邏輯核的粒度決定了有多少超塊可以被推測執(zhí)行,從而構(gòu)建不同大小的指令窗口。對于采用EDGE 指令集的結(jié)構(gòu)( 如TFlex),雖然超塊內(nèi)指令間的數(shù)據(jù)依賴關(guān)系在編譯時已經(jīng)獲得,但是由于長延遲指令的存在和訪存延遲的不確定性,即使依靠編譯器靜態(tài)地面向多個物理核 調(diào)度指令,也不能有效地隱藏實際執(zhí)行時超塊內(nèi)指令間的通信開銷。因此超塊在邏輯核上的平鋪式映射在很多情況下并不適合。
● 邏輯核重構(gòu)開銷問題
靈活多核處理器中每個物理核都包含構(gòu)成邏輯核的所有資源: 寄存器文件,指令窗口,執(zhí)行部件以及一級高速緩存等。 當多個物理核組合成一個邏輯核時,指令窗口和執(zhí)行部件可以很容易的組合,但寄存器文件和一級高速緩存的內(nèi)容則需要重建,因為這些資源里的內(nèi)容通常是按照地 址索引交錯存放的,一旦資源數(shù)量或者位置發(fā)生改變,則需要清空原有數(shù)據(jù)后重建。例如在TFlex 中,邏輯核的重構(gòu)就需要數(shù)千個時鐘周期,因此難以實現(xiàn)實時的細粒度資源調(diào)整。
● 靈活性問題
靈活多核處理器的主要特點是邏輯核的可配置性。 Core Fusion、Federation 和WiDGET 結(jié)構(gòu)由于緊耦合的設(shè)計,靈活性十分有限; Voltron 只能靜態(tài)地配置邏輯核粒度,缺乏實時性; TFlex 雖然提出了邏輯核的動態(tài)配置機制,但靈活性仍受到很大約束: TFlex 處理器包含32個同構(gòu)的細粒度物理核,通過4 × 8 的片上mesh網(wǎng)絡(luò)進行連接,要求邏輯核配置必須為2 × 2,4 ×4,2 × 4 等特定的mesh 拓撲,即物理核總數(shù)和mesh 邊長都是2 的指數(shù)倍。 這樣的限制有其軟硬件兩方面的原因: 一方面,由于TFlex 編譯器將超塊內(nèi)指令靜態(tài)調(diào)度到128 項的邏輯空間,因此2的指數(shù)倍大小的拓撲方便超塊指令從邏輯空間映射到硬件空間,如4 × 4 × 8 或4 × 2 × 16 硬件空間; 另一方面,寄存器文件和物理核內(nèi)的一級高速緩存等共享資源,由于采用地址交錯索引的方式,不規(guī)則的拓撲將使索引變得復(fù)雜。 因此,TFlex 邏輯核粒度只能在這些特定的拓撲之間切換,不僅限制了靈活性,而且也容易引起資源的浪費。
針對上述3 個問題,本文提出一個新的靈活多核處理器結(jié)構(gòu)FTPA. 相比于已有的設(shè)計,F(xiàn)TPA具有以下3 個技術(shù)創(chuàng)新點: 1 ) FTPA 將單個超塊獨立的映射在單個物理核上,降低超塊內(nèi)指令間通信開銷; 并且根據(jù)超塊級推測執(zhí)行的深度調(diào)整邏輯核的粒度,以此適應(yīng)程序不同階段的并行特征,提高資源利用率。 2) FTPA 將物理核資源劃分成需要頻繁調(diào)整的計算資源和不經(jīng)常重構(gòu)的共享資源分別管理,以此降低邏輯核重構(gòu)開銷。 3 )FTPA 在物理Mesh 網(wǎng)絡(luò)上建立額外的邏輯上環(huán)形拓撲的網(wǎng)絡(luò)連接計算資源,以此支持任意粒度的邏輯核,提供高度的靈活性。 以下2 節(jié)分別敘述FTPA 的物理核和邏輯核設(shè)計。