Microsoft Word 朱守禮

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "Microsoft Word 朱守禮"

Transcription

1 先進工程學刊第七卷第四期 Journal of Advanced Engineering Vol. 7, No. 4, pp / October Anello: a New Multicore Interconnection Network for 64-cores Architecture by Using Synthesizable Verilog HDL * 朱守禮李耕學吳庭萱 Slo-Li Chu *, Geng-Siao Li, Ting-Xuan Wu 摘要近年來, 由於電腦系統吞吐量的需求快速增加, 使得多核心系統所包含的核心數量也隨之快速增長, 致使核心間互聯網路複雜度增加, 進而拉長了核心間的傳輸延遲 因此, 多核心架構之互連網路設計即成為影響效能的主要因素 有鑑於此, 本論文提出一個適用於 64 核心多核心架構的新式互聯網路, 稱為 Anello Anello 以環狀互聯網路為設計基礎, 加上 Cluster 概念, 將存取分為內部與外部兩種 系統以環狀互聯網路連接 16 個 Clusters, 每個 Cluster 連接一個 Forwarder 一個 AGENT 四個處理器及一個記憶體, 因此當核心數量擴充時, 將可以四倍數成長 本研究使用 RTL Verilog 實現 16 Cores 的 Anello 互連網路, 並以 Mentor Graphics ModelSim Verilog 模擬器模擬設計之功能性 並以 Novas nlint 進行可合成設計之語法校正 在使用 Synopsys Design Compiler, 並以 TSMC 0.13 μm 製程技術合成後,Anello 之工作頻率可達到 400 MHz 關鍵詞 : 多核心處理器, 晶片網路, 環狀拓樸, 互連網路 Abstract The continuous growing in the throughput requirement from modern computer makes more cores integrated into multicore chips. The latency to transfer delay from inter-core communication in these systems is dramatically increased due to the complexity of interconnection network. In this paper, a novel interconnection network, Anello, is proposed to solve the above problem. Anello adopts Ring structure and Cluster structure as the local networks and global networks respectively. The Ring structure, which connects 16 Clusters, provides the infrastructure of inter-cluster communication and every Cluster is composed by a Forwarder, an AGENT, four processors, and a memory module. Therefore, the scalability of Anello can be fourtimes grown up when the cores multiplied. By using synthesizable RTL Verilog HDL, the implementation of Anello with the configuration of 16 cores is functionally verified by Mentor Graphics Modelsim simulator, and the coding for synthesizing is also checked by Novas nlint. Furthermore, by using Synopsys Design Compiler, the result of Anello fabrication shows that it can achieve 400 MHz under TSMC 0.13 μm process technology library. Keywords: multicore processor, network-on-chip, ring topology, interconnection network I. 導論 電腦的起源來自於高速計算的需要, 例如 : 電漿物理 氣象科學與大眾運輸的模擬等, 這些計算皆是以多處理器的電腦為工具辦到的, 而多處理器電腦為追求高效能 [1-2], 會採用增加核心數目的方式, 使得溝通核心之互聯網路的效能也變的更加重要 本研究開發了一個新型多核心處理器互連網路架構, 名為 Anello 此架構包含 64 個單核心處理器以及將其連結的互聯網路, 且制定 Cluster 的概念, 將存取分為內部與外部兩種, 當程式在執行時, 多半要求存取 Cluster 內部的記憶體, 少部份才要求存取 Cluster 外部記憶體, 使的在互聯網路的設計上有著 Memory 中原大學資訊工程學系 * Corresponding author. Department of Information & Computer Engineering, Chung Yuan Christian University, Chungli, Taiwan, R.O.C. Manuscript received 31 January 2012; revised 11 April 2012; accepted 6 June 2012

