專利名稱:一種通過cpld或fpga實現(xiàn)pcie設備熱插拔的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計算機應用技術(shù)領(lǐng)域,具體地說是ー種通過CPLD或FPGA實現(xiàn)PCIE設備熱插拔的方法。
背景技術(shù):
PCIE設備的熱插拔,對提高計算機系統(tǒng)的Reliability, Availability,Serviceability (RAS)有著重要作用。之前的熱插拔系統(tǒng)由PCIE HOST、PCA9555、PCIEHot-Plug Controller 實現(xiàn)。每個PCIE HOST下面最多可以掛九個可以熱插拔的PCIE設備,大型計算機系統(tǒng)中,有多個PCIE HOST。這樣,有多個要熱插拔的PCIE,就得用很多個PCA9555芯片。不僅所用器件多,成本大,功耗高;而且占很大的板卡空間。不利于系統(tǒng)的小型化,低成本化,低功耗化。傳統(tǒng)平臺中,PCIE熱插拔的時候,P12V、P3V3斷電,而P3V3_STBY電依然存在。熱插拔是在帶電的情況下進行的。有燒壞PCIE設備的風險。故需優(yōu)化。傳統(tǒng)平臺中,是在計算機系統(tǒng)運行中,通過按按鈕去通知系統(tǒng)需要熱插拔PCIE設備。設計時,需要在計算機硬件板卡上添加熱插拔按鈕,増加成本。操作時,需要對計算機進行帶電開箱操作。操作不便,不安全。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種通過CPLD或FPGA實現(xiàn)PCIE設備熱插拔的方法。硬件系統(tǒng)包括PCIE HOST、CPLD/FPGA、PCIE HOT-PLUG CONTROLLER、PCIE 插槽共同搭建系統(tǒng)硬件平臺,其中
PCIE HOST下面掛接多個PCA9555功能模塊,通過PCA9555功能模塊,在CPLD/FPGA內(nèi)部模擬實現(xiàn)SMBUS轉(zhuǎn)GPIO的功能;通過地址A2、A1、A0區(qū)分不同的PCA9555 ;PCIE HOST與PCA9555通過SMBUS相互通信;
IIC/SMBUS CONTROL模塊在寫操作吋,負責從SMBUS上讀取8bit的串行數(shù)據(jù),傳送給INPUT/OUTPUT PORT,在讀操作時,負責把INPUT/OUTPUT PORT的信息轉(zhuǎn)換成8bit的串行數(shù)據(jù),通過 SMBUS 傳送給 PCIE HOST, INPUT/OUTPUT PORT 中 8 byte 的 register 有著各自不同的功能,
P3V3_STBY_EN MODE:對PCIE設備的P3V3_STBY電進行控制,完成在不插卡及在PCIE設備的P12V、P3V3掉電情況下,去掉P3V3_STBY電,實現(xiàn)不帶電熱插拔,而在P12V、P3V3上電時,P3V3_STBY正常供電,實現(xiàn)PCIE設備正常工作;
BMC_C0NTR0L:BMC向CPLD/FPGA發(fā)送熱移除或熱添加命令,CPLD/FPGA檢測到命令以后,模擬ー個低脈沖按鈕的功能,使PWR_SW# bit置O ; 操作過程如下
熱移除設備操作1)在開機以后,在OS下。用戶按下ATTN(注意)按鈕,或BMC發(fā)出熱插拔命令給CPLD/FPGA,表示將熱移除 PCIE, PWR_SW# bit 置 O ;
2)引發(fā)中斷,通過SMBUS通知系統(tǒng)有熱插拔動作發(fā)生;
3)系統(tǒng)試圖斷開與該PCIE設備的信息傳遞,并將其從PCIE總線上卸除;
4)如果卸載成功,系統(tǒng)將PWREN置O,關(guān)閉PCIE設備的P3V3,P12V電壓;
5)PCIE設備的電壓P3V3,P12V關(guān)閉以后,P12V_PWRGD為低,關(guān)閉P3V3_STBY ;
6)Present Pin偵測PCIE插槽是否存在設備,偵測不存在PRSNT# bit置I ;
熱添加設備操作
1)把PCIE設備卡插入未上電的PCIE插槽;
2)偵測PCIE插槽是否存在設備,偵測存在,P3V3_STBY_EN置高開啟P3V3_STBY;
3)進入OS以后,用戶按下ATTN(注意)按鈕,或BMC發(fā)出熱插拔命令給CPLD/FPGA,表示發(fā)生熱添加事件,PWR_SW# bit置O ;
4)通過SMBUS,通知系統(tǒng)PCIEHOST有熱插拔動作發(fā)生;
5)PffR EN信號置高,給PCIE設備供電P12V、P3V3 ;
6)重新列舉PCI總線器件,發(fā)現(xiàn)新設備時,給相應驅(qū)動器加載,然后初始化該設備并準備處理相應I/o設備。本發(fā)明的有益效果是PCIE熱插拔,可以有效的避免因更換、添加系統(tǒng)硬件而需關(guān)機計算機系統(tǒng)的情況,對于提高系統(tǒng)的可靠性、可用性、實用性以及可擴展性有著重要的意義。針對技術(shù)背景中提到的缺陷,把計算機系統(tǒng)的時序控制和PCIE設備熱插拔控制整合到一起,用可編程邏輯器件CPLD/FPGA實現(xiàn)PCA9555的功能。這樣,就不用使用PCA9555芯片,減少器件的使用,降低系統(tǒng)成本,降低功耗,節(jié)省板卡空間,使得計算機系統(tǒng)更加低功耗,可靠、穩(wěn)定、可擴展性提高。本發(fā)明的目的是按以下方式實現(xiàn)的,增加對PCIE設備P3V3_STBY的控制,使PCIE可在完全不帶電的情況下熱插拔。
采用BMC (基板管理控制器)向CPLD/FPGA發(fā)送命令去實現(xiàn)熱插拔,可實現(xiàn)遠程控制PCIE的熱插拔,操作方便、快捷,安全。I、用可編程邏輯器件CPLD/FPGA去實現(xiàn)PCIE設備熱插拔功能。減少系統(tǒng)中PCA9555或PCA9554芯片的使用(以下所有的PCA9555代指PCA9555或PCA9554)。減少硬件成本,減少硬件系統(tǒng)所占板卡空間,降低系統(tǒng)功耗。還可以通過修改代碼,改變、添加熱插拔的相關(guān)功能,能對系統(tǒng)不斷改進,具有可塑性、可擴展性;
2、傳統(tǒng)平臺中,PCIE設備熱插拔吋,P12V、P3V3斷電,而P3V3_STBY電依然存在。熱插拔是在帶電的情況下進行的,有燒壞PCIE設備的風險。針對該問題,對系統(tǒng)進行改進,實現(xiàn)在完全不帶電情況下熱插拔PCIE設備;
3、PCIE的熱插拔操作,可通過兩種方式實現(xiàn)。一是在計算機機體上按按鈕去通知系統(tǒng),需要熱插拔PCIE設備。ニ是通過BMC (基板管理控制器)向CPLD/FPGA發(fā)送命令去實現(xiàn)熱插拔,采用這種方法,可實現(xiàn)PCIE熱插拔的遠程操作。
圖I是系統(tǒng)結(jié)構(gòu)如 圖2是功能框 圖3是寫操作流程 圖4是讀操作流程圖。
具體實施例方式參照說明書附圖對本發(fā)明的方法作以下詳細地說明
(1)硬件系統(tǒng)由PCIE HOST、CPLD/FPGA、PCIE HOT-PLUG CONTROLLER、PCIE 插槽按照圖2搭建系統(tǒng)硬件平臺;
(2)模塊介紹
PCA9555 :根據(jù)PCA9555功能。在CPLD/FPGA內(nèi)部模擬實現(xiàn)SMBUS轉(zhuǎn)GPIO的功能。功能框圖如圖2所示
PCIE HOST下面掛接多個PCA9555,通過地址A2、Al、AO區(qū)分不同的PCA9555。PCIEHOST與PCA9555通過SMBUS相互通信。IIC/SMBUS CONTROL模塊在寫操作時,負責從SMBUS上讀取8bit的串行數(shù)據(jù),傳送給INPUT/OUTPUT PORT。在讀操作時,負責把INPUT/OUTPUTPORT的信息轉(zhuǎn)換成8bit的串行數(shù)據(jù),通過SMBUS傳送給PCIE HOST。INPUT/OUTPUT PORT中8 byte的register有著各自不同的功能,描述如下表
權(quán)利要求
1.一種通過CPLD或FPGA實現(xiàn)PCIE設備熱插拔的方法,其特征在于硬件系統(tǒng)包括PCIE HOST、CPLD/FPGA、PCIE HOT-PLUG CONTROLLER、PCIE 插槽共同搭建系統(tǒng)硬件平臺,其中 PCIE HOST下面掛接多個PCA9555功能模塊,通過PCA9555功能模塊,在CPLD/FPGA內(nèi)部模擬實現(xiàn)SMBUS轉(zhuǎn)GPIO的功能;通過地址A2、A1、A0區(qū)分不同的PCA9555 ;PCIE HOST與PCA9555通過SMBUS相互通信; IIC/SMBUS CONTROL模塊在寫操作時,負責從SMBUS上讀取8bit的串行數(shù)據(jù),傳送給INPUT/OUTPUT PORT,在讀操作時,負責把INPUT/OUTPUT PORT的信息轉(zhuǎn)換成8bit的串行數(shù)據(jù),通過 SMBUS 傳送給 PCIE HOST, INPUT/OUTPUT PORT 中 8 byte 的 register 有著各自不同的功能,P3V3_STBY_EN MODE:對PCIE設備的P3V3_STBY電進行控制,完成在不插卡及在PCIE設備的P12V、P3V3掉電情況下,去掉P3V3_STBY電,實現(xiàn)不帶電熱插拔,而在P12V、P3V3上電時,P3V3_STBY正常供電,實現(xiàn)PCIE設備正常工作; BMC_C0NTR0L:BMC向CPLD/FPGA發(fā)送熱移除或熱添加命令,CPLD/FPGA檢測到命令以后,模擬一個低脈沖按鈕的功能,使PWR_SW# bit置O ; 操作過程如下 熱移除設備操作 1)在開機以后,在OS下。、 2.用戶按下ATTN(注意)按鈕,或BMC發(fā)出熱插拔命令給CPLD/FPGA,表示將熱移除PCIE, PWR_SW# bit 置 O ; 、 2)引發(fā)中斷,通過SMBUS通知系統(tǒng)有熱插拔動作發(fā)生; 、 3)系統(tǒng)試圖斷開與該PCIE設備的信息傳遞,并將其從PCIE總線上卸除; 、4)如果卸載成功,系統(tǒng)將PWREN置0,關(guān)閉PCIE設備的P3V3,P12V電壓;、 5)PCIE設備的電壓P3V3,P12V關(guān)閉以后,P12V_PWRGD為低,關(guān)閉P3V3_STBY ;、 、 6)Present Pin偵測PCIE插槽是否存在設備,偵測不存在PRSNT# bit置I ; 熱添加設備操作、 1)把PCIE設備卡插入未上電的PCIE插槽; 、 2)偵測PCIE插槽是否存在設備,偵測存在,P3V3_STBY_EN置高開啟P3V3_STBY; 、3)進入OS以后,用戶按下ATTN(注意)按鈕,或BMC發(fā)出熱插拔命令給CPLD/FPGA,表示發(fā)生熱添加事件,PWR_SW# bit置O ; 、4)通過SMBUS,通知系統(tǒng)PCIEHOST有熱插拔動作發(fā)生; 5)PffR EN信號置高,給PCIE設備供電P12V、P3V3 ; 、、6)重新列舉PCI總線器件,發(fā)現(xiàn)新設備時,給相應驅(qū)動器加載,然后初始化該設備并準備處理相應I/o設備。
全文摘要
本發(fā)明提供一種通過CPLD或FPGA實現(xiàn)PCIE設備熱插拔的方法,硬件系統(tǒng)包括PCIEHOST、CPLD/FPGA、PCIEHOT-PLUGCONTROLLER、PCIE插槽共同搭建系統(tǒng)硬件平臺,其中PCIEHOST下面掛接多個PCA9555功能模塊,通過PCA9555功能模塊,在CPLD/FPGA內(nèi)部模擬實現(xiàn)SMBUS轉(zhuǎn)GPIO的功能;通過地址A2、A1、A0區(qū)分不同的PCA9555;PCIEHOST與PCA9555通過SMBUS相互通信;把計算機系統(tǒng)的時序控制和PCIE設備熱插拔控制整合到一起,用可編程邏輯器件CPLD/FPGA實現(xiàn)PCA9555的功能。這樣,就不用使用PCA9555芯片,減少器件的使用,降低系統(tǒng)成本,降低功耗,節(jié)省板卡空間,使得計算機系統(tǒng)更加低功耗,可靠、穩(wěn)定、可擴展性提高。
文檔編號G06F13/40GK102662903SQ20121009472
公開日2012年9月12日 申請日期2012年3月31日 優(yōu)先權(quán)日2012年3月31日
發(fā)明者孫鵬 申請人:浪潮電子信息產(chǎn)業(yè)股份有限公司