中斷處理方法、裝置和系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種中斷處理方法、裝置和系統(tǒng),該中斷處理方法包括:基板管理控制器BMC接收邏輯器件發(fā)送的中斷觸發(fā)信號(hào),所述中斷觸發(fā)信號(hào)為所述邏輯器件在檢測(cè)到服務(wù)器發(fā)生故障時(shí)發(fā)送的;所述BMC從所述邏輯器件的中斷寄存器中讀取所述故障對(duì)應(yīng)的中斷信息;所述BMC根據(jù)所述中斷信息進(jìn)行中斷處理,并在中斷處理完成后清除所述中斷寄存器中的所述中斷信息。通過(guò)改變中斷相關(guān)處理的順序,先執(zhí)行中斷處理后執(zhí)行中斷清除,避免丟失中斷的發(fā)生。
【專(zhuān)利說(shuō)明】中斷處理方法、裝置和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明實(shí)施例涉及通信技術(shù),尤其涉及一種中斷處理方法、裝置和系統(tǒng)。
【背景技術(shù)】
[0002]隨著高端容錯(cuò)計(jì)算機(jī)的日益普及,用戶對(duì)計(jì)算機(jī)運(yùn)行的可靠性提出了越來(lái)越高的要求。在服務(wù)器出現(xiàn)故障或報(bào)警的時(shí)候,服務(wù)器會(huì)以中斷的方式告訴基板管理控制器(Baseboard Management Controller,簡(jiǎn)稱(chēng):BMC),BMC在得到響應(yīng)后處理中斷,使得服務(wù)器的正常運(yùn)行不受影響。
[0003]現(xiàn)有的中斷處理技術(shù)中,邏輯器件檢測(cè)服務(wù)器的運(yùn)行情況,當(dāng)產(chǎn)生中斷后,邏輯器件通過(guò)通用輸入輸出(General Purpose Input Output,簡(jiǎn)稱(chēng):GP10)觸發(fā)BMC, BMC接收中斷,然后讀取邏輯器件的中斷寄存器,讀取中斷后清除執(zhí)行中斷清除時(shí)刻中斷寄存器內(nèi)儲(chǔ)存的中斷,最后對(duì)讀取到的中斷信息對(duì)應(yīng)的中斷進(jìn)行相應(yīng)的中斷處理。
[0004]上述現(xiàn)有中斷的處理技術(shù)中,在讀取中斷和清除中斷之間有可能產(chǎn)生新的中斷,并被寫(xiě)入中斷寄存器,這種情況下新進(jìn)來(lái)的中斷就會(huì)在處理之前被清除,這樣就導(dǎo)致新寫(xiě)入的中斷丟失。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種中斷處理方法、裝置和系統(tǒng),用于解決現(xiàn)有技術(shù)中中斷丟失的問(wèn)題。
[0006]本發(fā)明的第一方面提供了一種中斷處理方法,包括:
[0007]基板管理控制器BMC接收邏輯器件發(fā)送的中斷觸發(fā)信號(hào),所述中斷觸發(fā)信號(hào)為所述邏輯器件在檢測(cè)到服務(wù)器發(fā)生故障時(shí)發(fā)送的;
[0008]所述BMC從所述邏輯器件的中斷寄存器中讀取所述故障對(duì)應(yīng)的中斷信息;
[0009]所述BMC根據(jù)所述中斷信息進(jìn)行中斷處理,并在中斷處理完成后清除所述中斷寄存器中的所述中斷信息。
[0010]在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述BMC在從所述邏輯器件的中斷寄存器中讀取所述故障對(duì)應(yīng)的中斷信息后,還包括:
[0011]所述BMC對(duì)所述邏輯器件的中斷屏蔽寄存器中與所述中斷信息相應(yīng)的位進(jìn)行置位,以在所述中斷處理結(jié)束前不再響應(yīng)與所述中斷信息相同的中斷;
[0012]所述BMC清除所述中斷寄存器中的所述中斷信息之后,還包括:
[0013]所述BMC對(duì)所述中斷屏蔽寄存器中與所述中斷信息相應(yīng)的位進(jìn)行復(fù)位。
[0014]結(jié)合第一方面或第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述BMC收到邏輯器件發(fā)送的中斷觸發(fā)信號(hào)之前,還包括:
[0015]所述BMC對(duì)所述邏輯器件的中斷拉高寄存器進(jìn)行置位,以向所述邏輯器件指示可以接收中斷觸發(fā)信號(hào);
[0016]所述BMC根據(jù)所述中斷信息進(jìn)行中斷處理之前,還包括:[0017]所述BMC對(duì)所述邏輯器件的所述中斷拉高寄存器進(jìn)行復(fù)位。
[0018]結(jié)合第一方面、第一方面的第一或第二種可能的實(shí)現(xiàn)方式,在第一方面的第三種可能的實(shí)現(xiàn)方式中,所述BMC收到邏輯器件發(fā)送的中斷觸發(fā)信號(hào)之前,還包括:
[0019]所述BMC采用內(nèi)核喚醒技術(shù)等待接收所述中斷觸發(fā)信號(hào)。
[0020]結(jié)合第一方面、第一方面的第一至第三種任意一種可能的實(shí)現(xiàn)方式,在第一方面的第四種可能的實(shí)現(xiàn)方式中,所述BMC根據(jù)所述中斷信息進(jìn)行中斷處理,包括:
[0021]所述BMC創(chuàng)建與所述中斷信息對(duì)應(yīng)的中斷處理線程進(jìn)行中斷處理。
[0022]本發(fā)明的第二方面提供了一種中斷處理方法,包括:
[0023]邏輯器件檢測(cè)到服務(wù)器發(fā)生故障;
[0024]所述邏輯器件向基板管理控制器BMC發(fā)送中斷觸發(fā)信號(hào);
[0025]所述邏輯器件向所述BMC發(fā)送所述BMC從所述邏輯器件的中斷寄存器中讀取的所述故障對(duì)應(yīng)的中斷信息;
[0026]所述邏輯器件在所述BMC完成中斷處理后,清除所述中斷寄存器中的所述中斷信
肩、O
[0027]在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述邏輯器件向所述BMC發(fā)送所述BMC從所述邏輯器件的中斷寄存器中讀取的所述故障對(duì)應(yīng)的中斷信息后,還包括:
[0028]所述邏輯器件根據(jù)所述BMC的操作,對(duì)所述邏輯器件的中斷屏蔽寄存器中與所述中斷信息相應(yīng)的位進(jìn)行置位,以在所述中斷處理結(jié)束前不再響應(yīng)與所述中斷信息相同的中斷;
[0029]所述邏輯器件在所述BMC完成中斷處理后清除所述中斷寄存器中的所述中斷信息之后,還包括:
[0030]所述邏輯器件根據(jù)所述BMC的操作,對(duì)所述邏輯器件的中斷屏蔽寄存器中與所述中斷信息相應(yīng)的位進(jìn)行復(fù)位。
[0031]結(jié)合第二方面或第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述邏輯器件向BMC發(fā)送中斷觸發(fā)信號(hào)之后,還包括:
[0032]所述邏輯器件確定所述邏輯器件的中斷拉高寄存器被置位。
[0033]結(jié)合第二方面、第二方面的第一或第二種可能的實(shí)現(xiàn)方式,在第二方面的第三種可能的實(shí)現(xiàn)方式中,所述邏輯器件向BMC發(fā)送中斷觸發(fā)信號(hào),包括:
[0034]所述邏輯器件拉低或拉高通用輸入輸出GPIO信號(hào)線,以向所述BMC發(fā)送中斷觸發(fā)信號(hào);
[0035]所述中斷觸發(fā)信號(hào)為脈沖觸發(fā)信號(hào)。
[0036]本發(fā)明的第三方面提供了 一種基板管理控制器BMC,包括:
[0037]中斷觸發(fā)模塊,用于接收邏輯器件發(fā)送的中斷觸發(fā)信號(hào),所述中斷觸發(fā)信號(hào)為所述邏輯器件在檢測(cè)到服務(wù)器發(fā)生故障時(shí)發(fā)送的;
[0038]中斷讀取模塊,用于從所述邏輯器件的中斷寄存器中讀取所述故障對(duì)應(yīng)的中斷信息;
[0039]中斷處理模塊,用于根據(jù)所述中斷信息進(jìn)行中斷處理,并在中斷處理完成后清除所述中斷寄存器中的所述中斷信息。
[0040]在第三方面的第一種可能的實(shí)現(xiàn)方式中,還包括:[0041]置位模塊,用于所述中斷讀取模塊在從所述邏輯器件的中斷寄存器中讀取所述故障對(duì)應(yīng)的中斷信息后,對(duì)所述邏輯器件的中斷屏蔽寄存器中與所述中斷信息相應(yīng)的位進(jìn)行置位,以在所述中斷處理結(jié)束前不再響應(yīng)與所述中斷信息相同的中斷;
[0042]復(fù)位模塊,用于所述中斷處理模塊清除所述中斷寄存器中的所述中斷信息之后,對(duì)所述中斷屏蔽寄存器中與所述中斷信息相應(yīng)的位進(jìn)行復(fù)位。
[0043]結(jié)合第三方面或第三方面的第一種可能的實(shí)現(xiàn)方式,在第三方面的第二種可能的實(shí)現(xiàn)方式中,所述置位模塊還用于所述中斷觸發(fā)模塊接收所述邏輯器件發(fā)送的所述中斷觸發(fā)信號(hào)之前,所述BMC對(duì)所述邏輯器件的中斷拉高寄存器進(jìn)行置位,以向所述邏輯器件指示可以接收中斷觸發(fā)信號(hào);
[0044]所述復(fù)位模塊還用于所述中斷處理模塊根據(jù)所述中斷信息進(jìn)行中斷處理之前,所述BMC對(duì)所述邏輯器件的所述中斷拉高寄存器進(jìn)行復(fù)位。
[0045]結(jié)合第三方面、第三方面的第一或第二種可能的實(shí)現(xiàn)方式,在第三方面的第三種可能的實(shí)現(xiàn)方式中,還包括:
[0046]內(nèi)核喚醒模塊,用于所述BMC等待內(nèi)核喚醒,喚醒后接收所述中斷觸發(fā)信號(hào)。
[0047]結(jié)合第三方面、第三方面的第一至第三種任意一種可能的實(shí)現(xiàn)方式,在第三方面的第四種可能的實(shí)現(xiàn)方式中,所述中斷處理模塊,具體用于:
[0048]所述BMC創(chuàng)建與所述中斷信息對(duì)應(yīng)的中斷處理線程進(jìn)行中斷處理。
[0049]本發(fā)明的第四方面提供了一種邏輯器件,包括:
[0050]故障檢測(cè)模塊,用于邏輯器件檢測(cè)服務(wù)器是否發(fā)生故障;
[0051]觸發(fā)信號(hào)發(fā)送模塊,用于所述邏輯器件向基板管理控制器BMC發(fā)送中斷觸發(fā)信號(hào);
[0052]中斷發(fā)送模塊,用于所述邏輯器件向所述BMC發(fā)送所述BMC從所述邏輯器件的中斷寄存器中讀取的所述故障對(duì)應(yīng)的中斷信息;
[0053]中斷清除模塊,用于所述邏輯器件在所述BMC完成中斷處理后,清除所述中斷寄存器中的所述中斷信息。
[0054]在第四方面的第一種可能的實(shí)現(xiàn)方式中,還包括:
[0055]置位模塊,用于中斷發(fā)送模塊發(fā)送所述BMC從所述邏輯器件的中斷寄存器中讀取的所述故障對(duì)應(yīng)的中斷信息之后,所述邏輯器件根據(jù)所述BMC的操作,對(duì)所述邏輯器件的中斷屏蔽寄存器中與所述中斷信息相應(yīng)的位進(jìn)行置位,以在所述中斷處理結(jié)束前不再響應(yīng)與所述中斷信息相同的中斷;
[0056]復(fù)位模塊,用于所述中斷清除模塊清除所述中斷寄存器中的所述中斷信息之后,所述邏輯器件根據(jù)所述BMC的操作,對(duì)所述邏輯器件的中斷屏蔽寄存器中與所述中斷信息相應(yīng)的位進(jìn)行復(fù)位。
[0057]結(jié)合第四方面或第四方面的第一種可能的實(shí)現(xiàn)方式,在第四方面的第二種可能的實(shí)現(xiàn)方式中,所述置位模塊還用于,用于所述觸發(fā)信號(hào)發(fā)送模塊向BMC發(fā)送中斷觸發(fā)信號(hào)之前,所述邏輯器件確定所述邏輯器件的中斷拉高寄存器被置位。
[0058]結(jié)合第四方面、第四方面的第一或第二種可能的實(shí)現(xiàn)方式,在第四方面的第三種可能的實(shí)現(xiàn)方式中,所述觸發(fā)信號(hào)發(fā)送模塊,具體用于:
[0059]控制所述邏輯器件拉低或拉高通用輸入輸出GPIO信號(hào)線,以向所述BMC發(fā)送中斷觸發(fā)信號(hào)。
[0060]本發(fā)明的第五方面提供了一種中斷處理系統(tǒng),包括,基板管理控制器BMC和邏輯器件,所述BMC采用權(quán)利要求10?14中任一項(xiàng)所述的BMC,所述邏輯器件采用權(quán)利要求15?18中任一項(xiàng)所述的邏輯器件。
[0061]本發(fā)明實(shí)施例提供一種中斷處理方法、裝置和系統(tǒng),現(xiàn)有的中斷處理技術(shù)中,BMC先讀取邏輯器件的中斷寄存器中的中斷信息,然后執(zhí)行清除中斷清除時(shí)刻中斷寄存器內(nèi)儲(chǔ)存的中斷,最后對(duì)執(zhí)行中斷清除之前讀取到的中斷信息對(duì)應(yīng)的中斷進(jìn)行相應(yīng)的中斷處理。而本發(fā)明改變了中斷操作的順序,對(duì)讀取到的中斷信息對(duì)應(yīng)的中斷先進(jìn)行中斷處理,然后對(duì)處理過(guò)的中斷對(duì)應(yīng)的中斷信息進(jìn)行中斷清除。通過(guò)改變中斷相關(guān)處理的順序,先執(zhí)行中斷處理后執(zhí)行中斷清除,避免丟失中斷的發(fā)生。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0062]圖1為本發(fā)明實(shí)施例一提供的中斷處理方法的流程圖;
[0063]圖2為本發(fā)明實(shí)施例二提供的中斷處理方法的流程圖;
[0064]圖3為本發(fā)明實(shí)施例三提供的中斷處理方法的流程圖;
[0065]圖4為本發(fā)明實(shí)施例四提供的BMC的結(jié)構(gòu)示意圖;
[0066]圖5為本發(fā)明實(shí)施例五提供的BMC的結(jié)構(gòu)示意圖;
[0067]圖6為本發(fā)明實(shí)施例六提供的邏輯器件的結(jié)構(gòu)示意圖;
[0068]圖7為本發(fā)明實(shí)施例七提供的邏輯器件的結(jié)構(gòu)示意圖;
[0069]圖8為本發(fā)明實(shí)施例八提供的中斷處理系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0070]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0071 ] 本發(fā)明下述實(shí)施例中,服務(wù)器與邏輯器件連接,邏輯器件與BMC連接。當(dāng)服務(wù)器發(fā)生故障時(shí),服務(wù)器會(huì)以中斷的形式通知邏輯器件,邏輯器件與BMC相互配合對(duì)接收到的中斷進(jìn)行相關(guān)處理。邏輯器件可以是復(fù)雜可編程邏輯器件(Complex Programmable LogicDevice,簡(jiǎn)稱(chēng) CPLD)、現(xiàn)場(chǎng)可編程門(mén)陣列(Field — Programmable Gate Array,簡(jiǎn)稱(chēng)FPGA)等邏輯器件,本發(fā)明不對(duì)此做限制。
[0072]實(shí)施例一
[0073]圖1為本發(fā)明實(shí)施例一提供的中斷處理方法的流程圖,如圖1所示,具體包括如下步驟:
[0074]步驟101、BMC接收邏輯器件發(fā)送的中斷觸發(fā)信號(hào),中斷觸發(fā)信號(hào)為邏輯器件在檢測(cè)到服務(wù)器發(fā)生故障時(shí)發(fā)送的;
[0075]步驟102、BMC從邏輯器件的中斷寄存器中讀取故障對(duì)應(yīng)的中斷信息;
[0076]步驟103、BMC根據(jù)中斷信息進(jìn)行中斷處理,并在中斷處理完成后清除中斷寄存器中處理完成的中斷對(duì)應(yīng)的中斷信息。[0077]具體來(lái)說(shuō),服務(wù)器發(fā)生故障后,邏輯器件可以收集服務(wù)器的故障信息,并以中斷的形式儲(chǔ)存在該邏輯器件的中斷寄存器中,并通過(guò)GPIO向BMC發(fā)送中斷觸發(fā)信號(hào)來(lái)觸發(fā)BMC進(jìn)行中斷處理。BMC可以通過(guò)局域總線讀取邏輯器件的中斷寄存器中與服務(wù)器發(fā)生的故障對(duì)應(yīng)的中斷信息。BMC根據(jù)讀到的中斷信息進(jìn)行中斷處理,并在處理完成后清除中斷寄存器中處理完成的中斷對(duì)應(yīng)的中斷信息。
[0078]舉例來(lái)說(shuō),如果服務(wù)器發(fā)生故障A,邏輯器件收集故障A的故障信息,并將故障A對(duì)應(yīng)的中斷的中斷信息儲(chǔ)存在中斷寄存器中,邏輯器件發(fā)送中斷觸發(fā)信號(hào)觸發(fā)BMC,BMC通過(guò)局域總線讀取中斷寄存器內(nèi)的故障A的中斷信息。此時(shí)如果又產(chǎn)生故障B,故障B對(duì)應(yīng)的中斷的中斷信息也會(huì)被寫(xiě)入中斷寄存器中,BMC則只會(huì)針對(duì)中斷寄存器中儲(chǔ)存的故障A的中斷信息進(jìn)行相應(yīng)的中斷處理,處理完成后BMC清除中斷寄存器內(nèi)的故障A的中斷信息,而故障B對(duì)應(yīng)的中斷信息則會(huì)保留在中斷寄存器中,并在下一次中斷處理中進(jìn)行處理。
[0079]現(xiàn)有的中斷處理技術(shù)中,BMC先讀取邏輯器件的中斷寄存器中的中斷信息,然后執(zhí)行清除中斷清除時(shí)刻中斷寄存器內(nèi)儲(chǔ)存的中斷,最后對(duì)執(zhí)行中斷清除之前讀取到的中斷信息對(duì)應(yīng)的中斷進(jìn)行相應(yīng)的中斷處理。而本發(fā)明改變了中斷操作的順序,對(duì)讀取到的中斷信息對(duì)應(yīng)的中斷先進(jìn)行中斷處理,然后對(duì)處理過(guò)的中斷對(duì)應(yīng)的中斷信息進(jìn)行中斷清除。通過(guò)改變中斷相關(guān)處理的順序,先執(zhí)行中斷處理后執(zhí)行中斷清除,避免丟失中斷的發(fā)生。
[0080]進(jìn)一步地,步驟102之后還包括,BMC對(duì)邏輯器件的中斷屏蔽寄存器中與步驟203中讀取到的中斷信息相應(yīng)的位進(jìn)行置位,以在步驟102讀取到的中斷信息對(duì)應(yīng)的中斷處理結(jié)束前不再響應(yīng)與該中斷信息相同的中斷;在步驟103之后還包括,BMC對(duì)中斷屏蔽寄存器中,步驟103清除的中斷信息相應(yīng)的位進(jìn)行復(fù)位。
[0081]具體來(lái)說(shuō),BMC從邏輯器件的中斷寄存器中讀取故障對(duì)應(yīng)的中斷信息,然后BMC將讀取到的中斷信息寫(xiě)入中斷屏蔽寄存器,在該中斷信息對(duì)應(yīng)的中斷進(jìn)行中斷處理后,BMC會(huì)對(duì)中斷屏蔽寄存器中處理過(guò)的中斷對(duì)應(yīng)的中斷信息進(jìn)行清除。
[0082]通過(guò)加入中斷屏蔽寄存器,來(lái)實(shí)現(xiàn)服務(wù)器若在該中斷被處理之前重復(fù)發(fā)送,重復(fù)發(fā)送的中斷可以被中斷屏蔽寄存器屏蔽,避免重復(fù)響應(yīng),另外,在處理過(guò)的中斷清中斷寄存器之后,BMC會(huì)對(duì)中斷屏蔽寄存器中已經(jīng)處理過(guò)的中斷對(duì)應(yīng)的中斷位進(jìn)行清除,這樣就可以保證該中斷對(duì)應(yīng)的故障再次發(fā)生時(shí),中斷信息不被屏蔽。
[0083]更進(jìn)一步地,步驟101之前還包括,BMC對(duì)邏輯器件的中斷拉高寄存器進(jìn)行置位,以向邏輯器件指示可以接收中斷觸發(fā)信號(hào);在步驟103之前還包括,BMC對(duì)邏輯器件的中斷拉聞寄存器進(jìn)行復(fù)位。
[0084]具體來(lái)說(shuō),在BMC收到邏輯器件發(fā)送的中斷觸發(fā)信號(hào)之前,BMC對(duì)中斷拉高寄存器進(jìn)行置位,以向邏輯器件指示BMC可以接收中斷觸發(fā)信號(hào);在BMC進(jìn)行中斷處理之前,BMC會(huì)對(duì)中斷拉高寄存器進(jìn)行復(fù)位,表明此次中斷讀取結(jié)束,BMC可以接收下一輪的中斷。
[0085]通過(guò)加入中斷拉高寄存器,來(lái)控制BMC接收中斷的時(shí)間段,即觸發(fā)脈沖觸發(fā)的時(shí)間段,步驟101中的觸發(fā)信號(hào)為觸發(fā)脈沖的起始端,步驟103之前的BMC對(duì)中斷拉高寄存器進(jìn)行復(fù)位為觸發(fā)脈沖的結(jié)束端,以此對(duì)BMC接收中斷的時(shí)刻進(jìn)行明確的控制,避免因?yàn)橹袛嘟邮諘r(shí)刻不明確引起的丟中斷。
[0086]進(jìn)一步可選地,步驟101之前還包括,BMC采用內(nèi)核喚醒技術(shù)等待接收中斷觸發(fā)信號(hào)。具體來(lái)說(shuō),在BMC被觸發(fā)之前,內(nèi)核等待喚醒,BMC被觸發(fā)后,內(nèi)核被喚醒,喚醒后內(nèi)核檢測(cè)并發(fā)送中斷觸發(fā)信息給BMC處理器。通過(guò)采用內(nèi)核喚醒技術(shù)喚醒BMC處理器,提高BMC響應(yīng)中斷的速度。
[0087]更進(jìn)一步可選地,步驟103包括,BMC創(chuàng)建與中斷信息對(duì)應(yīng)的中斷處理線程進(jìn)行中斷處理。具體來(lái)說(shuō),BMC根據(jù)讀取到的中斷信息對(duì)應(yīng)的中斷標(biāo)志和中斷號(hào),建立中斷處理線程,一位中斷對(duì)應(yīng)一個(gè)中斷處理線程進(jìn)行中斷處理,該中斷處理線程數(shù),與讀取到的中斷信息對(duì)應(yīng)的中斷數(shù)相同。通過(guò)采用多線程同步處理中斷,提高了中斷處理的速度。
[0088]實(shí)施例二
[0089]圖2為本發(fā)明實(shí)施例二提供的中斷處理方法的流程圖,如圖2所示,具體包括如下步驟:
[0090]步驟201、邏輯器件檢測(cè)到服務(wù)器發(fā)生故障;
[0091]步驟202、邏輯器件向BMC發(fā)送中斷觸發(fā)信號(hào);
[0092]步驟203、邏輯器件向BMC發(fā)送BMC從邏輯器件的中斷寄存器中讀取的故障對(duì)應(yīng)的中斷息;
[0093]步驟204、邏輯器件在BMC完成中斷處理后,清除中斷寄存器中的已經(jīng)處理的中斷對(duì)應(yīng)的中斷信息。
[0094]具體來(lái)說(shuō),當(dāng)邏輯器件檢測(cè)到服務(wù)器發(fā)生故障后,邏輯器件會(huì)通過(guò)GPIO向BMC發(fā)送中斷觸發(fā)信號(hào)觸發(fā)BMC對(duì)該中斷進(jìn)行相關(guān)處理,BMC被觸發(fā)后邏輯器件通過(guò)局域總線向BMC發(fā)送BMC從邏輯器件中斷寄存器中讀取到的中斷信息,BMC對(duì)該中斷信息對(duì)應(yīng)的中斷進(jìn)行中斷處理,邏輯器件在BMC完成中斷處理后清除中斷寄存器中的處理過(guò)的中斷對(duì)應(yīng)的中斷息。
[0095]舉例來(lái)說(shuō),如果服務(wù)器發(fā)生故障A,邏輯器件收集故障A的故障信息,并將故障A對(duì)應(yīng)的中斷信息儲(chǔ)存在邏輯器件的中斷寄存器中,邏輯器件發(fā)送中斷觸發(fā)信號(hào)觸發(fā)BMC,BMC通過(guò)局域總線讀取中斷寄存器內(nèi)的故障A的中斷信息。此時(shí)如果又產(chǎn)生故障B,故障B對(duì)應(yīng)的中斷信息也會(huì)被寫(xiě)入中斷寄存器中,BMC則只會(huì)針對(duì)中斷寄存器中故障A對(duì)應(yīng)的中斷進(jìn)行相應(yīng)的中斷處理,處理完成后BMC清除中斷寄存器內(nèi)故障A的中斷信息,而故障B對(duì)應(yīng)的中斷則會(huì)在下一個(gè)觸發(fā)脈沖中進(jìn)行處理。
[0096]該過(guò)程與現(xiàn)有技術(shù)的不同之處在于:現(xiàn)有技術(shù)中對(duì)邏輯器件中BMC讀取到的中斷信息對(duì)應(yīng)的中斷,先進(jìn)行中斷清除后進(jìn)行中斷處理;而本發(fā)明改變其操作順序,先對(duì)讀取到的中斷信息對(duì)應(yīng)的中斷進(jìn)行中斷處理,然后對(duì)處理過(guò)的中斷進(jìn)行中斷清除。
[0097]本實(shí)施例通過(guò)對(duì)步驟203中BMC讀取到的中斷信息先進(jìn)行中斷處理,后清除中斷寄存器中處理過(guò)的中斷對(duì)應(yīng)的中斷信息,來(lái)避免丟中斷的發(fā)生。
[0098]進(jìn)一步地,步驟203之后還包括:邏輯器件根據(jù)BMC的操作,對(duì)邏輯器件的中斷屏蔽寄存器中與步驟203中讀取到的中斷信息相應(yīng)的位進(jìn)行置位,以在該中斷處理結(jié)束前不再響應(yīng)與該中斷信息相同的中斷;步驟204之后還包括:邏輯器件根據(jù)BMC的操作,對(duì)邏輯器件的中斷屏蔽寄存器中與步驟204清除的中斷信息相應(yīng)的位進(jìn)行復(fù)位。
[0099]具體來(lái)說(shuō),BMC從邏輯器件的中斷寄存器中讀取故障對(duì)應(yīng)的中斷信息,然后BMC將讀取到的中斷信息寫(xiě)入中斷屏蔽寄存器,在該中斷信息對(duì)應(yīng)的中斷進(jìn)行中斷處理后,BMC會(huì)對(duì)中斷屏蔽寄存器中處理過(guò)的中斷對(duì)應(yīng)的中斷信息進(jìn)行清除。
[0100]通過(guò)加入中斷屏蔽寄存器,來(lái)實(shí)現(xiàn)服務(wù)器若在某中斷被處理之前重復(fù)發(fā)送該中斷的中斷信息,重復(fù)發(fā)送的中斷信息可以被中斷屏蔽寄存器屏蔽,避免重復(fù)響應(yīng),另外,在中斷寄存器中處理過(guò)的中斷的中斷信息被清除之后,BMC會(huì)對(duì)應(yīng)的清除中斷屏蔽寄存器中的該中斷信息,這樣就可以保證該中斷對(duì)應(yīng)的故障再次發(fā)生時(shí),中斷信息不被屏蔽。
[0101]更進(jìn)一步地,步驟202之后還包括,邏輯器件確定邏輯器件的中斷拉高寄存器被置位;步驟202包括,邏輯器件拉低或拉高通用輸入輸出GPIO信號(hào)線,以向BMC發(fā)送中斷觸發(fā)信號(hào);所述中斷觸發(fā)信號(hào)為脈沖觸發(fā)信號(hào)。
[0102]具體來(lái)說(shuō),邏輯器件向BMC發(fā)送中斷觸發(fā)信號(hào)之前,邏輯器件須先確定邏輯器件的中斷拉高寄存器被置位,若被置位則邏輯器件向BMC發(fā)送中斷觸發(fā)信號(hào),若無(wú)則等待中斷拉高寄存器被置位后再向BMC發(fā)送中斷觸發(fā)信號(hào);步驟202中的中斷觸發(fā)信號(hào)為脈沖觸發(fā),可以設(shè)置為低脈沖觸發(fā),也可以設(shè)置為高脈沖觸發(fā),若設(shè)置為低脈沖觸發(fā),產(chǎn)生中斷時(shí),邏輯器件會(huì)拉低GPIO信號(hào)線,以產(chǎn)生低脈沖的下降沿來(lái)觸發(fā)BMC,同理,若設(shè)置為高脈沖觸發(fā)產(chǎn)生中斷時(shí),邏輯器件會(huì)拉高GPIO信號(hào)線,以產(chǎn)生高脈沖的上升沿來(lái)觸發(fā)BMC。
[0103]通過(guò)設(shè)置觸發(fā)信號(hào)為脈沖觸發(fā),解決了電平觸發(fā)其接收中斷時(shí)間不好控制的問(wèn)題,實(shí)現(xiàn)了接收中斷時(shí)間段明確,時(shí)序清晰,避免了丟中斷的發(fā)生;通過(guò)在邏輯器件向BMC發(fā)送中斷觸發(fā)信號(hào)之前,確定邏輯器件的中斷拉高寄存器被置位,來(lái)開(kāi)啟觸發(fā)BMC的觸發(fā)信號(hào),以此來(lái)控制BMC讀取中斷以及后續(xù)操作,實(shí)現(xiàn)了讀取中斷時(shí)序明確,避免了丟中斷的發(fā)生。
[0104]實(shí)施例三
[0105]本實(shí)施例為結(jié)合實(shí)施例一與實(shí)施例二,對(duì)中斷處理方法的具體描述。圖3為本發(fā)明實(shí)施例三提供的中斷處理方法的流程圖,如圖3所示,結(jié)合實(shí)施例一與實(shí)施例二,本發(fā)明的具體實(shí)現(xiàn)方案包括如下步驟:
[0106]步驟301、啟動(dòng)BMC,置中斷拉高寄存器為I ;
[0107]置中斷拉高寄存器為1,表明BMC已準(zhǔn)備好,可以接收處理來(lái)自邏輯器件的中斷觸發(fā)信號(hào);
[0108]步驟302、查詢中斷,若產(chǎn)生中斷,執(zhí)行步驟303,若無(wú)保持查詢;
[0109]步驟303、邏輯器件發(fā)送中斷觸發(fā)信號(hào)給BMC ;
[0110]當(dāng)產(chǎn)生中斷時(shí),邏輯器件會(huì)拉低或拉高GPIO信號(hào)線,以此觸發(fā)BMC。該觸發(fā)信號(hào)參見(jiàn)實(shí)施例二中的具體描述,此處不再贅述。
[0111]步驟304、BMC內(nèi)核喚醒,響應(yīng)中斷;
[0112]步驟305、BMC從邏輯器件的中斷寄存器中讀取中斷對(duì)應(yīng)的中斷信息;
[0113]BMC讀取到的中斷信息為執(zhí)行步驟305時(shí)刻中斷寄存器中儲(chǔ)存的中斷信息,可以是一個(gè)中斷對(duì)應(yīng)的中斷信息,也可以是多個(gè)中斷的中斷信息,本發(fā)明不限制此中斷信息的個(gè)數(shù)。
[0114]步驟306、BMC對(duì)邏輯器件的中斷屏蔽寄存器中與中斷信息相應(yīng)的位進(jìn)行置位;
[0115]若中斷屏蔽寄存器中存在的中斷信息重復(fù)進(jìn)來(lái),則中斷屏蔽寄存器會(huì)將該中斷信息屏蔽,避免重復(fù)響應(yīng)。
[0116]步驟307、BMC記錄讀取到的中斷信息對(duì)應(yīng)的中斷號(hào)和中斷標(biāo)志;
[0117]每一個(gè)中斷號(hào),代表一個(gè)中斷,相同的中斷其中斷號(hào)相同;同時(shí),每一個(gè)中斷對(duì)應(yīng)一個(gè)中斷標(biāo)志來(lái)記錄該中斷的處理狀態(tài),即該中斷是處理過(guò)的中斷,還是未處理的中斷。步驟307中BMC記錄讀取到的多個(gè)或一個(gè)中斷的中斷號(hào),并記錄讀取到的每個(gè)中斷的中斷標(biāo)志為未處理。
[0118]步驟308、置中斷拉高寄存器為I ;
[0119]置中斷拉高寄存器為1,則觸發(fā)BMC的觸發(fā)脈沖結(jié)束,即本輪中斷讀取過(guò)程結(jié)束。具體而言,若步驟303中的觸發(fā)脈沖為低脈沖觸發(fā),則置中斷拉高寄存器為I后產(chǎn)生該觸發(fā)脈沖的上升沿,以結(jié)束該觸發(fā)脈沖;若步驟303中的觸發(fā)脈沖為高脈沖觸發(fā),則置中斷拉高寄存器為I后產(chǎn)生該觸發(fā)脈沖的下降沿,以結(jié)束該觸發(fā)脈沖。對(duì)應(yīng)高觸發(fā)脈沖的高電平階段或低觸發(fā)脈沖的低電平階段為一輪中斷的讀取過(guò)程,該讀取過(guò)程由步驟303開(kāi)始,步驟308結(jié)束。
[0120]置中斷拉高寄存器為1,標(biāo)志著本輪中斷讀取過(guò)程結(jié)束,如果又產(chǎn)生新的中斷,則可再次觸發(fā)BMC進(jìn)行下一輪的中斷讀取過(guò)程,即重復(fù)執(zhí)行步驟302?308。從步驟302之后,下一輪中斷執(zhí)行的步驟302?308與本輪中斷執(zhí)行的步驟309?313可同時(shí)進(jìn)行。以此類(lèi)推,第三輪中斷執(zhí)行的步驟302?308與第一輪和第二輪中斷執(zhí)行的步驟309?313可同時(shí)進(jìn)行,本發(fā)明對(duì)同時(shí)執(zhí)行上述步驟的中斷數(shù)不做限定。
[0121]在步驟302之后,步驟308之前,中斷拉高寄存器會(huì)自動(dòng)復(fù)位,即邏輯器件檢測(cè)到BMC對(duì)中斷拉高寄存器置位結(jié)束后,中斷拉高寄存器的狀態(tài)會(huì)自動(dòng)被置為O。
[0122]步驟309、BMC根據(jù)讀取到的中斷信息對(duì)應(yīng)的中斷標(biāo)志和中斷號(hào),建立中斷處理線程,對(duì)讀取到的中斷信息對(duì)應(yīng)的中斷進(jìn)行相應(yīng)的中斷處理;
[0123]每一個(gè)觸發(fā)脈沖對(duì)應(yīng)一輪中斷讀取過(guò)程,BMC對(duì)每一輪讀到的一個(gè)或多個(gè)中斷建立中斷處理線程,每一個(gè)中斷對(duì)應(yīng)一個(gè)中斷處理線程,以此對(duì)每一輪讀到的所有中斷進(jìn)行中斷處理。
[0124]具體來(lái)說(shuō),第一輪中斷讀取過(guò)程結(jié)束,即第一輪中斷執(zhí)行到步驟308,根據(jù)第一輪中斷讀取過(guò)程讀到的每個(gè)中斷對(duì)應(yīng)的中斷號(hào)與中斷標(biāo)志,建立中斷處理線程,進(jìn)行中斷處理,不同的中斷其中斷處理所需的時(shí)間不同。第一輪中斷處理結(jié)束前有可能產(chǎn)生新的中斷,即第二輪中斷。若產(chǎn)生第二輪中斷,則再次執(zhí)行步驟302?308,然后根據(jù)第二輪中斷中每個(gè)中斷的中斷標(biāo)志與中斷號(hào),建立第二輪中斷每個(gè)中斷對(duì)應(yīng)的中斷處理線程,進(jìn)行相應(yīng)的中斷處理。本發(fā)明中由于中斷處理所需時(shí)間不同,每輪中斷產(chǎn)生的時(shí)間間隔不同,每輪中斷的中斷個(gè)數(shù)不同,則同時(shí)進(jìn)行的中斷處理線程數(shù)不同,本發(fā)明不對(duì)此做限制。
[0125]步驟310、對(duì)處理過(guò)的中斷更改中斷標(biāo)志;
[0126]對(duì)每一輪處理過(guò)的中斷改變其中斷標(biāo)志,將其中斷標(biāo)志改為已處理。
[0127]步驟311、讀中斷屏蔽寄存器;
[0128]讀取執(zhí)行步驟311時(shí)刻中斷寄存器中儲(chǔ)存的中斷信息。
[0129]步驟312、按位清除中斷寄存器中已處理的中斷對(duì)應(yīng)的中斷信息;
[0130]步驟313、釋放中斷屏蔽寄存器中已處理的中斷的中斷信息對(duì)應(yīng)的中斷位。
[0131]舉例來(lái)說(shuō),若先產(chǎn)生第一輪中斷,其中斷信息被寫(xiě)入中斷寄存器中,第一輪中斷信息具體舉例為10101010,I代表相應(yīng)的位置發(fā)生中斷,則位數(shù)由低到高第2、4、6、8位發(fā)生中斷,第一輪中斷從步驟302依次執(zhí)行到步驟308,中斷寄存器與中斷屏蔽寄存器儲(chǔ)存的中斷信息為10101010。第一輪中斷執(zhí)行到步驟309,根據(jù)第2、4、6、8位中斷對(duì)應(yīng)的中斷號(hào)和中斷標(biāo)志創(chuàng)建與每位中斷對(duì)應(yīng)的中斷處理線程,4位中斷線程同時(shí)、獨(dú)立進(jìn)行中斷處理,即步驟310。具體舉例若第2位中斷執(zhí)行步驟311前有第二輪中斷00000001執(zhí)行到步驟306,即00000001也被寫(xiě)入中斷屏蔽寄存器(第二輪中斷的中斷個(gè)數(shù)不限制為1,中斷位數(shù)不限制為第I位),此時(shí)中斷寄存器與中斷屏蔽寄存器的中斷信息為10101011,第2位的中斷執(zhí)行步驟311時(shí),讀到的中斷屏蔽寄存器的中斷信息為10101011。第2位的中斷執(zhí)行步驟312時(shí),中斷寄存器的中斷信息10101011與處理過(guò)的第2位中斷信息00000010進(jìn)行異或運(yùn)算,運(yùn)算結(jié)果10101001寫(xiě)入中斷寄存器。第2位的中斷執(zhí)行步驟313,即中斷屏蔽寄存器的中斷信息10101011與處理過(guò)的第2為中斷信息00000010進(jìn)行異或運(yùn)算,運(yùn)算結(jié)果10101001寫(xiě)入中斷屏蔽寄存器。其他位中斷處理線程的步驟311?313與第2位中斷處理線程相同,此處不再贅述。
[0132]本發(fā)明對(duì)中斷寄存器儲(chǔ)存中斷信息的位數(shù),以及由O或I代表發(fā)生中斷不做限定。
[0133]本實(shí)施例的通過(guò)改變中斷相關(guān)操作順序,加入中斷屏蔽寄存器與中斷拉高寄存器,以及采用脈沖觸發(fā)方式觸發(fā)BMC,來(lái)避免中斷處理流程中丟中斷和中斷重復(fù)響應(yīng)的情況。另外,采用內(nèi)核喚醒技術(shù)喚醒BMC處理器響應(yīng)中斷,提高了中斷處理的速度。
[0134]實(shí)施例四
[0135]圖4為本發(fā)明實(shí)施例四提供的BMC的結(jié)構(gòu)示意圖,如圖4所示,本實(shí)施例的BMClO可以包括:中斷觸發(fā)模塊11、中斷讀取模塊12和中斷處理模塊13,其中,中斷觸發(fā)模塊11用于接收邏輯器件發(fā)送的中斷觸發(fā)信號(hào),所述中斷觸發(fā)信號(hào)為所述邏輯器件在檢測(cè)到服務(wù)器發(fā)生故障時(shí)發(fā)送的;中斷讀取模塊12用于從所述邏輯器件的中斷寄存器中讀取所述故障對(duì)應(yīng)的中斷信息;中斷處理模塊13用于根據(jù)所述中斷信息進(jìn)行中斷處理,并在中斷處理完成后清除所述中斷寄存器中的所述中斷信息。
[0136]本實(shí)施例的BMC可以用于執(zhí)行圖1所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類(lèi)似,詳細(xì)可以參見(jiàn)上述實(shí)施例中的相關(guān)記載,此處不再贅述。
[0137]實(shí)施例五
[0138]圖5為本發(fā)明實(shí)施例五提供的BMC的結(jié)構(gòu)示意圖,如圖5所示,本實(shí)施例的BMC在圖4所示的BMC結(jié)構(gòu)的基礎(chǔ)上,還可以包括:置位模塊14、復(fù)位模塊15和內(nèi)核喚醒模塊18,其中,置位模塊14用于所述中斷讀取模塊12在從所述邏輯器件的中斷寄存器中讀取所述故障對(duì)應(yīng)的中斷信息后,對(duì)所述邏輯器件的中斷屏蔽寄存器中與所述中斷信息相應(yīng)的位進(jìn)行置位,以在所述中斷處理結(jié)束前不再響應(yīng)與所述中斷信息相同的中斷;復(fù)位模塊15用于所述中斷處理模塊13清除所述中斷寄存器中的所述中斷信息之后,對(duì)所述中斷屏蔽寄存器中與所述中斷信息相應(yīng)的位進(jìn)行復(fù)位;置位模塊14還用于所述中斷觸發(fā)模塊11接收所述邏輯器件發(fā)送的所述中斷觸發(fā)信號(hào)之前,所述BMClO對(duì)所述邏輯器件的中斷拉高寄存器進(jìn)行置位,以向所述邏輯器件指示可以接收中斷觸發(fā)信號(hào);復(fù)位模塊15還用于所述中斷處理模塊13根據(jù)所述中斷信息進(jìn)行中斷處理之前,所述BMC對(duì)所述邏輯器件的所述中斷拉高寄存器進(jìn)行復(fù)位;內(nèi)核喚醒模塊16用于所述BMC等待內(nèi)核喚醒,喚醒后接收所述中斷觸發(fā)信號(hào)。
[0139]進(jìn)一步地,實(shí)施例四中所述的中斷處理模塊具體用于所述BMC創(chuàng)建與所述中斷信息對(duì)應(yīng)的中斷處理線程進(jìn)行中斷處理。
[0140]本實(shí)施例中復(fù)位模塊也可以與圖5所示的置位模塊、中斷觸發(fā)模塊、內(nèi)核喚醒模塊或中斷讀取模塊連接,本發(fā)明不對(duì)此做限制。[0141]本實(shí)施例的BMC可以用于執(zhí)行實(shí)施例一所不方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類(lèi)似,詳細(xì)可以參見(jiàn)上述實(shí)施例中的相關(guān)記載,此處不再贅述。
[0142]實(shí)施例六
[0143]圖6為本發(fā)明實(shí)施例六提供的邏輯器件的結(jié)構(gòu)示意圖,如圖6所示,本實(shí)施例的邏輯器件20可以包括:故障檢測(cè)模塊21、觸發(fā)信號(hào)發(fā)送模塊22、中斷發(fā)送模塊23和中斷清除模塊24,其中,故障檢測(cè)模塊21用于邏輯器件20檢測(cè)服務(wù)器是否發(fā)生故障;觸發(fā)信號(hào)發(fā)送模塊22用于所述邏輯器件20向BMClO發(fā)送中斷觸發(fā)信號(hào);中斷發(fā)送模塊23用于所述邏輯器件20向所述BMClO發(fā)送所述BMClO從所述邏輯器件20的中斷寄存器中讀取的所述故障對(duì)應(yīng)的中斷信息;中斷清除模塊24用于所述邏輯器件20在所述BMClO完成中斷處理后,清除所述中斷寄存器中的所述中斷信息。
[0144]本實(shí)施例的邏輯器件可以用于執(zhí)行圖2所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類(lèi)似,詳細(xì)可以參見(jiàn)上述實(shí)施例中的相關(guān)記載,此處不再贅述。
[0145]實(shí)施例七
[0146]圖7為本發(fā)明實(shí)施例七提供的邏輯器件的結(jié)構(gòu)示意圖,如圖7所示,本實(shí)施例的邏輯器件在圖6所示的邏輯器件結(jié)構(gòu)的基礎(chǔ)上,還可以包括:置位模塊25、復(fù)位模塊26其中,置位模塊25用于中斷發(fā)送模塊23發(fā)送所述BMClO從所述邏輯器件20的中斷寄存器中讀取的所述故障對(duì)應(yīng)的中斷信息之后,所述邏輯器件20根據(jù)所述BMClO的操作,對(duì)所述邏輯器件20的中斷屏蔽寄存器中與所述中斷信息相應(yīng)的位進(jìn)行置位,以在所述中斷處理結(jié)束前不再響應(yīng)與所述中斷信息相同的中斷;復(fù)位模塊26用于所述中斷清除模塊24清除所述中斷寄存器中的所述中斷信息之后,所述邏輯器件20根據(jù)所述BMClO的操作,對(duì)所述邏輯器件20的中斷屏蔽寄存器中與所述中斷信息相應(yīng)的位進(jìn)行復(fù)位;置位模塊25還用于所述觸發(fā)信號(hào)發(fā)送模塊22向BMClO發(fā)送中斷觸發(fā)信號(hào)之前,所述邏輯器件20確定所述邏輯器件20的中斷拉高寄存器被置位。
[0147]進(jìn)一步地,實(shí)施例六中所述的觸發(fā)信號(hào)發(fā)送模塊22,具體用于控制所述邏輯器件20拉低或拉高通用輸入輸出GPIO信號(hào)線,以向所述BMClO發(fā)送中斷觸發(fā)信號(hào)。
[0148]本實(shí)施例的邏輯器件可以用于執(zhí)行實(shí)施例二所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類(lèi)似,詳細(xì)可以參見(jiàn)上述實(shí)施例中的相關(guān)記載,此處不再贅述。
[0149]實(shí)施例八
[0150]圖8為本發(fā)明實(shí)施例八提供的中斷處理系統(tǒng)的結(jié)構(gòu)示意圖,如圖8所示,本實(shí)施例的中斷處理系統(tǒng)30包括:BMC10和邏輯器件20,其中,BMClO可以為圖5所示的BMClO,其對(duì)應(yīng)地,可以執(zhí)行圖1?圖3中任一方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類(lèi)似,詳細(xì)可以參見(jiàn)上述實(shí)施例中的相關(guān)記載,此處不再贅述。需要說(shuō)明的是,邏輯器件20可以為圖7所示的邏輯器件20,其對(duì)應(yīng)地,可以執(zhí)行圖1?圖3中任一方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類(lèi)似,詳細(xì)可以參見(jiàn)上述實(shí)施例中的相關(guān)記載,此處不再贅述。
[0151]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成。前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:R0M、RAM、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0152]最后應(yīng)說(shuō)明的是:以上各實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
【權(quán)利要求】
1.一種中斷處理方法,其特征在于,包括: 基板管理控制器BMC接收邏輯器件發(fā)送的中斷觸發(fā)信號(hào),所述中斷觸發(fā)信號(hào)為所述邏輯器件在檢測(cè)到服務(wù)器發(fā)生故障時(shí)發(fā)送的; 所述BMC從所述邏輯器件的中斷寄存器中讀取所述故障對(duì)應(yīng)的中斷信息; 所述BMC根據(jù)所述中斷信息進(jìn)行中斷處理,并在中斷處理完成后清除所述中斷寄存器中的所述中斷信息。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述BMC在從所述邏輯器件的中斷寄存器中讀取所述故障對(duì)應(yīng)的中斷信息后,還包括: 所述BMC對(duì)所述邏輯器件的中斷屏蔽寄存器中與所述中斷信息相應(yīng)的位進(jìn)行置位,以在所述中斷處理結(jié)束前不再響應(yīng)與所述中斷信息相同的中斷; 所述BMC清除所述中斷寄存器中的所述中斷信息之后,還包括: 所述BMC對(duì)所述中斷屏蔽寄存器中與所述中斷信息相應(yīng)的位進(jìn)行復(fù)位。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述BMC收到邏輯器件發(fā)送的中斷觸發(fā)信號(hào)之前,還包括: 所述BMC對(duì)所述邏輯器件的中斷拉高寄存器進(jìn)行置位,以向所述邏輯器件指示可以接收中斷觸發(fā)信號(hào); 所述BMC根據(jù)所述中斷信息進(jìn)行中斷處理之前,還包括: 所述BMC對(duì)所述邏輯器件的.所述中斷拉高寄存器進(jìn)行復(fù)位。
4.根據(jù)權(quán)利要求1~3中任一項(xiàng)所述的方法,其特征在于,所述BMC收到邏輯器件發(fā)送的中斷觸發(fā)信號(hào)之前,還包括: 所述BMC采用內(nèi)核喚醒技術(shù)等待接收所述中斷觸發(fā)信號(hào)。
5.根據(jù)權(quán)利要求1~4中任一項(xiàng)所述的方法,其特征在于,所述BMC根據(jù)所述中斷信息進(jìn)行中斷處理,包括: 所述BMC創(chuàng)建與所述中斷信息對(duì)應(yīng)的中斷處理線程進(jìn)行中斷處理。
6.一種中斷處理方法,其特征在于,包括: 邏輯器件檢測(cè)到服務(wù)器發(fā)生故障; 所述邏輯器件向基板管理控制器BMC發(fā)送中斷觸發(fā)信號(hào); 所述邏輯器件向所述BMC發(fā)送所述BMC從所述邏輯器件的中斷寄存器中讀取的所述故障對(duì)應(yīng)的中斷信息; 所述邏輯器件在所述BMC完成中斷處理后,清除所述中斷寄存器中的所述中斷信息。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述邏輯器件向所述BMC發(fā)送所述BMC從所述邏輯器件的中斷寄存器中讀取的所述故障對(duì)應(yīng)的中斷信息后,還包括: 所述邏輯器件根據(jù)所述BMC的操作,對(duì)所述邏輯器件的中斷屏蔽寄存器中與所述中斷信息相應(yīng)的位進(jìn)行置位,以在所述中斷處理結(jié)束前不再響應(yīng)與所述中斷信息相同的中斷;所述邏輯器件在所述BMC完成中斷處理后清除所述中斷寄存器中的所述中斷信息之后,還包括: 所述邏輯器件根據(jù)所述BMC的操作,對(duì)所述邏輯器件的中斷屏蔽寄存器中與所述中斷信息相應(yīng)的位進(jìn)行復(fù)位。
8.根據(jù)權(quán)利要求6或7所述的方法,其特征在于,所述邏輯器件向BMC發(fā)送中斷觸發(fā)信號(hào)之前,還包括: 所述邏輯器件確定所述邏輯器件的中斷拉高寄存器被置位。
9.根據(jù)權(quán)利要求6~8中任一項(xiàng)所述的方法,其特征在于,所述邏輯器件向BMC發(fā)送中斷觸發(fā)信號(hào),包括: 所述邏輯器件拉低或拉高通用輸入輸出GPIO信號(hào)線,以向所述BMC發(fā)送中斷觸發(fā)信號(hào); 所述中斷觸發(fā)信號(hào)為脈沖觸發(fā)信號(hào)。
10.一種基板管理控制器BMC,其特征在于,包括: 中斷觸發(fā)模塊,用于接收邏輯器件發(fā)送的中斷觸發(fā)信號(hào),所述中斷觸發(fā)信號(hào)為所述邏輯器件在檢測(cè)到服務(wù)器發(fā)生故障時(shí)發(fā)送的; 中斷讀取模塊,用于從所述邏輯器件的中斷寄存器中讀取所述故障對(duì)應(yīng)的中斷信息; 中斷處理模塊,用于根據(jù)所述中斷信息進(jìn)行中斷處理,并在中斷處理完成后清除所述中斷寄存器中的所述中斷信息。
11.根據(jù)權(quán)利要求10所述的BMC,其特征在于,還包括: 置位模塊,用于所述中斷讀取模塊在從所述邏輯器件的中斷寄存器中讀取所述故障對(duì)應(yīng)的中斷信息后,對(duì)所述邏輯器件的中斷屏蔽寄存器中與所述中斷信息相應(yīng)的位進(jìn)行置位,以在所述中斷處理結(jié)束前不再響應(yīng)與所述中斷信息相同的中斷;. 復(fù)位模塊,用于所述中斷處理模塊清除所述中斷寄存器中的所述中斷信息之后,對(duì)所述中斷屏蔽寄存器中與所述中斷信息相應(yīng)的位進(jìn)行復(fù)位。
12.根據(jù)權(quán)利要求10或11所述的BMC,其特征在于,所述置位模塊還用于所述中斷觸發(fā)模塊接收所述邏輯器件發(fā)送的所述中斷觸發(fā)信號(hào)之前,所述BMC對(duì)所述邏輯器件的中斷拉高寄存器進(jìn)行置位,以向所述邏輯器件指示可以接收中斷觸發(fā)信號(hào); 所述復(fù)位模塊還用于所述中斷處理模塊根據(jù)所述中斷信息進(jìn)行中斷處理之前,所述BMC對(duì)所述邏輯器件的所述中斷拉高寄存器進(jìn)行復(fù)位。
13.根據(jù)權(quán)利要求10~12中任一項(xiàng)所述的BMC,其特征在于,還包括: 內(nèi)核喚醒模塊,用于所述BMC等待內(nèi)核喚醒,喚醒后接收所述中斷觸發(fā)信號(hào)。
14.根據(jù)權(quán)利要求10~13中任一項(xiàng)所述的BMC,其特征在于,所述中斷處理模塊,具體用于: 所述BMC創(chuàng)建與所述中斷信息對(duì)應(yīng)的中斷處理線程進(jìn)行中斷處理。
15.一種邏輯器件,其特征在于,包括: 故障檢測(cè)模塊,用于邏輯器件檢測(cè)服務(wù)器是否發(fā)生故障; 觸發(fā)信號(hào)發(fā)送模塊,用于所述邏輯器件向基板管理控制器BMC發(fā)送中斷觸發(fā)信號(hào); 中斷發(fā)送模塊,用于所述邏輯器件向所述BMC發(fā)送所述BMC從所述邏輯器件的中斷寄存器中讀取的所述故障對(duì)應(yīng)的中斷信息; 中斷清除模塊,用于所述邏輯器件在所述BMC完成中斷處理后,清除所述中斷寄存器中的所述中斷信息。
16.根據(jù)權(quán)利要求15所述的邏輯器件,其特征在于,還包括: 置位模塊,用于中斷發(fā)送模塊發(fā)送所述BMC從所述邏輯器件的中斷寄存器中讀取的所述故障對(duì)應(yīng)的中斷信息之后,所述邏輯器件根據(jù)所述BMC的操作,對(duì)所述邏輯器件的中斷屏蔽寄存器中與所述中斷信息相應(yīng)的位進(jìn)行置位,以在所述中斷處理結(jié)束前不再響應(yīng)與所述中斷信息相同的中斷; 復(fù)位模塊,用于所述中斷清除模塊清除所述中斷寄存器中的所述中斷信息之后,所述邏輯器件根據(jù)所述BMC的操作,對(duì)所述邏輯器件的中斷屏蔽寄存器中與所述中斷信息相應(yīng)的位進(jìn)行復(fù)位。
17.根據(jù)權(quán)利要求15或16所述的邏輯器件,其特征在于,所述置位模塊還用于所述觸發(fā)信號(hào)發(fā)送模塊向BMC發(fā)送中斷觸發(fā)信號(hào)之前,所述邏輯器件確定所述邏輯器件的中斷拉高寄存器被置位。
18.根據(jù)權(quán)利要求15~17中任一項(xiàng)所述的邏輯器件,其特征在于,所述觸發(fā)信號(hào)發(fā)送模塊,具體用于: 控制所述邏輯器件拉低或拉高通用輸入輸出GPIO信號(hào)線,以向所述BMC發(fā)送中斷觸發(fā)信號(hào)。
19. 一種中斷處理系統(tǒng),其特征在于,包括,基板管理控制器BMC和邏輯器件,所述BMC采用權(quán)利要求10~14中任一項(xiàng)所述的BMC,所述邏輯器件采用權(quán)利要求15~18中任一項(xiàng)所述的邏輯器件。
【文檔編號(hào)】G06F9/48GK103473191SQ201310396516
【公開(kāi)日】2013年12月25日 申請(qǐng)日期:2013年9月3日 優(yōu)先權(quán)日:2013年9月3日
【發(fā)明者】張紅星, 張進(jìn)毅, 陳立鋼 申請(qǐng)人:杭州華為數(shù)字技術(shù)有限公司