2 194 Anello: a New Multicore Interconnection Network for 64-cores Architecture by Using Synthesizable Verilog HDL Locality 的特色, 另外,Cluster 中特別設計 AGENT 模組, 其功能為處理四個核心與互聯網路上的存取記憶體要求, 作為處理器 互聯網路和記憶體間的橋樑, 並以公平之 Round Robin 硬體仲裁機制做排程, 確保不會有存取要求 Starvations 本研究著重實現和設計一個可擴充性高的互聯網路, 由於環形互聯網路的拓樸 [3], 欲擴充電腦核心數目時, 不必花費額外的 Link 數, 所以以環形互聯網路為互聯網路的 Top Level 此外, 本架構中設計 Cluster 由 Forwarder AGENT 處理器及記憶體組成, 使互聯網路在擴充時, 核心數目直接以四倍數成長 為驗證此架構可行性, 本研究以可合成的 RTL Verilog 語法實作上述之互聯網路與處理器架構 [4], 最後以 Benchmark 的程式驗證此架構的功能正確性, 並藉由開發此多核心處理器架構, 深入探討多核心處理器系統所帶來的效能增益與可能之效能瓶頸 本論文在接下來的數個章節, 將會說明架構的開發流程 第二章先介紹相關研究, 接著第三章會詳細介紹互聯網路架構 設計理念與傳輸行為 ; 第四章則是敘述完整的開發流程, 逐步實現各個互聯網路並建構為多核心處理器 ; 最後第五 六章是實際模擬結果 效能分析和結論 II. 相關研究與背景 在接下來的幾個章節, 我們將介紹幾個商用多核心處理器架構及其使用之互聯網路架構 1. AMBA Advanced Microcontroller Bus Architecture, AMBA( 請參閱圖 1) 協定 [5] 是由 ARM(Advanced RISC Machine Ltd.) 公司為設計高效能嵌入式微處理機所發展並訂定的匯流排規格, 將匯流排分成高速與低速兩種, 並具有高效能 低功率及快速整合等優點, 且定義了三種不同的匯流排 : (1) AHB(Advanced High-performance Bus): 高速匯流排為連接系統中速度較快 使用頻率較高的裝置, 例如主記憶體界面 DSP 控制器等 (2) ASB(Advanced System Bus): 使用於不特別強調效能的系統模組, 但幾乎已被 AHB 所取代 (3) APB(Advanced Peripheral Bus): 使用於周邊的低耗電裝置, 因此強調降低功率消耗及簡化與周邊的介面 AMBA 匯流排以模組化的系統設計為重點, 以提高系統微處理機的獨立性, 使得晶片外部連接之匯流排可隨著系統晶片之不同有所差異, 其匯流排寬度有 32 位元 64 位元及 128 為元等多種定義,AMBA 的優點在於 BUS 架構較簡單, 但是同時間也只能夠有一筆傳輸, 導致對於核心數較多的系統, 在互聯網路上的傳輸時間將會是效能瓶頸 2. IBM Cell Processor Cell 處理器 ( 請參閱圖 2)[6] 是由日本新力 新力電腦娛樂 東芝 美國國際商業機器 (IBM) 公司聯合開發 用於高速運算的處理器 它是以 RISC 指令體系的 PowerPC 架構來設計的, 並具有高時鐘頻率 高執行效率等特點 Cell 處理器架構 ( 請參閱圖 2) 基本上包含 : (1) PPE(Power Processor Element):PPE 為雙向 Multithreaded 的核心, 當作八個 SPE 的 Controller (2) SPE(Synergistic Processing Elements): 由 SPU (Synergistic Processing Unit) 協同處理單元和 MFC (Memory Flow Controller) 包含 DMA MMU 匯流排介面 (3) EIB(Element Interconnect Bus): 匯流排連接 cell 處理器系統內部各個元件 :PPE 處理器 MIC(Memory Controller ) 八個 SPE 協同處理器與兩個 I/O Interfaces, 共十二個 IP EIB 目前以一個圓環 (Circular Ring) 組成四個 16 B-wide 單向通道 3. Torus Based Architecture Torus 拓樸 ( 請參閱圖 3) 又叫做一個 k-ary n-cube [7], 為一個 n 維度網格狀網路, 每個維度各有 k 個節點, 例如 :1-D Torus 為一個基本環狀互聯網路, 一個 圖 1 AMBA 系統架構圖 圖 2 IBM Cell 處理器架構圖

