亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

熱插拔的實現(xiàn)方法和系統(tǒng)的制作方法

文檔序號:8402745閱讀:582來源:國知局
熱插拔的實現(xiàn)方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別是涉及一種熱插拔的實現(xiàn)方法和系統(tǒng)。
【背景技術(shù)】
[0002]熱插拔(hot-plugging或Hot Swap)即帶電插拔,熱插拔功能是允許用戶在不關(guān)閉操作系統(tǒng),不切斷電源的情況下取出硬盤、電源或板卡等部件,進行維護或更換,從而提高了系統(tǒng)對故障的及時恢復(fù)能力、擴展性和靈活性等。PICMG (PCI Industrial ComputerManufacturers Group, PCI工業(yè)計算機制造商協(xié)會)協(xié)會也將熱插拔功能加入了 CPCI(Compact Peripheral Component Interconnect,緊湊型 PCI)規(guī)范,成為高端 CPCI 產(chǎn)品必備的功能。
[0003]熱插拔的實現(xiàn)方法通常是:通過在卡的插入/拔出機構(gòu)中添加一個微開關(guān)裝置,這個開關(guān)藏在手柄中,當(dāng)CPCI卡被插入或拔出時,在卡開始或停止工作之前,微開關(guān)首先改變狀態(tài),產(chǎn)生ENUM#信號,即系統(tǒng)枚舉信號,該信號通過某種途徑通知OS (OperatingSystem,操作系統(tǒng))將要插入或拔出一個卡,OS再執(zhí)行總線枚舉、安裝驅(qū)動程序或卸載驅(qū)動程序等動作。
[0004]傳統(tǒng)技術(shù)中,ENUM#信號通知OS的方法,通常采用一個專用的CPLD (Complexprogrammable logic devices,復(fù)雜可編程邏輯器件)芯片,將輸入的ENUM#信號轉(zhuǎn)換成Serial IRQ (Serial Interrupt Request,串行中斷請求),通過 Serial IRQ 來通知 OS 執(zhí)行相應(yīng)的動作。
[0005]但是,傳統(tǒng)的X86架構(gòu)是使用中斷服務(wù)程序處理各種中斷事件,隨著X86架構(gòu)的不斷發(fā)展,基于X86架構(gòu)的系統(tǒng)功能越來越復(fù)雜,接口越來越豐富,要處理的中斷也越來越多。眾多的PCI (Peripheral Component Interconnect,總線接口標(biāo)準(zhǔn))設(shè)備、串口、打印口、鍵盤和鼠標(biāo)等都使用Serial IRQ,資源有限。并且傳統(tǒng)技術(shù)中由于要采用專用的CPLD芯片,增加了成本,同時CPLD需要編程,以將ENUM#信號模擬轉(zhuǎn)換成serial IRQ的協(xié)議發(fā)出,因此增加了設(shè)計難度。

【發(fā)明內(nèi)容】

