林曉園,嚴 瓊,林靈燕
(福建江夏學院 電子信息科學學院,福建 福州 350108)
當前各大交換機設(shè)備廠商自行開發(fā)的數(shù)據(jù)中心接入盒式交換機系統(tǒng)的軟件和硬件完全封閉,而隨著OCP(Open Compute Project)組織的形成[1],參與交換機軟件和硬件開發(fā)設(shè)計的公司越來越多,使得硬件設(shè)計越來越標準化和模塊化。但現(xiàn)在各個廠商通過OCP開放出來的數(shù)據(jù)中心接入盒式交換機的硬件整體(架構(gòu))設(shè)計方案并沒有形成統(tǒng)一的接口定義,各個廠家的設(shè)備不能互用,無法滿足新功能快速開發(fā)部署的需求,且各自研發(fā)成本高昂,研發(fā)進度受各大設(shè)備廠商的研發(fā)能力和資源的限制,不能滿足數(shù)據(jù)中心接入盒式交換機技術(shù)的快速迭代。為解決以上問題,需要將交換機的架構(gòu)進行分層開放并推動標準化進程。本設(shè)計通過定義一系列硬件標準接口,以便更多的數(shù)據(jù)中心接入盒式交換機設(shè)備供應(yīng)商采用標準接口設(shè)計[2],更快更好地推動不同廠商間設(shè)備的兼容互用和交換機的更新?lián)Q代。
以數(shù)據(jù)中心接入盒式交換機為例說明現(xiàn)有接入交換機的硬件設(shè)計架構(gòu),如圖1所示。
圖1 現(xiàn)有數(shù)據(jù)中心接入盒式交換機架構(gòu)
交換機硬件系統(tǒng)一般由以下幾大部分構(gòu)成[3-6]:
(1)CPU部分。
CPU部分進行系統(tǒng)的管理和配置。CPU由各大設(shè)備廠商選定,有ARM,PowerPC,MIPS,X86等系統(tǒng)架構(gòu)的IC,然后各大廠商根據(jù)設(shè)備運行需求配置不同的片上存儲器如SSD,DDR內(nèi)存條。CPU包含PCIE,I2C,RGMII,URAT,SGMII等接口。CPU的URAT接口用于CPU控制臺信息輸出和控制信息輸入。CPU的RGMII或SGMII接口通過PHY芯片后連接到RJ45網(wǎng)口(101001 000 M),與外部管理網(wǎng)互聯(lián),用于信息傳輸和管理。
(2)Switch IC。
Switch IC負責網(wǎng)絡(luò)數(shù)據(jù)交換,Switch IC由各大設(shè)備廠商采購Broadcom等公司的IC,Switch IC 包含PCIE、高速serdes等接口。
(3)PHY IC。
PHY IC主要進行接口轉(zhuǎn)換、速率變換、增強信號等應(yīng)用,根據(jù)實際運用需求選配,如果實際應(yīng)用中不需要PHY IC的功能,可去掉此部分。
以上交換機的設(shè)計各個接口由廠家定義,各個廠家之間無法實現(xiàn)互通,必須成套購買整機設(shè)備,造成設(shè)備成本居高不下,也不便于設(shè)備應(yīng)用商根據(jù)業(yè)務(wù)需求進行靈活配置。
鑒于以上問題,本文提出數(shù)據(jù)中心接入盒式模塊化交換機架構(gòu)設(shè)計方案,如圖2所示。
圖2 數(shù)據(jù)中心接入盒式模塊化交換機架構(gòu)
此設(shè)計分為交換模塊、管理模塊、監(jiān)控模塊、電源模塊、風扇模塊。
交換模塊包含Switch IC、PHY IC(根據(jù)需求配置)、光模塊等主要功能芯片。交換機的光模塊接口排布可根據(jù)芯片資源和應(yīng)用場景的需求進行端口的均勻分布。交換模塊與其他模塊互連的接口定義如下:3個PCIE接口和1個電源口。1個PCIE接口直連到Switch IC。另2個PCIE接口連接到FPGA,2個FPGA的PCIE接口可根據(jù)需求選擇連接到CPU或BMC。FPGA通過可編程邏輯實現(xiàn)PCIE轉(zhuǎn)I2C的功能,可根據(jù)需求編寫FPGA驅(qū)動,實現(xiàn)交換模塊的其他器件的管理,如管理光口的I2C和其他具有I2C接口的器件,也可通過編寫FPGA邏輯實現(xiàn)PCIE轉(zhuǎn)其他接口,比如SPI接口等。
管理模塊包含CPU系統(tǒng)、串口和網(wǎng)口,其接口定義如下:3個PCIE接口、1個串口、1個網(wǎng)口、1個USB接口、1個電源接口。3個PCIE接口內(nèi)部模塊互連,串口、網(wǎng)口、USB接口與外部互連。
監(jiān)控模塊包含BMC系統(tǒng)、串口和網(wǎng)口,其接口定義如下:3PCIE接口、1個串口、1個網(wǎng)口、1個電源接口。3個PCIE接口內(nèi)部模塊互連,串口、網(wǎng)口與外部互連。監(jiān)控模塊可根據(jù)需求選配,此部分功能也可以在管理模塊實現(xiàn)。
電源可采用220 V轉(zhuǎn)12 V電源模塊,輸出可采用統(tǒng)一的接口設(shè)計。共有5個相同電源接口,接口定義如下:+12V,GND,PS_ON,Power Good信號。
風扇模塊包含可拔插的風扇和風扇控制板部分。風扇控制板提供3個溫度傳感器接口,3個溫度傳感器分布在入風口、最熱點、出風口位置。整個風扇模塊提供PCIE接口,與管理模塊或監(jiān)控模塊通信。接口定義如下:1個PCIE接口,3個I2C接口,2個電源接口。
PCIE的管理接口設(shè)計:
(1)交換模塊的PCIE接口由1個PCIE x4、GEN3,2個PCIE x1、GEN2構(gòu)成。
(2)管理模塊的PCIE接口由2個PCIE x4、GEN3,1個PCIE x1、GEN2構(gòu)成。
(3)監(jiān)控模塊的PCIE接口由1個PCIE x4、GEN3,2個PCIE x1、GEN2構(gòu)成。
(4)風扇模塊的PCIE接口由1個PCIE x1、GEN2構(gòu)成。
交換模塊的Switch IC的1個PCIE x4、GEN3接口與管理模塊CPU的1個PCIE x4、GEN3接口互連,驅(qū)動由Switch IC廠家提供的SDK進行配置,CPU通過PCIE接口實現(xiàn)對Switch IC以及Switch IC外圍器件的管理。另外一個1個PCIE x1、GEN2接口由交換模塊上的FPGA芯片提供(或者其他PCIE轉(zhuǎn)I2C器件),通過FPGA實現(xiàn)PCIE轉(zhuǎn)I2C接口,可以與CPU模塊互連。
管理模塊的2個PCIE x4、GEN3分別與交換模塊Switch IC和監(jiān)控模塊BMC互連,1個PCIE x1、GEN2與交換模塊的FPGA互連。
監(jiān)控模塊的3個PCIE接口,1個PCIE x4、GEN3與管理模塊CPU互連,另外2個PCIE x1、GEN2分別與交換模塊FPGA和風扇模塊互連。
風扇模塊的PCIE接口與監(jiān)控模塊互連(沒有監(jiān)控模塊的情況下直接與管理模塊互連)。
CPU或BMC的PCIE通信協(xié)議與交換模塊FPGA之間的接口為例定義如下:
(1)FPGA主動輪詢各個I2C通路(只要模塊在位,就主動輪詢),FPGA將主動輪詢各個器件數(shù)據(jù)定時收到FPGA內(nèi)部RAM中,軟件根據(jù)需要發(fā)起讀取操作,FPGA將存放在FPGA內(nèi)部的信息通過DMA的方式送給CPU[7]。如此設(shè)計的優(yōu)勢在于:①CPU不用參與讀取模塊操作,釋放CPU資源。②CPU不需要對FPGA內(nèi)部每個寄存器進行讀取操作,增加CPU處理效率。
(2)軟硬件交互流程。
①寄存器說明(未使用到的bit保留)。
dma_buf_base(32 bit):CPU內(nèi)存BUF基地址,用于存放FPGA上傳的數(shù)據(jù)(64 KB)。
dma_ctl(1bit):DMA操作控制寄存器,控制發(fā)起DMA讀操作,復(fù)位值為0。
②讀操作流程。
a. CPU檢測dma_ctl寄存器值為0后可發(fā)起DMA讀操作,將準備好的內(nèi)存空間(連續(xù)64 KB)基地址寫入dma_buf_base寄存器。
b. CPU完成dma_buf_base寄存器值寫入后,CPU將dma_ctl寄存器置1,觸發(fā)FPGA發(fā)起DMA操作。
c. FPGA發(fā)現(xiàn)dma_ctl寄存器被置1后,將緩存在內(nèi)部RAM中的所有信息通過DMA的方式傳送到CPU內(nèi)存空間(空間的基地址為dma_buf_base寄存器中的值),發(fā)送的長度固定為64 KB,DMA操作完成后將dma_ctl寄存器清0。
d. CPU輪詢到dma_ctl控制寄存器的值被清0后,從dma_buf_base基地址的內(nèi)存空間中取回讀回的值。同時可發(fā)起下一次的讀操作。
驅(qū)動操作流程如圖3所示。
圖3 驅(qū)動操作流程
本文提出數(shù)據(jù)中心接入盒式交換機模塊化和標準接口的硬件架構(gòu)設(shè)計,將交換機劃分為管理模塊、監(jiān)控模塊、交換模塊、風扇模塊、電源模塊5大模塊。各個模塊采用統(tǒng)一的接口,其中通信接口采用高速、簡潔、常用的PCIE接口,同時對PCIE接口協(xié)議進行定義。通過將數(shù)據(jù)中心接入盒式交換機進行模塊化和接口的標準化定義,實現(xiàn)統(tǒng)一數(shù)據(jù)中心接入盒式交換機的設(shè)計標準,解決了當前各個廠家之間的設(shè)備不能模塊化互用的問題。這樣既加速交換機的開發(fā)與迭代,還能通過規(guī)模生產(chǎn)降低成本,具有很好的行業(yè)應(yīng)用價值。