3 朱守禮李耕學吳庭萱 Slo-Li Chu, Geng-Siao Li, Ting-Xuan Wu 195 表 1 Bus Ring 2D Torus 與 Anello 的比較表 64 nodes Bus Ring 2D Torus Anello BW Bisection in # links Max Hop count Number of Switches NA Number of Net Links Total Number of Links 個節點的環狀互聯網路就是 4-ary 1-cube, 此互聯網路是其中一種簡單的 NoC 拓樸, 但是當節點數越增加, 效能就越下降, 使得在擴充性上有極大的限制 Blue Gene [8] 是一個由 IBM 主導的計算機系統結構計劃, 用來製造一系列的超級計算機, 已達到千兆 (=1015) 每秒的浮點運算的能力, 此種大規模的多核心超級電腦採用 3D Torus(32*32*64) 的互聯網路, 總共連接 65,536 個節點 本論文將相關研究內的三個互聯網路與本研究所設計的互聯網路 Anello 做效能與成本的初步比較 ( 見表 1) 在效能的比較上,Bus 為基本參考的網路, 雖然成本及效能佳, 但其可擴充性極低,Anello 可連接處理器數目會多得多 ; 與 Ring 和 Torus 相較之下,Anello 的 BW 雖比 Torus 差, 估計 Cluster 內部的四個處理器已夠程式的基本運作, 因而存取到 Cluster 外部的行為會少得多, 所以採用 Ring 作為主體互聯網路, 可維持高度可擴充性且效能不至於影響太多 在成本的比較上, 用到的 Switch 數和 Link 數,Anello 都較 Ring 和 Torus 少, 作為互聯網路效能最差情況的 比較上,Max Hop Count 也較 Ring 要少 關於 Anello 互連網路的架構與主要元件, 請詳見第三節所述 1. 架構概述 III. Anello 互聯網路架構介紹 本研究參考及評估相關的互聯網路 [9] 種類後, 本論文考量成本低 可擴充性高的原則, 以 Ring 這種簡單的互聯網路做為設計基礎, 加上 Memory Locality 的優點, 設計出互聯網路的架構與特性 以單向環為互聯網路基礎, 四個處理器 一個記憶體模組及一個 AGENT 模組組成一個 Cluster, 再將十六個 Cluster 以單向環連接起來, 即為一個 64 核心 Anello 的多核心處理器架構 ( 請參閱圖 4), 後續的章節將以簡化的 16 核心 Anello 多核心架構作說明和實作 2. 拓樸介紹 Anello 互連網路之拓樸以單向環為基礎, 整合四個處理器 一個記憶體模組及一個 AGENT 模組組成一個 Cluster, 再將四個 Clusters 以單向環連接, 即為 16 核心 Anello 多核心架構 ( 請參閱圖 5) 處理器若是提出要存取 Cluster 內部的記憶體模組的要求,AGENT 便會負責幫處理器對記憶體模組發出存取要求, 不用將存取要求與資料送到環狀互聯網路上面做傳輸, 但是若同時有多個處理器提出存取記憶體模組的要求,AGENT 便需負責替記憶體模組仲裁要允許哪一個處理器的存取要求 圖 3 Torus 互連網路 圖 4 64 核 Anello 多核心架構