[0006]基于此,有必要針對上述問題,提供一種能節(jié)省資源、減少成本且降低設(shè)計難度的熱插拔的實現(xiàn)方法和系統(tǒng)。
[0007]一種熱插拔的實現(xiàn)方法,所述方法包括:
[0008]檢測預(yù)設(shè)GP1是否為低電平,所述預(yù)設(shè)GP1被配置為輸入功能且配置為低電平有效,用于接收熱插拔產(chǎn)生的系統(tǒng)枚舉信號;
[0009]當(dāng)所述預(yù)設(shè)GP1為低電平時,觸發(fā)系統(tǒng)控制中斷;
[0010]讀取設(shè)備狀態(tài),根據(jù)所述設(shè)備狀態(tài)判斷有設(shè)備接入還是有設(shè)備被拔掉;
[0011]執(zhí)行與判斷結(jié)果對應(yīng)的動作。
[0012]在其中一個實施例中,所述讀取設(shè)備狀態(tài),根據(jù)所述設(shè)備狀態(tài)判斷有設(shè)備接入還是有設(shè)備被拔掉的步驟為:
[0013]檢測當(dāng)前狀態(tài)寄存器的值,如果為低電平,則判定為有設(shè)備接入,如果為高電平,則判定為有設(shè)備被拔掉;或者
[0014]檢測當(dāng)前狀態(tài)寄存器的值,如果為高電平,則判定為有設(shè)備接入,如果為低電平,則判定為有設(shè)備被拔掉。
[0015]在其中一個實施例中,所述執(zhí)行與判斷結(jié)果對應(yīng)的動作的步驟,包括:
[0016]當(dāng)判定為有設(shè)備接入時,通知操作系統(tǒng)有設(shè)備接入,并基于當(dāng)前操作系統(tǒng),對接入的設(shè)備進行初始化;
[0017]當(dāng)判定為有設(shè)備被拔掉時,通知操作系統(tǒng)有設(shè)備被拔掉,并從操作系統(tǒng)的邏輯設(shè)備列表中移除所述設(shè)備。
[0018]在其中一個實施例中,在所述執(zhí)行與判斷結(jié)果對應(yīng)的動作的步驟之后,還包括:
[0019]將所述GP1設(shè)置為高電平。
[0020]在其中一個實施例中,所述方法還包括:
[0021]配置所述GP1為輸入功能;
[0022]配置所述GP1為低電平有效;
[0023]配置所述GP1可觸發(fā)系統(tǒng)控制中斷。
[0024]一種熱插拔的實現(xiàn)系統(tǒng),所述系統(tǒng)包括:
[0025]檢測模塊,用于檢測預(yù)設(shè)GP1是否為低電平,所述預(yù)設(shè)GP1被配置為輸入功能且配置為低電平有效,用于接收熱插拔產(chǎn)生的系統(tǒng)枚舉信號;
[0026]所述檢測模塊還用于當(dāng)所述預(yù)設(shè)GP1為低電平時,觸發(fā)系統(tǒng)控制中斷;
[0027]熱插拔處理模塊,用于讀取設(shè)備狀態(tài),根據(jù)所述設(shè)備狀態(tài)判斷有設(shè)備接入還是有設(shè)備被拔掉;
[0028]所述熱插拔處理模塊還用于執(zhí)行與判斷結(jié)果對應(yīng)的動作。
[0029]在其中一個實施例中,所述熱插拔處理模塊用于檢測當(dāng)前狀態(tài)寄存器的值,如果為低電平,則判定為有設(shè)備接入,如果為高電平,則判定為有設(shè)備被拔掉;或者
[0030]所述熱插拔處理模塊用于檢測當(dāng)前狀態(tài)寄存器的值,如果為高電平,則判定為有設(shè)備接入,如果為低電平,則判定為有設(shè)備被拔掉。
[0031]在其中一個實施例中,所述熱插拔處理模塊還用于當(dāng)判定為有設(shè)備接入時,通知操作系統(tǒng)有設(shè)備接入,并基于當(dāng)前操作系統(tǒng),對接入的設(shè)備進行初始化;當(dāng)判定為有設(shè)備被拔掉時,通知操作系統(tǒng)有設(shè)備被拔掉,并從操作系統(tǒng)的邏輯設(shè)備列表中移除所述設(shè)備。
[0032]在其中一個實施例中,所述熱插拔處理模塊還用于在執(zhí)行與判斷結(jié)果對應(yīng)的動作之后,將所述GP1設(shè)置為高電平。
[0033]在其中一個實施例中,所述系統(tǒng)還包括:
[0034]配置模塊,用于配置所述GP1為輸入功能、配置所述GP1為低電平有效和配置所述GP1可觸發(fā)系統(tǒng)控制中斷。
[0035]上述熱插拔的實現(xiàn)方法和系統(tǒng)中,由于GP1被配置為輸入功能且低電平有效,用于接收熱插拔產(chǎn)生的系統(tǒng)枚舉信號,當(dāng)檢測到預(yù)設(shè)GP1為低電平時,則說明產(chǎn)生了熱插拔,觸發(fā)系統(tǒng)控制中斷(System Control Interrupt, SCI),從而調(diào)用中斷處理程序,該中斷處理程序能夠讀取設(shè)備狀態(tài),根據(jù)設(shè)備狀態(tài)判斷有設(shè)備接入還是有設(shè)備被拔掉,并執(zhí)行與判斷結(jié)果對應(yīng)的動作。由于SCI是操作系統(tǒng)可見的、可以共享的且由低電平觸發(fā)的一種中斷,通過觸發(fā)SCI使得對應(yīng)的中斷處理程序得以執(zhí)行,從而實現(xiàn)熱插拔。相對于傳統(tǒng)的將輸入的ENUM#信號轉(zhuǎn)換成Serial IRQ的方式,該方法和系統(tǒng)能夠節(jié)省資源,且不依賴于專用的CPLD芯片,因此能夠節(jié)省成本,同時降低了設(shè)計難度。
【附圖說明】
[0036]圖1為一個實施例中熱插拔的實現(xiàn)方法的應(yīng)用環(huán)境圖;
[0037]圖2為一個實施例中熱插拔的實現(xiàn)方法的流程示意圖;
[0038]圖3為另一個實施例中熱插拔的實現(xiàn)方法的流程示意圖;
[0039]圖4為一個實施例中熱插拔的實現(xiàn)系統(tǒng)的結(jié)構(gòu)示意圖;
[0040]圖5為另一個實施例中熱插拔的實現(xiàn)系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0041]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0042]請參見圖1,本發(fā)明實施例所提供的熱插拔的實現(xiàn)方法可應(yīng)用于如圖1所示的環(huán)境中。在圖1中,CPCI采用背板和垂直連接的功能板構(gòu)成,其中:功能板為根據(jù)系統(tǒng)功能需要,在處理器板支持的總線上開發(fā)的能夠?qū)崿F(xiàn)指定功能的CPCI功能板卡,如實現(xiàn)串口功能的串口卡。背板是實現(xiàn)功能板與處理器板的數(shù)據(jù)通訊和控制的CPCI背板。處理器板即為(PU板卡,其不依賴功能板,可單獨運行,處理器板有可運行的操作系統(tǒng),通過總線與功能板通訊。
[0043]功能板在插入或拔出時,比如當(dāng)功能板需要進行在線維護時,通常是打開手柄準(zhǔn)備拔出的過程中,觸動手柄中的開關(guān),開關(guān)狀態(tài)改變,從而產(chǎn)生系統(tǒng)枚舉信號(ENUM#信號),該信號經(jīng)過背板通知處理器板有拔出或插入動作。本發(fā)明方案中,通過觸發(fā)SCI實現(xiàn)熱插拔功能。由于SCI是操作系統(tǒng)可見的、可以共享的且由低電平觸發(fā)的一種中斷,通過觸發(fā)SCI使得對應(yīng)的中斷處理程序得以執(zhí)行,從而實現(xiàn)熱插拔。相對于傳統(tǒng)的將輸入的ENUMi^f號轉(zhuǎn)換成Serial IRQ的方式,該方法和系統(tǒng)能夠節(jié)省資源,且不依賴于專用的CPLD芯片,因此能夠節(jié)省成本,同時降低了設(shè)計難度。
[0044]如圖2所示,在一個實施例中,提供了一種熱插拔的實現(xiàn)方法,包括:
[0045]步驟202,檢測預(yù)設(shè)GP1是否為低電平,該預(yù)設(shè)GP1被配置為輸入功能且配置為低電平有效,用于接收熱插拔產(chǎn)生的系統(tǒng)枚舉信號。
[0046]本實施例中,可將主板/底板插槽上的一個針腳和GP10(General Purpose Input/Output)相連接,該GP1硬件默認上拉為高電平,待插入的設(shè)備對應(yīng)針腳硬件連接觸動手柄中的開關(guān)。
[0047]進一步的,預(yù)先可對GP1進行配置,包括:配置該GP1為輸入功能;配置該GP1為低電平有效;配置該GP1可觸發(fā)SCI。
[0048]具體的,將GP1配置為輸入功能,使得GP1只接收輸入信號,由于GP1與插槽上的一個針腳相連接,因此GP1能接收熱插拔產(chǎn)生的ENUM#信號。由于SCI是操作系統(tǒng)可見的、可以共享的且由低電平觸發(fā)的一種中斷,配置GP1為低電平有效,且可觸發(fā)SCI,使得當(dāng)該GP1為低電平時,就可觸發(fā)SCI。
[0049]另外,可使用單功能的GP1信號,也可使用多功能復(fù)用信號作為GP1信號,當(dāng)使用多功能復(fù)用信號時,需將該信號配置為GP1信號。
[0050]步驟204,當(dāng)預(yù)設(shè)GP1為低電平時,觸發(fā)SCI。
[0051]步驟206,讀取設(shè)備狀態(tài),根據(jù)設(shè)備狀態(tài)判斷有設(shè)備接入還是有設(shè)備被拔掉。
[0052]觸發(fā)SCI則即可調(diào)用中斷處理程序,該中斷處理程序用于執(zhí)行步驟206及后續(xù)步驟。
[0053]可以理解的是,接入或拔出設(shè)備,設(shè)備對應(yīng)的狀態(tài)寄存器的值是由高變?yōu)榈?,還是由低變?yōu)楦撸梢允孪扔捎脩糇远x。
[0054]在一個實施例中,預(yù)先定義了有設(shè)備接入,則對應(yīng)的狀態(tài)寄存器的值由高變?yōu)榈停性O(shè)備被拔掉,則對應(yīng)的狀態(tài)寄存器的值由低變?yōu)楦?。步驟206為:檢測當(dāng)前狀態(tài)寄存器的值,如果為低電平,則判定為有設(shè)備接入,如果為高電平,則判定為有設(shè)備被拔掉。
[0055]在另一個實施例中,預(yù)先定義了有設(shè)備接入,則對應(yīng)的狀態(tài)寄存器的值由低變?yōu)楦?,有設(shè)備被拔掉,則對應(yīng)的狀態(tài)寄存器的值由高
當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1