一種可移植、可擴展的用于硬件健康狀態(tài)監(jiān)控的軟件架構的制作方法
【專利摘要】本發(fā)明公開了一種可移植、可擴展的用于硬件健康狀態(tài)監(jiān)控的軟件架構,將運行環(huán)境編程接口和硬件訪問機制分別進行抽象,通過調度集成層進行統(tǒng)一訪問,結合編譯時靜態(tài)配置機制和運行時動態(tài)檢測機制,實現(xiàn)多種運行環(huán)境、多種硬件平臺、多種總線接口和多種傳感器芯片的靈活組合,所述架構包括:運行環(huán)境編程接口層、硬件抽象層、調度集成層。本發(fā)明將運行環(huán)境編程接口和硬件訪問機制分別進行抽象,通過調度集成層進行統(tǒng)一訪問,結合編譯時靜態(tài)配置機制和運行時動態(tài)檢測機制,實現(xiàn)多種運行環(huán)境、多種硬件平臺、多種總線接口和多種傳感器芯片的靈活組合。本發(fā)明提及的軟件架構機制簡單,可移植性和可擴展性強,極具實用性。
【專利說明】—種可移植、可擴展的用于硬件健康狀態(tài)監(jiān)控的軟件架構
【技術領域】
[0001]本發(fā)明涉及計算機/工控設備硬件健康狀態(tài)監(jiān)控領域,具體涉及一種可移植、可擴展的用于硬件健康狀態(tài)監(jiān)控的軟件架構。
【背景技術】
[0002]在科學計算、商用服務、工業(yè)控制等領域,各種服務器、存儲、工控設備均起著神經(jīng)樞紐的作用,一旦出現(xiàn)故障,輕則導致服務中斷、設備故障,重則危及到國家和人民生命和財產(chǎn)的安全。用戶在追求系統(tǒng)高性能、高容量、高密度等指標的同時,更看重的是系統(tǒng)的可靠性和穩(wěn)定性。但伴隨著技術的發(fā)展、系統(tǒng)的復雜度也呈幾何級數(shù)增長,系統(tǒng)管理人員不可能靠人工去監(jiān)控每臺服務器/工控設備的狀態(tài),因此能夠方便的對硬件健康狀態(tài)進行監(jiān)控是衡量系統(tǒng)易用性的一個重要標志。
[0003]針對這種情況,業(yè)界陸續(xù)出現(xiàn)了一些對硬件健康狀態(tài)進行監(jiān)控的方法,但歸根到底,都是通過對各種傳感器芯片進行控制,完成數(shù)據(jù)采集、設備調控的功能。這些解決方法共分為軟件實現(xiàn)和硬件實現(xiàn)兩大類。通過軟件方式進行實現(xiàn)的主要有=Windows下的everest、cpu-z,Linux下的lm_sensors等,這類方案的共同點是依賴于特定操作系統(tǒng)驅動程序框架進行實現(xiàn),依賴于操作系統(tǒng)的實現(xiàn),可擴展性和可移植性較差。通過硬件方式進行實現(xiàn)的主要有各種專用單片機/嵌入式系統(tǒng)及IPMI,其中專用單片機/嵌入式系統(tǒng)往往與被監(jiān)控目標平臺耦合過緊,難于擴展;而IPMI作為開放性管理標準,規(guī)范性、可擴展性均較強,且獨立于操作系統(tǒng),與其他解決方案相比具有很大優(yōu)勢,但該解決方案也存在缺點,即需要在目標平臺上集成BMC,這個限制使其無法對已設計好的、不遵循IPMI標準的硬件平臺進行監(jiān)控,且會大大增加硬件成本。
[0004]因此業(yè)界迫切的需要一種可移植、可擴展的軟件解決方案,本發(fā)明正是針對此而發(fā)明設計。
【發(fā)明內容】
[0005]本發(fā)明要解決的技術問題是:本發(fā)明的主要目的在于針對現(xiàn)有硬件健康監(jiān)控方案的不足,提出一種可移植、可擴展的用于硬件健康狀態(tài)監(jiān)控的軟件架構。
[0006]本發(fā)明所采用的技術方案為:
一種可移植、可擴展的用于硬件健康狀態(tài)監(jiān)控的軟件架構,將運行環(huán)境編程接口和硬件訪問機制分別進行抽象,通過調度集成層進行統(tǒng)一訪問,結合編譯時靜態(tài)配置機制和運行時動態(tài)檢測機制,實現(xiàn)多種運行環(huán)境、多種硬件平臺、多種總線接口和多種傳感器芯片的靈活組合,所述架構包括:運行環(huán)境編程接口層(Runtime API Layer, RAL)、硬件抽象層(Hardware Abstract1n Layer, HAL)、調度集成層(Schedule Integrat1n Layer, SIL),其中:
所述運行環(huán)境編程接口層負責實現(xiàn)對不同運行環(huán)境下的編程接口的抽象;
所述硬件抽象層負責實現(xiàn)對不同硬件訪問機制的抽象; 所述調度集成層負責整合其他層提供的接口,實現(xiàn)硬件監(jiān)控機制。
[0007]所述運行環(huán)境編程接口層負責實現(xiàn)對具體運行環(huán)境(如Windows、Linux、BSD、AIX、Solaris、Vxworks、QNX> EFI等)相關API的抽象,提供抽象運行環(huán)境編程接口,實現(xiàn)基本數(shù)據(jù)類型(如布爾型、8/16/32位帶符號/無符號整型等)、容器類型(如鏈表、隊列、集合、映射等)定義,及算法庫、抽象入口點、寄存器訪問(內存映射空間/10映射空間訪問)、內存分配、字符串操作、文件操作、輸入輸出流、網(wǎng)絡套接字等接口。
[0008]所述運行環(huán)境編程接口層在運行時刻只與某個特定具體運行環(huán)境相關聯(lián),通過編譯時靜態(tài)配置機制實現(xiàn)。
[0009]所述硬件抽象層包括:平臺抽象組件、總線/接口抽象組件、傳感器抽象組件,其中所述平臺抽象組件包括:對具體硬件系統(tǒng)平臺(如Intel D5400XS、Intel S5000VSA、Supermicro X7DB8、Tyan S2932WG2NR、Atmel AT91CAP9、Samsung SMDK6400 等)特性的實現(xiàn),如該平臺支持何種監(jiān)控總線/接口、特定總線/接口的訪問方式(內存映射空間/10映射空間)、訪問特定總線/接口的寄存器操作基地址等;及抽象平臺特性訪問接口 ;
所述總線/接口抽象組件包括:對具體總線/接口(如I2C/SMBUS、LPC、Super I/O,CAN等)訪問方式的實現(xiàn);及抽象總線/接口訪問方式接口 ;
所述傳感器抽象組件包括:對具體傳感器芯片(如ADM1026、IT8705F、LM85、LM92、PC87427、MAX6640、W83793G等)訪問方式的實現(xiàn);及抽象傳感器訪問接口。
[0010]所述抽象平臺特性訪問接口在運行時刻只與某個特定具體平臺特性相關聯(lián),通過編譯時靜態(tài)配置機制實現(xiàn)。
[0011]所述抽象總線/接口訪問方式接口在運行時刻可對應多個具體總線/接口,通過運行時的動態(tài)檢測機制實現(xiàn)。
[0012]所述抽象傳感器訪問接口在運行時刻可對應多個具體傳感器芯片,通過運行時的動態(tài)檢測機制實現(xiàn)。
[0013]所述硬件監(jiān)控機制通過編譯時靜態(tài)配置機制和運行時動態(tài)檢測機制相結合進行實現(xiàn),其中編譯時靜態(tài)配置機制實質上是通過編譯時的配置進行預處理條件編譯實現(xiàn)的,其步驟為:
步驟1.1:配置編譯針對的目標運行環(huán)境;
步驟1.2:配置編譯針對的目標硬件平臺;
步驟1.3:預處理、交叉編譯、匯編、鏈接;
步驟1.4:最終生成可執(zhí)行目標程序;
運行時的動態(tài)檢測機制,其步驟為:
步驟2.1:循環(huán)遍歷程序支持的傳感器芯片集合,判斷目標硬件平臺是否存在該傳感器芯片;
步驟2.2:生成支持目標平臺的傳感器芯片集合;
步驟2.3:循環(huán)遍歷支持目標平臺的傳感器芯片集合,獲取所有傳感器信息。
[0014]所述傳感器訪問的步驟為:
步驟3.1:調用傳感器訪問接口 ;
步驟3.2:調用總線/接口訪問接口 ;
步驟3.3:調用寄存器訪問接口。
[0015]本發(fā)明有益效果:本發(fā)明將運行環(huán)境編程接口和硬件訪問機制分別進行抽象,通過調度集成層進行統(tǒng)一訪問,結合編譯時靜態(tài)配置機制和運行時動態(tài)檢測機制,實現(xiàn)多種運行環(huán)境、多種硬件平臺、多種總線接口和多種傳感器芯片的靈活組合。本發(fā)明提及的軟件架構機制簡單,可移植性和可擴展性強,極具實用性。
【專利附圖】
【附圖說明】
[0016]圖1為本發(fā)明軟件架構示意圖;
圖2為編譯時靜態(tài)配置機制意圖;
圖3為運行時動態(tài)檢測機制示意圖;
圖4為傳感器訪問流程示意圖。
【具體實施方式】
[0017]下面根據(jù)說明書附圖,結合具體實施例,對本發(fā)明進一步說明:
如圖1所示,一種可移植、可擴展的用于硬件健康狀態(tài)監(jiān)控的軟件架構,將運行環(huán)境編程接口和硬件訪問機制分別進行抽象,通過調度集成層進行統(tǒng)一訪問,結合編譯時靜態(tài)配置機制和運行時動態(tài)檢測機制,實現(xiàn)多種運行環(huán)境、多種硬件平臺、多種總線接口和多種傳感器芯片的靈活組合。
[0018]運行環(huán)境編程接口層(Runtime API Layer, RAL)、硬件抽象層(HardwareAbstract1n Layer, HAL)、調度集成層(Schedule Integrat1n Layer, SIL)
所述運行環(huán)境編程接口層負責實現(xiàn)對不同運行環(huán)境下的編程接口的抽象;
所述硬件抽象層負責實現(xiàn)對不同硬件訪問機制的抽象;
所述調度集成層負責整合其他層提供的接口,實現(xiàn)硬件監(jiān)控機制。
[0019]所述運行環(huán)境編程接口層負責實現(xiàn)對具體運行環(huán)境(如Windows、Linux、BSD、AIX、Solaris、Vxworks、QNX> EFI等)相關API的抽象,提供抽象運行環(huán)境編程接口,實現(xiàn)基本數(shù)據(jù)類型(如布爾型、8/16/32位帶符號/無符號整型等)、容器類型(如鏈表、隊列、集合、映射等)定義,及算法庫、抽象入口點、寄存器訪問(內存映射空間/10映射空間訪問)、內存分配、字符串操作、文件操作、輸入輸出流、網(wǎng)絡套接字等接口。
[0020]所述運行環(huán)境編程接口層在運行時刻只與某個特定具體運行環(huán)境相關聯(lián),通過編譯時靜態(tài)配置機制實現(xiàn)。
[0021]所述硬件抽象層包括:平臺抽象組件、總線/接口抽象組件、傳感器抽象組件,其中所述平臺抽象組件包括:對具體硬件系統(tǒng)平臺(如Intel D5400XS、Intel S5000VSA、Supermicro X7DB8、Tyan S2932WG2NR、Atmel AT91CAP9、Samsung SMDK6400 等)特性的實現(xiàn),如該平臺支持何種監(jiān)控總線/接口、特定總線/接口的訪問方式(內存映射空間/10映射空間)、訪問特定總線/接口的寄存器操作基地址等;及抽象平臺特性訪問接口 ;
所述總線/接口抽象組件包括:對具體總線/接口(如I2C/SMBUS、LPC、Super 1/0,CAN等)訪問方式的實現(xiàn);及抽象總線/接口訪問方式接口 ;
所述傳感器抽象組件包括:對具體傳感器芯片(如ADM1026、IT8705F、LM85、LM92、PC87427、MAX6640、W83793G等)訪問方式的實現(xiàn);及抽象傳感器訪問接口。
[0022]所述抽象平臺特性訪問接口在運行時刻只與某個特定具體平臺特性相關聯(lián),通過編譯時靜態(tài)配置機制實現(xiàn)。
[0023]所述抽象總線/接口訪問方式接口在運行時刻可對應多個具體總線/接口,通過運行時的動態(tài)檢測機制實現(xiàn)。
[0024]所述抽象傳感器訪問接口在運行時刻可對應多個具體傳感器芯片,通過運行時的動態(tài)檢測機制實現(xiàn)。
[0025]所述硬件監(jiān)控機制通過編譯時靜態(tài)配置機制和運行時動態(tài)檢測機制相結合進行實現(xiàn),其中編譯時靜態(tài)配置機制實質上是通過編譯時的配置進行預處理條件編譯實現(xiàn)的,如圖2所示,其步驟為:
步驟1.1:配置編譯針對的目標運行環(huán)境;
步驟1.2:配置編譯針對的目標硬件平臺;
步驟1.3:預處理、交叉編譯、匯編、鏈接;
步驟1.4:最終生成可執(zhí)行目標程序;
如圖3所示,運行時的動態(tài)檢測機制,其步驟為:
步驟2.1:循環(huán)遍歷程序支持的傳感器芯片集合,判斷目標硬件平臺是否存在該傳感器芯片;
步驟2.2:生成支持目標平臺的傳感器芯片集合;
步驟2.3:循環(huán)遍歷支持目標平臺的傳感器芯片集合,獲取所有傳感器信息。
[0026]如圖4所示,所述傳感器訪問的步驟為:
步驟3.1:調用傳感器訪問接口 ;
步驟3.2:調用總線/接口訪問接口 ;
步驟3.3:調用寄存器訪問接口。
【權利要求】
1.一種可移植、可擴展的用于硬件健康狀態(tài)監(jiān)控的軟件架構,其特征在于:將運行環(huán)境編程接口和硬件訪問機制分別進行抽象,通過調度集成層進行統(tǒng)一訪問,結合編譯時靜態(tài)配置機制和運行時動態(tài)檢測機制,實現(xiàn)多種運行環(huán)境、多種硬件平臺、多種總線接口和多種傳感器芯片的靈活組合,所述架構包括:運行環(huán)境編程接口層、硬件抽象層、調度集成層,其中: 所述運行環(huán)境編程接口層負責實現(xiàn)對不同運行環(huán)境下的編程接口的抽象; 所述硬件抽象層負責實現(xiàn)對不同硬件訪問機制的抽象; 所述調度集成層負責整合其他層提供的接口,實現(xiàn)硬件監(jiān)控機制。
2.根據(jù)權利要求1所述的一種可移植、可擴展的用于硬件健康狀態(tài)監(jiān)控的軟件架構,其特征在于:所述運行環(huán)境編程接口層負責實現(xiàn)對具體運行環(huán)境相關API的抽象,提供抽象運行環(huán)境編程接口,實現(xiàn)基本數(shù)據(jù)類型、容器類型定義,及算法庫、抽象入口點、寄存器訪問、內存分配、字符串操作、文件操作、輸入輸出流、網(wǎng)絡套接字接口。
3.根據(jù)權利要求2所述的一種可移植、可擴展的用于硬件健康狀態(tài)監(jiān)控的軟件架構,其特征在于:所述運行環(huán)境編程接口層在運行時刻只與某個特定具體運行環(huán)境相關聯(lián),通過編譯時靜態(tài)配置機制實現(xiàn)。
4.根據(jù)權利要求1所述的一種可移植、可擴展的用于硬件健康狀態(tài)監(jiān)控的軟件架構,其特征在于:所述硬件抽象層包括:平臺抽象組件、總線/接口抽象組件、傳感器抽象組件,其中所述平臺抽象組件包括:對具體硬件系統(tǒng)平臺特性的實現(xiàn),及抽象平臺特性訪問接Π ; 所述總線/接口抽象組件包括:對具體總線/接口訪問方式的實現(xiàn);及抽象總線/接口訪問方式接口; 所述傳感器抽象組件包括:對具體傳感器芯片訪問方式的實現(xiàn);及抽象傳感器訪問接□。
5.根據(jù)權利要求4所述的一種可移植、可擴展的用于硬件健康狀態(tài)監(jiān)控的軟件架構,其特征在于:所述抽象平臺特性訪問接口在運行時刻只與某個特定具體平臺特性相關聯(lián),通過編譯時靜態(tài)配置機制實現(xiàn)。
6.根據(jù)權利要求4所述的一種可移植、可擴展的用于硬件健康狀態(tài)監(jiān)控的軟件架構,其特征在于:所述抽象總線/接口訪問方式接口在運行時刻可對應多個具體總線/接口,通過運行時的動態(tài)檢測機制實現(xiàn)。
7.根據(jù)權利要求4所述的一種可移植、可擴展的用于硬件健康狀態(tài)監(jiān)控的軟件架構,其特征在于:所述抽象傳感器訪問接口在運行時刻可對應多個具體傳感器芯片,通過運行時的動態(tài)檢測機制實現(xiàn)。
8.根據(jù)權利要求1所述的一種可移植、可擴展的用于硬件健康狀態(tài)監(jiān)控的軟件架構,其特征在于:所述硬件監(jiān)控機制通過編譯時靜態(tài)配置機制和運行時動態(tài)檢測機制相結合進行實現(xiàn),其中編譯時靜態(tài)配置機制實質上是通過編譯時的配置進行預處理條件編譯實現(xiàn)的,其步驟為: 步驟1.1:配置編譯針對的目標運行環(huán)境; 步驟1.2:配置編譯針對的目標硬件平臺; 步驟1.3:預處理、交叉編譯、匯編、鏈接; 步驟1.4:最終生成可執(zhí)行目標程序; 運行時的動態(tài)檢測機制,其步驟為: 步驟2.1:循環(huán)遍歷程序支持的傳感器芯片集合,判斷目標硬件平臺是否存在該傳感器芯片; 步驟2.2:生成支持目標平臺的傳感器芯片集合; 步驟2.3:循環(huán)遍歷支持目標平臺的傳感器芯片集合,獲取所有傳感器信息。
9.根據(jù)權利要求8所述的一種可移植、可擴展的用于硬件健康狀態(tài)監(jiān)控的軟件架構,其特征在于,所述傳感器訪問的步驟為: 步驟3.1:調用傳感器訪問接口 ; 步驟3.2:調用總線/接口訪問接口 ; 步驟3.3:調用寄存器訪問接口。
【文檔編號】G06F9/44GK104375840SQ201410715924
【公開日】2015年2月25日 申請日期:2014年12月2日 優(yōu)先權日:2014年12月2日
【發(fā)明者】喬英良, 黃家明 申請人:浪潮電子信息產(chǎn)業(yè)股份有限公司