4 196 Anello: a New Multicore Interconnection Network for 64-cores Architecture by Using Synthesizable Verilog HDL 處理器若是提出要存取 Cluster 外部的記憶體模組的要求, 則需透過 Cluster 內部的 AGENT 將存取記憶體所需的要求與資料送至環狀互聯網路, 網路上的 Forwarder 會將正確的資料送至正確的 Cluster,Cluster 允許外部存取後, 記憶體會將回覆的資料再傳到環狀互聯網路上,Forwarder 會將回覆的資料在網路上繼續往下傳, 當回到發出存取要求的 Cluster 時, 將回覆資料傳給 AGENT,AGENT 再將資料回覆給處理器 Cluster 外部的存取要求, 完整的資料路徑會是剛好走完一輪環狀互聯網路 3. Top level: Ring Protocol 16 核心 Anello 多核心架構以環狀互聯網路 ( 請參閱圖 6) 為基本架構, 連接四個 Clusters,A 節點代表環狀互聯網路上的 Forwarder 元件,B 節點代表 Cluster 與 Forwarder 元件溝通的 AGENT 模組, 環型互聯網路的架構為一個節點和另外兩個節點相連接, 形成一個環狀且連續的路徑 此低成本網路的可負載程度比匯流排網路佳, 且此種網路上電腦或設備間的連接與傳輸行為不需要有網路伺服器來管理, 為分散式網路的其中一種 環狀互聯網路為依次且有序的網路, 使得每一個在網路上的節點或設備都有機會可以進行存取與傳輸行為,Anello 為維持環狀互聯網路此優點, 設定連接 4 個 Clusters 的環狀互聯網路為單向連接的架構 Anello 使用此網路作為外部存取的方式, 連接四個 Clusters,Anello 在環狀互聯網路上加上 Forwarder 元件, 若同時有多個存取要求, 需仲裁其中一個存取或回覆要求通過, 可以避免資料漏傳的情形發生, 且最遠和最近的傳輸所需經過的路徑都剛好為四個 Cluster( 包含自己 ) 4. The Architecture of Cluster 一個 Cluster( 請參閱圖 7) 內包含的元件有四個處理器 一個記憶體模組 一個 AGENT 模組, 論文接下來的篇幅將介紹上述各個元件與模組功能等在細節上的說明 IV. Anello 環狀互聯網路重要模組設計 1. AGENT-Handshaking Methodology(FSM) 一個 AGENT 連接四個處理器, 一個記憶體與互聯網路, 其主要功能在於維持 Cluster 內部處理器與記憶體的 Handshaking 處理 CPU 及外部對內部記憶體的存取要求 和接收外部回應資料 在 Anello, 互連網路設計裡, 一個 Cluster 包含四個處理器, 這四個處理器以點對點 (Peer-to-Peer) 的方式, 分別與 AGENT 連結, 如圖 7 所示 所有處理器的記憶體存取, 不論是 Intra-Cluster 或 Inter-Cluster, 均由 AGENT 的排程機制統一管理, 如此可大幅度減少處理器間, Handshaking 所需要的時間, 且記憶體模組限縮於一個, 將可大幅度減少記憶體資料匯流排所需之對外 Pin 腳與 I/O Pad 數量 亦可提高本互連網路的實用性 尤其對於共享記憶體式多處理器架構, 共用一個記憶體模組將可大幅減少記憶體存取成本 但同時, 若同一 Cluster 的處理器過多, 每個處理器所分配到的有效記憶體使用時間將會大幅度減少 因此在本架構裡, 將同一 Cluster 的處理器個數限縮為四個, 以符合一般多核心架構, 單一記憶體通基本上僅供四個處理器使用的設計策略 當 Cluster 內有外部存取要求時,AGENT 將暫時不允許內部其他 CPUs 提出外部存取要求, 待外部記憶體回應資料傳送回 Cluster 後,AGENT 才會再允許下一筆外部存取要求 AGENT 的 FSM( 請參閱圖 8) 初始狀態為 Idle, 當有一個至多個存取要求輸入時, 則滿足條件轉移至 Send 狀態, 此狀態會將存取要求與資料傳給 Arbiter, Arbiter 會判斷存取要求為內部或外部, 允許存取內部記憶體之其中一個要求, 待 Arbiter 傳回 arb_rdy 訊號表示已將仲裁結果輸出回給 AGENT, 則轉移至 AccessMem 狀態, 向內部記憶體提出存取要求, 當記 圖 5 16 核心 Anello-Lite 多核心架構 圖 6 Anello 環狀互聯網路 圖 7 Cluster 架構圖

