本發明屬于計算機,涉及一種基于多元模塊處理內存故障報錯的控制方法、系統、設備及介質。
背景技術:
1、在當前的服務器架構中,內存故障的診斷和報告對于系統的穩定性和可維護性至關重要。內存故障如果不能及時被發現和修復,可能會導致數據丟失、系統崩潰甚至硬件損壞,從而嚴重影響服務器的性能和可用性。因此,如何高效、準確地診斷和報告內存故障,是服務器設計和運維中需要重點關注的問題。參見圖1,為現有技術中內存故障報錯點燈控制系統模塊示意圖。
2、傳統的服務器平臺,如基于intel架構的服務器,通常配備有平臺控制器芯片(pch)。pch芯片集成了多個通用輸入/輸出(gpio)引腳,這些引腳可以用于執行各種系統級控制和監控任務,包括但不限于內存故障的點燈控制。通過gpio引腳,服務器平臺可以直接為每個內存插槽或內存模塊分配一個獨立的控制信號,實現故障點燈的快速響應和直觀顯示。然而,隨著處理器技術的不斷演進和服務器設計的多樣化,新興的服務器平臺開始采用更為緊湊和集成度更高的設計。如基于海光、amd、飛騰等cpu?chipset的服務器,為了降低成本、提高性能和簡化設計,往往不再包含傳統的pch芯片。這種設計上的變化雖然帶來了諸多優勢,但也帶來了顯著的問題:gpio引腳數量的限制。在沒有pch芯片或gpio引腳數量受限的情況下,服務器平臺無法直接為每個內存插槽或內存模塊分配一個獨立的gpio引腳來進行故障點燈控制。這導致內存故障的點燈控制變得更具挑戰性。傳統的基于gpio的點燈控制方法無法滿足新興服務器平臺的需求,沒有足夠的gpio引腳來支持所有內存插槽或內存模塊的獨立控制。
3、由于gpio引腳數量的限制,服務器平臺需要采用新的方法來實現內存故障的點燈控制。可能的解決方案是通過軟件或硬件的協同工作來模擬gpio引腳的功能。然而,這種方法需要額外的編程和調試工作,并且可能受到操作系統或固件版本的影響,從而增加了實現難度和維護成本。
技術實現思路
1、本發明的目的在于解決現有技術中在控制芯片gpio引腳資源受限的情況下,傳統方法可能無法實現對多個內存插槽的故障指示的問題,提供一種基于多元模塊處理內存故障報錯的控制方法、系統、設備及介質。
2、為達到上述目的,本發明采用以下技術方案予以實現:
3、一種基于多元模塊處理內存故障報錯的控制方法,包括以下步驟:
4、bios模塊與bmc模塊通過lpc?kcs協議進行內存故障信息的交互,其中bios模塊將內存故障信息按照sel?log格式傳遞給bmc模塊;
5、bmc模塊接收來自bios模塊的內存故障信息,并按照預定的寄存器格式進行存儲和整理;
6、bmc模塊與fpga模塊通過smbus協議進行內存故障狀態信息的交互,其中bmc模塊將內存故障狀態信息傳遞給fpga模塊;
7、fpga模塊根據接收到的內存故障狀態信息,通過控制ddr?ram?led的點亮狀態,實現故障內存的直觀指示。
8、所述bios模塊與bmc模塊通過lpc?kcs協議進行內存故障信息的交互,其中bios模塊將內存故障信息按照sel?log格式傳遞給bmc模塊的具體步驟為:
9、bios模塊在服務器啟動或運行過程中,檢測內存狀態,識別出內存故障;
10、將內存故障信息整理為sel?log格式;
11、bios模塊與bmc模塊通過lpc?kcs協議建立通信;
12、bios模塊按照協議格式,將sel?log格式的內存故障信息發送至bmc模塊。
13、所述bmc模塊將內存故障狀態信息傳遞給fpga模塊,具體步驟為:
14、bmc模塊對內存故障狀態信息進行編碼,將cpu通道上各個內存槽位的狀態信息編碼到8位的字節中,每個位代表一個槽位的內存狀態,0表示狀態良好,1表示狀態異常;
15、bmc模塊與fpga模塊通過smbus接口建立通信連接;
16、bmc模塊向fpga模塊發送命令,指示fpga模塊讀取內存故障狀態信息。
17、所述fpga模塊根據接收到的內存故障狀態信息,通過控制ddr?ram?led的點亮狀態,具體步驟為:
18、fpga模塊對接收到的內存故障狀態信息進行解析,根據接收到的命令解析出對應的內存槽位信息,提取出故障槽位;
19、根據解析出的內存故障狀態信息,確定需要點亮的led位置;
20、根據確定的led位置,生成相應的控制信號驅動led控制電路。
21、一種基于多元模塊處理內存故障報錯的控制系統,包括:
22、bios模塊,用于檢測內存故障,并將檢測到的內存故障信息按照sel?log格式進行編碼和打包;
23、bmc模塊,與bios模塊進行通信,接收bios模塊發送的內存故障信息,并按照預定的寄存器格式對接收到的內存故障信息進行存儲和整理;
24、fpga模塊,通過smbus協議與bmc模塊進行通信,接收bmc模塊傳遞的內存故障狀態信息,并根據接收到的內存故障狀態信息,通過控制ddr?ram?led的點亮狀態,實現故障內存的直觀指示。
25、所述bios模塊中具體包括:
26、內存故障檢測單元,用于實時監控系統的內存狀態,并在檢測到內存故障時生成相應的內存故障信息;
27、編碼打包單元,用于將檢測到的內存故障信息按照sel?log格式進行編碼和打包,通過lpc?kcs協議發送給bmc模塊。
28、所述bmc模塊具體包括:
29、通信接口單元,用于通過lpc?kcs協議與bios模塊進行通信,接收bios模塊發送的內存故障信息;
30、寄存器管理單元,用于按照預定的寄存器格式對接收到的內存故障信息進行存儲和整理;
31、smbus接口單元,用于通過smbus協議與fpga模塊進行通信,將整理后的內存故障狀態信息發送給fpga模塊。
32、所述fpga模塊具體包括:
33、smbus接口單元,用于通過smbus協議與bmc模塊進行通信,接收bmc模塊發送的內存故障狀態信息;
34、led控制單元,用于根據接收到的內存故障狀態信息,控制ddr?ram?led的點亮狀態,實現故障內存的直觀指示。
35、一種設備,包括存儲器、處理器以及存儲在所述存儲器中并可在所述處理器上運行的計算機程序,所述處理器執行所述計算機程序時實現如前項任一項所述方法的步驟。
36、一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有計算機程序,所述計算機程序被處理器執行時實現如前項任一項所述方法的步驟。
37、與現有技術相比,本發明具有以下有益效果:
38、本發明中的基于多元模塊處理內存故障報錯的控制方法,通過多個模塊的協同處理,實現了對內存故障的快速定位。當內存故障發生時,bios模塊能夠迅速捕獲故障信息,并傳遞給bmc模塊。bmc模塊進一步處理這些信息,將故障狀態信息傳遞給fpga模塊,從而實現對故障內存的直觀指示。這種快速的信息傳遞和直觀的故障指示,極大地縮短了故障定位和排除的時間,提高了系統的可維護性和可用性。在控制芯片gpio引腳資源受限的情況下,通過內存故障報錯點燈控制方法,有效地解決了gpio資源不足的問題。能夠在有限的gpio資源下,實現多個內存插槽的故障指示,滿足了多種應用場景的需求。不僅提高了gpio資源的利用率,還降低了系統的復雜性和成本。