,,
(1.湘潭大學 微電子科學與工程系,湘潭 411105;2.湖南進芯電子科技有限公司)
隨著互聯網及大數據業(yè)務的迅速發(fā)展,信息存儲量將呈現指數式的爆發(fā)增長,人們對信息處理速度的要求也越來越高。在信息時代信息檢索、信息共享成為時下信息處理的熱點,在此需求下云計算系統(tǒng)應運而生,云計算的出現不僅滿足了大數據的存儲,也滿足了對數據的快速處理和檢索需求,因此云計算也成為時下大數據處理的潮流[1]。
但是云計算系統(tǒng)并行度高、結構復雜而規(guī)模龐大,這就對其運行狀態(tài)的監(jiān)控帶來了很大難度。本系統(tǒng)提出的集成信息監(jiān)控方案極大地縮小了系統(tǒng)監(jiān)控板載卡的大小,同時一塊板載監(jiān)控板可監(jiān)測整個云計算小機柜的主板運行狀態(tài),可替代現階段的一塊板載卡只能采集監(jiān)控一塊主板運行狀態(tài)的方案。
這種集成式信息監(jiān)控方案同時利用了DSP支持豐富的中斷源,其支持中斷響應的快速處理特性,利用FPGA的可編程特性集成大量信息采集通路,其可廣泛應用于各種系統(tǒng)的實時運行狀態(tài)監(jiān)控。
云計算等大規(guī)模集群系統(tǒng)的運行狀態(tài)需要進行實時監(jiān)控,現在較多的方案是在計算主板PCB上開發(fā)出一片區(qū)域[2],在此區(qū)域上設計系統(tǒng)信息采集監(jiān)控電路,包括監(jiān)測該塊計算主板的系統(tǒng)功耗、電壓波動、溫度及電流均流等特性,并將其實時輸出到監(jiān)控端。其設計方式如圖1所示,主要利用UART控制器及I2C控制器芯片采集系統(tǒng)運行狀態(tài),采集溫度傳感器的數據、電源信息、CPU的部分顯示數據的輸出[3]。將采集到的信息傳輸到DSP,DSP在接收到信息后對信息進行處理,每塊板載監(jiān)控系統(tǒng)都將處理后的數據通過板級間的互聯接口送到顯示端顯示。
圖1 系統(tǒng)硬件結構框圖
這種設計方案無疑增加了主系統(tǒng)的設計復雜性、增大了面積及提高了成本,沒有充分利用DSP高效的數據處理特性,浪費了大量DSP的資源。這種方式亟待改進,需要更簡潔的系統(tǒng)設計、更低廉的價格實現對系統(tǒng)的監(jiān)測。
在設計之初,基于對需求的時效性、設計的簡潔性及降低成本的考慮,提出了一種新的集群系統(tǒng)運行狀態(tài)監(jiān)測方案,其應用如圖2所示。
圖2 新系統(tǒng)硬件結構框圖
該方案模塊框圖如圖3所示。用一塊DSP芯片和一片FPGA芯片集成大量信息采集通路[4],這樣就不需要在每塊主板上都開辟區(qū)域用來設計監(jiān)測電路,而是單獨做成一塊小PCB板,將該模塊設計在板級間互聯接口模塊板上,多塊系統(tǒng)計算主板通過板級互聯接口連接到板級互聯接口上[5],這樣該板可以監(jiān)測多達32塊系統(tǒng)主板,大大降低了設計的復雜度及系統(tǒng)成本。
信息采集通路主要通過UART和I2C接口實現,因此在FPGA中設計了UART控制器和I2C控制器。
圖3 監(jiān)測系統(tǒng)優(yōu)化方案
UART接口控制器具有片選、中斷、復位、讀寫控制、串口收發(fā)及八位數據總線,內有收發(fā)各16B的buffer,具有串并及并串轉換[7],如圖4所示。對CPU產生中斷后,若直到buffer滿并且仍在接收數據,CPU還未響應中斷,則按照先入先丟的原則丟失前位數據。
圖4 UART控制器
該模塊內寄存器設置有:中斷使能寄存器、FIFO控制寄存器、中斷識別寄存器、加載控制寄存器、狀態(tài)信息指示寄存器、發(fā)送保持寄存器及接收緩沖寄存器。
主要寄存器位定義說明如下。
中斷使能寄存器IER:8位寬,高4位始終保持為零,后4位依次是禁止調制解調狀態(tài)中斷、使能接收線性狀態(tài)中斷、使能發(fā)送保持寄存器空中斷、使能接收數據可用中斷。
FIFO控制寄存器FCR:8位寬,為只寫寄存器,FCR的bit6和bit7用來設置接收FIFO中斷的觸發(fā)位置;bit3~bit5為保留位。bit2置位將使發(fā)送FIFO復位,FCR的bit1置位將使接收FIFO復位,FCR的bit0置位將使能FIFO。
圖5 I2C控制器
并行總線數據進入內部總線buffer,經移位寄存器轉換成I2C格式的數據輸出,能夠實現I2C的master和slave的切換,實現規(guī)定的中斷產生。有效采集到總線的讀寫信號,并由內部registers通知軟件在何時何條件下進行讀寫[8],如圖5所示。
該模塊內寄存器設置有:I2C地址寄存器、I2C數據寄存器、I2C控制寄存器及I2C狀態(tài)寄存器。
由于該監(jiān)控系統(tǒng)采用采集通路集成的方式,因此需將接口做擴展設計,擴展采用對高位地址進行譯碼的方式進行。 本設計中擴展了32路串口,其片選產生方式如下:
assign uart_00 = cs_n | !(addr[11:4]== 8'ha0);
assign uart_01 = cs_n | !(addr[11:4]== 8'hb0);
assign uart_02 = cs_n | !(addr[11:4]== 8'hc0);
assign uart_03 = cs_n | !(addr[11:4]== 8'hd0);
……
assign uart_28 = cs_n | !(addr[11:4]== 8'ha7);
assign uart_29 = cs_n | !(addr[11:4]== 8'hb7);
assign uart_30 = cs_n | !(addr[11:4]== 8'hc7);
assign uart_31 = cs_n | !(addr[11:4]== 8'hd7);
其中cs_n為UART控制器總片選信號,在這種方式下可在地址掃描控制下依次讀出每一路控制器的輸出數據。
該設計中擴展了32路I2C總線,其片選產生方式和串口的片選產生方式相同。在選中了相應的控制器后還可以讀出相應的I2C控制通路中的數據。在通過地址掃描的策略選中一路控制器后,就會讀出其中的數據,一幀數據全部讀完后就會產生對應的中斷,該中斷就會上報給DSP,DSP接收到該外部中斷后[6],就會啟動中斷響應機制,讀出控制器中的數據并進行處理。
這種系統(tǒng)設計結構可以利用一塊PCB監(jiān)測多達32塊系統(tǒng)主計算板。
通過對現有集群信息監(jiān)控系統(tǒng)的優(yōu)化設計,有效地降低了整個系統(tǒng)成本,降低了系統(tǒng)設計的復雜性。對其中兩個主要模塊的仿真結果如圖6所示。
圖6 單板監(jiān)測測試圖
測試的過程利用ADP32F12A作為監(jiān)測核心板,監(jiān)測通路擴展采用Xilinx的FPGA,以ADP32F335作為測試待測板。從圖6可以看出,實驗正確監(jiān)測到了待測板核心運算單元的溫度、待測板當前電壓及電流等信息,驗證了設計的正確性。
測試結果驗證了該系統(tǒng)的優(yōu)化設計的正確性,在具體運行環(huán)境中可將監(jiān)測核心板DSP和FPGA做成一塊小的板卡。本系統(tǒng)硬件電路設計簡單,信息采集通路集成度高、成本低,適合嵌入式應用的特點,將會被廣泛地應用在大規(guī)模云計算系統(tǒng)運行狀態(tài)監(jiān)測等領域。