5 朱守禮李耕學吳庭萱 Slo-Li Chu, Geng-Siao Li, Ting-Xuan Wu 197 憶體回傳 ready 訊號 (MEM_rdy) 表示欲回應資料已傳送後, 傳回應資料給發出存取要求之 CPU 或外部來源, 若發出內部存取要求者為內部 CPU, 則轉移至 Wait_CPU 狀態, 等待 CPU 回應 Ack(CPU_ack) 表示已順利接收回應資料 ; 若發出內部存取要求者為外部來源, 則轉移至 Wait_Fwd 狀態, 等待外部來源回應 ready 訊號 (ex_rps_rdy) 表示已順利傳送回應資料至 Cluster 外部互聯網路, 最後, 轉移至 Finish 狀態, 將輸出 port 初始化, 下一個 cycle 回到 Idle 狀態 由於 AGENT 的仲裁與排程機制, 主要以 FSM 所構成, 可於一個週期 (Cycle) 內完成排程相關運算, 並可取代原有的多核心記憶體管理模組, 因此使用 AGENT 將不會影響系統效能與工作頻率 各個相關模組 決策仲裁機制請詳見下文所述 2. Forwarder Anello 特別在環狀互聯網路放上 Forwarder 元件 ( 請參閱圖 9), 其功能是用來負責外部的傳輸行為能正確且有效的執行 不論是存取外部的記憶體或是存取內部的記憶體的存取要求與資料都會輸入 Forwarder, 而不屬於外部存取的傳輸資料會有自動篩選的機制, 使得應該在內部作存取動作的資料還是留在內部的 Cluster 作存取 所以一個 Cluster 分配有兩個不同種類的 Forwarder, 第一種是負責接收和傳輸存取要求與存取所需資料的 Request Forwarder( 請參閱圖 10), 同時會有兩種類型的輸入資料, 第一類型是來自 Cluster 內四個處理器的存取要求與資料, 第二類型是來自前一個 Request Forwarder 的存取要求與資料 第二種是負責接收和傳輸記憶體所回覆處理器之要求與存取後結果資料的 Response Forwarder( 請參閱圖 11), 同時也會有兩種類型的輸入資料, 第一類型是來自 Cluster 內部記憶體的回覆資料, 第二類型是來自前一個 Response Forwarder 的回覆資料 另外上述兩個不同種類的 Forwarder:Request Forwarder 和 Response Forwarder 之間會維持一個 Handshaking 的機制 ( 請參閱圖 12), 目的是為避免有資料被覆蓋或是漏掉的危險性 當 Request Forwarder 確定有外部的存取要求與資料要在 IN 上面傳輸後,Request Forwarder 會傳 Rps_rdy 訊號給 Response Forwarder, 而 Response Forwarder 就會知道要等待外部的記憶體將回覆的要求與資料傳送回來, 同時在此筆外部存取要求之回覆資料傳輸回來前,Request Forwarder 暫時不會允許下一筆來自這個 Cluster 的外部存取要求 圖 10 Forwarder for Request Data 圖 8 AGENT FSM 狀態圖 圖 9 Forwarder Overview 圖 11 Forwarder for Response Data

6 198 Anello: a New Multicore Interconnection Network for 64-cores Architecture by Using Synthesizable Verilog HDL 當 Response Forwarder 接受到外部記憶體所回覆的要求與資料且確認此傳輸為本 Cluster 之回覆資料時,Response Forwarder 會傳 Grant_rdy 訊號給 Request Forwarder, 而 Request Forwarder 就會知道可以允許下一筆來自這個 Cluster 的外部存取要求 不論是負責處理存取要求資料的 Request Forwarder 還是負責處理記憶體回覆資料的 Response Forwarder, 都包含了以下兩個主要元件 1. Arbiter 上述兩種類型的 Forwarder 內部都各有一種 Arbiter, 雖然實質上對 Forwarder 的意義與結果都是用來仲裁一筆輸出, 但是,Arbiter 內部的工作卻不相同, 因此以下將就兩種不同的 Arbiter 分別作說明 Request Forwarder 內部 Arbiter( 請參閱圖 13) 的功能是仲裁屬於外部存取要求與資料的五筆輸入, 仲裁的結果為一筆輸出, 五筆輸入分別為四個處理器的存取要求與資料和一筆來自前一個 Forwarder 的存取要求與資料 將所有對記憶體的存取要求都輸入進仲裁器, 再判斷是否為外部存取要求, 將內部存取要求過濾掉, 才開始進行仲裁 Response Forwarder 內部的 Arbiter( 請參閱圖 14) 的功能是仲裁屬於外部記憶體回覆要求與資料的兩筆輸入, 仲裁的結果為一筆輸出 兩筆輸入分別為 : (1) 第一筆 : 來自前一個 Cluster 內記憶體的回覆資料,AGENT 會將記憶體回應資料送出 Cluster (2) 第二筆 : 來自前一個 Forwarder 的回覆要求與資料 圖 12 Forwarder Handshaking Mechanism 2. Finite State Machine Request Forwarder 和 Response Forwarder 兩者的內部都有一個有限狀態機 狀態機可以記錄從系統開始到現在時刻的變化, 若要做轉移狀態的動作, 則必須滿足設計的特定條件, 以一個系統來說, 有限狀態機是由多個不同的狀態 一個起始狀態 輸入及將現在狀態轉換為下一個狀態的條件所組成 本研究的有限狀態機用來描述 Request Forwarder 與 Response Forwarder 兩個系統間的 Handshaking 機制, 以及兩系統與外部 IP Handshaking 的機制 Request Forwarder 的有限狀態機 ( 請參閱圖 15) 負責處理四個 Local CPUs 對外部的存取要求和前一個 Cluster 的 Forwarder 存取要求, 允許五個要求中的一個到環狀互聯網路上繼續往下一個 Cluster 傳 初始狀態為 Idle, 當有一個至多個存取要求輸入時, 則滿足條件轉移至 Arbiter 狀態, 此狀態會將存取資料傳給 Arbiter, 等待 Arbiter 傳回 arb_rdy 訊號表示已將仲裁結果輸出回給 Forwarder, 則轉移至 Send 狀態, 向下一個 Forwarder 和 Cluster 提出存取要求, 當兩個元件都回傳 ready 訊號 (nxtf_rdy nxta_rdy) 表示欲存取資料已接收後, 傳 fwd_rdy 給 Arbiter 表示可以再允許下一筆存取並轉移至 Finish 狀態, 將輸出 port 初始化, 下一個 cycle 回到 Idle 狀態 Response Forwarder 的有限狀態機 ( 請參閱圖 16) 負責處理一個 Local Memory 對外部存取的回應要求和前一個 Cluster 的 Forwarder 回應要求, 允許兩個要求中的一個到環狀互聯網路上繼續往下一個 Cluster 傳 初始狀態為 Idle, 當有一個或兩個回應要求輸入時, 則滿足條件轉移至 Examine 狀態, 此狀態會將存取資料傳給 Arbiter, 等待 Arbiter 一個 cycle 表示已將仲裁結果輸出回給 Forwarder, 則判斷 Address 是否為此 Cluster 的回應要求, 若是, 則轉移至 Rps_Agent 狀態, 向下一個 Cluster 提出回應要求, 當 AGENT 回傳 ready 訊號 (nxta_rdy) 表示欲回應資料已接收後, 則轉移至 Finish 狀態 ; 若否, 則轉移至 Rps_Fwd 狀態, 圖 13 Arbiter for Request Forwarder 圖 14 Arbiter for Response Forwarder 圖 15 Request Forwarder FSM

7 朱守禮李耕學吳庭萱 Slo-Li Chu, Geng-Siao Li, Ting-Xuan Wu 199 向下一個 Forwarder 提出回應要求, 當 Forwarder 回傳 ready 訊號 (nxtf_rdy) 表示欲回應資料已接收後, 則轉移至 Finish 狀態, 將輸出 port 初始化, 下一個 cycle 回到 Idle 狀態 1. 實驗環境 V. Anello 互聯網路實驗結果 本研究所設計的多核心互聯網路架構均以可合成 RTL Verilog HDL 語法設計, 並用 Mentor Graphics 公司的 HDL 模擬器.. Modelsim 模擬與測試功能是否正確, 測試完成後, 以 Debussy 和 n-lint 等工具檢查可合成語法, 最後將程式放至 Synopsys Design Compiler 作邏輯合成, 並搭配 TSMC 0.13 μm 製程之 Cell Library 以得到時脈速度 實際面積和實際耗能等合成結果 以下, 將針對 Anello 互連網路的功能驗證 效能分析 與電路合成結果加以討論 2. Anello 互連網路功能驗證 以下將以測試程式中的第一道指令 :Load word 指令為例, 顯示資料傳輸的模擬結果, 分為 Cluster 內部與外部兩種, 其中 Cluster 內部存取且不必等待內部記憶體仲裁為最佳情況, 若有多筆存取要求, 最差情況為等待四筆存取結束 ;Cluster 外部存取之最佳情況為不必等待互聯網路仲裁, 反之最差即為須等待其他處理器使用完畢 C code: int a[2] = { 2, 1 }, b[2] = { 2, 5 }, sum = 0; for ( int n = 0; n < 2; n++ ) sum += a[n]++ * b[n]++; MIPS Assembly Language: LW $t0, 516 ($zero) LW $t1, 520 ($zero) LW $s5, 524 ($zero) LW $s6, 528 ($zero) LW $t2, 548 ($zero) SLT $s0, $s1, $s5 BEQ $s0, $zero, 13 LW $s3, 0 ($t0) LW $s4, 0 ($t1) ADD $t0, $t2, $t0 ADD $t1, $s2, $t1 ADD $s1, $s6, $s1 MULT $s3, $s4 MFHI $s7 MFLO $s7 ADD $s3, $s6, $s3 ADD $s4, $s6, $s4 ADD $s2, $s7, $s2 J 5 SW $s2, 512 ($zero) Internal Cluster: 最佳傳輸狀況之存取步驟 : 以下簡述 Cluster 內部之最佳傳輸狀況之步驟 圖 17 為 Internal Cluster 存取流程圖, 首先會有一段處理器向 AGENT 發出存取要求的延遲,AGENT 仲裁當時所有處理器及外部 Cluster 的存取要求, 若當時存取優先權最高, 則不需等待, 只需經過記憶體的讀寫延遲後,Response 資料即送回至核心 Internal Cluster: 最差傳輸狀況之存取步驟 : 以下簡述 Cluster 內部之最差傳輸狀況之步驟 如圖 17 之 Internal Cluster 存取流程, 首先會有一段處理器向 AGENT 發出存取要求的延遲,AGENT 仲裁當時所有處理器及外部 Cluster 的存取要求, 但若當時存取優先權最低, 則需等待其他四個存取要求處理結束,AGENT 允許其存取要求, 再經過記憶體的讀寫延遲後, 資料才送回至核心 AGENT Response 圖 16 Response Forwarder FSM 圖 17 Internal Cluster 存取流程圖

8 200 Anello: a New Multicore Interconnection Network for 64-cores Architecture by Using Synthesizable Verilog HDL External Cluster: 最佳傳輸狀況之存取步驟 : 以下簡述 Cluster 外部之最佳傳輸狀況之步驟 圖 18 為 External Cluster 存取流程圖, 首先會有一段處理器向 AGENT 發出外部存取要求的延遲,Forwarder 仲裁當時所有處理器發出的外部存取要求及前一個 Cluster 的外部存取要求, 若當時存取優先權最高, 則不需等待, 存取資料傳送至欲存取記憶體之 Cluster, 等待 Cluster 內部之 AGENT 允許存取要求, 經過記憶體的讀寫延遲後,Response 資料再傳回到原 Cluster, 即送回至核心 External Cluster: 最差傳輸狀況之存取步驟 : 以下簡述 Cluster 外部之最差傳輸狀況之步驟 如圖 18 為 External Cluster 存取流程, 首先會有一段處理器向 AGENT 發出外部存取要求的延遲,Forwarder 仲裁當時所有處理器發出的外部存取要求及前一個 Cluster 的外部存取要求, 但若當時存取優先權最低, 則需等待其他四個外部存取要求處理結束, 存取資料傳送至欲存取記憶體之 Cluster 後, 等待 Cluster 內部之 AGENT 允許存取要求, 經過記憶體的讀寫延遲後,Response 資料再傳回到原 Cluster, 即送回至核心 3. Anello 互聯網路傳輸效能分析 資料傳輸過程中, 會經過許多階段, 大致分為處理器 互聯網路 記憶體階段, 以下將針對兩種情形做說明, 第一種是在最佳情況下 Cluster 內部各階段時間比例, 再來是存取 Cluster 外部經環狀互聯網路之傳輸 第一種情形為最佳情況下的 Cluster 內部之存取傳輸, 資料存取只透過 Cluster 內部 AGENT 即可完成, 各階段說明如表 2, 由於前置指令的時間並不在執行時間內, 故指令執行起始時間為 200 ns, 至 390 ns 為止 第二種情形為透過環狀互聯網路傳輸存取資料, 亦即資料在傳輸過程中需經過內部 Forwarder 外部 Forwarder 內部 AGENT, 以表 3 條列各階段說明, 執行開始時間為 200 ns, 至 710 ns 結束 圖 18 External Cluster 存取流程圖 表 2 Cluster 內部互聯網路傳輸各階段說明時間 (ns) 說明 0~200 指令載入指令快取記憶體的延遲 200~230 處理器執行時間 230~310 AGENT 仲裁延遲 310~370 記憶體存取延遲 370~390 處理器執行時間 表 3 Cluster 外部互聯網路傳輸各階段說明時間 (ns) 說明 0~200 指令載入指令快取記憶體的延遲 200~230 處理器執行時間 230~310 內部 Forwarder 仲裁延遲 310~550 外部 Forwarder 仲裁延遲 550~610 記憶體存取延遲 610~690 內部 AGENT 延遲 690~710 處理器執行時間 表 4 TSMC 0.13 μm 製程合成之數據 Anello 時脈速度 TSMC 0.13 μm 製程 400 MHz 實際面積 μm 2 實際耗能 14 mw 4. Anello 互聯網路電路合成結果 本研究採用 Synopsys Design Compiler, 並以 TSMC 0.13 µm 製程, 進行 Anello 互聯網路 RTL Verilog 設計之邏輯合成, 以多回合之最佳化條件, 搭配所需之 Design Constraints, 以得到較好之邏輯合成結果 在不包含處理器, 單以 Anello 互連網路硬體設計來看, 其工作頻率為 400 MHz 其合成輸出報告包括估算設計之硬體成本 工作頻率測定 與晶片面積估算 在 Anello 的 RTL Verilog 設計, 進行邏輯合成後, 輸出第一個報告為 Area 輸出檔 ( 請參閱圖 19), 其 Combinational Area 約為 µm 2,Noncombinational Area 約為 µm 2,Total cell Area 約為 µm 2, Total Area 則約為 µm 2 第二個輸出的報告 ( 請參閱圖 20) 為有關耗能的部份, 分為 Cell 和 Net 兩個部份,Cell Internal 的耗能部份約為 5.2 mw,net 的耗能則為 8.8 mw, 總耗能則約為 14 mw 第三個輸出的報告 ( 請參閱圖 21) 為有關時序的部份 在設定 Clock Period 為 2.5 ns 時, 可發現合成

9 朱守禮李耕學吳庭萱 Slo-Li Chu, Geng-Siao Li, Ting-Xuan Wu 201 結果 Met, 由此可知本設計可在 400 MHz 的工作頻率下執行 Anello 的 RTL Verilog 設計在進行邏輯合成後, 所得到之 Schematic 電路圖 ( 請參閱圖 22) 其合成後之結果摘要, 請見表 4 網路擴充時, 處理器呈四倍數增長, 使的在互聯網路的設計上有著 Memory Locality 的特色, 另外 AGENT 模組作為處理器 互聯網路和記憶體間的橋樑, 並以公平之 Round Robin 硬體仲裁機制做排程, 確保不會 VI. 結論 本論文設計 64 核心的 Anello 多核心處理器架構, 系統以環狀互聯網路連接 16 個 Clusters,Cluster 包含 Forwarder AGENT 處理器及記憶體, 使互聯 圖 19 合成結果之 Area 輸出 圖 20 合成結果之 Power 輸出 圖 22 合成結果之 Schematic 輸出

10 202 Anello: a New Multicore Interconnection Network for 64-cores Architecture by Using Synthesizable Verilog HDL 有存取要求 Starvations 最後用 ModelSim 和 Debussy 進行模擬測試其功能及語法驗證, 並用邏輯合成工具 Synopsys Design Compiler 進行邏輯合成 Anello 處理器架構, 在 TSMC 0.13 μm 製程下, 工作頻率為 400 MHz, 面積約為 µm 2, 耗能約為 14 mw 致謝 此論文由中華民國國科會部份補助, 計劃編號為 NSC E 參考文獻 圖 21 合成結果之 Timing 輸出 [1] A. Agarwal, Limits on interconnection network performance, IEEE Trans. on Parallel and Distributed Systems, vol. 2, no. 4, pp , April [2] A. Jantsch and H. Tenhunen, Networks on Chips, Kluwer Academic Publishers, [3] J. Duato, S. Yalamanchili, and L. Ni, Interconnection Networks: an Engineering Approach, 2 nd ed., Morgan Kaufmann Publishers, San Francisco, [4] D. A. Patterson and J. L. Hennessy, Computer Organization and Design: the Hardware/software Interface, 4 th ed., Morgan Kaufmann, Oct [5] ARM Ltd., AMBA Specification Rev 2.0, [6] Sony Computer Entertainment Inc., Guide to cell broadband engine programming documentation, [7] W. J. Dally, Performance analysis of K-ary N-cube interconnection networks, IEEE Trans. on Computers, vol. 39, no. 6, pp , Jan [8] The BlueGene/L Team, and Lawrence Livermore National Laboratory, An Overview of the BlueGene/L Supercomputer, in Proc. ACM/IEEE Conference on Supercomputing, pp , [9] S. Pasricha and N. Dutt, On-chip Communication Architectures, System on Chip Interconnect, Morgan Kaufmann, 1 st ed., May 2008.