一种通过cpld或fpga实现pcie设备热插拔的方法

文档序号:6367542阅读:1094来源:国知局
专利名称:一种通过cpld或fpga实现pcie设备热插拔的方法
技术领域
本发明涉及一种计算机应用技术领域,具体地说是ー种通过CPLD或FPGA实现PCIE设备热插拔的方法。
背景技术
PCIE设备的热插拔,对提高计算机系统的Reliability, Availability,Serviceability (RAS)有着重要作用。之前的热插拔系统由PCIE HOST、PCA9555、PCIEHot-Plug Controller 实现。每个PCIE HOST下面最多可以挂九个可以热插拔的PCIE设备,大型计算机系统中,有多个PCIE HOST。这样,有多个要热插拔的PCIE,就得用很多个PCA9555芯片。不仅所用器件多,成本大,功耗高;而且占很大的板卡空间。不利于系统的小型化,低成本化,低功耗化。传统平台中,PCIE热插拔的时候,P12V、P3V3断电,而P3V3_STBY电依然存在。热插拔是在带电的情况下进行的。有烧坏PCIE设备的风险。故需优化。传统平台中,是在计算机系统运行中,通过按按钮去通知系统需要热插拔PCIE设备。设计时,需要在计算机硬件板卡上添加热插拔按钮,増加成本。操作时,需要对计算机进行带电开箱操作。操作不便,不安全。

发明内容
本发明的目的是提供一种通过CPLD或FPGA实现PCIE设备热插拔的方法。硬件系统包括PCIE HOST、CPLD/FPGA、PCIE HOT-PLUG CONTROLLER、PCIE 插槽共同搭建系统硬件平台,其中
PCIE HOST下面挂接多个PCA9555功能模块,通过PCA9555功能模块,在CPLD/FPGA内部模拟实现SMBUS转GPIO的功能;通过地址A2、A1、A0区分不同的PCA9555 ;PCIE HOST与PCA9555通过SMBUS相互通信;
IIC/SMBUS CONTROL模块在写操作吋,负责从SMBUS上读取8bit的串行数据,传送给INPUT/OUTPUT PORT,在读操作时,负责把INPUT/OUTPUT PORT的信息转换成8bit的串行数据,通过 SMBUS 传送给 PCIE HOST, INPUT/OUTPUT PORT 中 8 byte 的 register 有着各自不同的功能,
P3V3_STBY_EN MODE:对PCIE设备的P3V3_STBY电进行控制,完成在不插卡及在PCIE设备的P12V、P3V3掉电情况下,去掉P3V3_STBY电,实现不带电热插拔,而在P12V、P3V3上电时,P3V3_STBY正常供电,实现PCIE设备正常工作;
BMC_C0NTR0L:BMC向CPLD/FPGA发送热移除或热添加命令,CPLD/FPGA检测到命令以后,模拟ー个低脉冲按钮的功能,使PWR_SW# bit置O ; 操作过程如下
热移除设备操作1)在开机以后,在OS下。用户按下ATTN(注意)按钮,或BMC发出热插拔命令给CPLD/FPGA,表示将热移除 PCIE, PWR_SW# bit 置 O ;
2)引发中断,通过SMBUS通知系统有热插拔动作发生;
3)系统试图断开与该PCIE设备的信息传递,并将其从PCIE总线上卸除;
4)如果卸载成功,系统将PWREN置O,关闭PCIE设备的P3V3,P12V电压;
5)PCIE设备的电压P3V3,P12V关闭以后,P12V_PWRGD为低,关闭P3V3_STBY ;
6)Present Pin侦测PCIE插槽是否存在设备,侦测不存在PRSNT# bit置I ;
热添加设备操作
1)把PCIE设备卡插入未上电的PCIE插槽;
2)侦测PCIE插槽是否存在设备,侦测存在,P3V3_STBY_EN置高开启P3V3_STBY;
3)进入OS以后,用户按下ATTN(注意)按钮,或BMC发出热插拔命令给CPLD/FPGA,表示发生热添加事件,PWR_SW# bit置O ;
4)通过SMBUS,通知系统PCIEHOST有热插拔动作发生;
5)PffR EN信号置高,给PCIE设备供电P12V、P3V3 ;
6)重新列举PCI总线器件,发现新设备时,给相应驱动器加载,然后初始化该设备并准备处理相应I/o设备。本发明的有益效果是PCIE热插拔,可以有效的避免因更换、添加系统硬件而需关机计算机系统的情況,对于提高系统的可靠性、可用性、实用性以及可扩展性有着重要的意义。针对技术背景中提到的缺陷,把计算机系统的时序控制和PCIE设备热插拔控制整合到一起,用可编程逻辑器件CPLD/FPGA实现PCA9555的功能。这样,就不用使用PCA9555芯片,減少器件的使用,降低系统成本,降低功耗,节省板卡空间,使得计算机系统更加低功耗,可靠、稳定、可扩展性提高。本发明的目的是按以下方式实现的,增加对PCIE设备P3V3_STBY的控制,使PCIE可在完全不带电的情况下热插拔。
采用BMC (基板管理控制器)向CPLD/FPGA发送命令去实现热插拔,可实现远程控制PCIE的热插拔,操作方便、快捷,安全。I、用可编程逻辑器件CPLD/FPGA去实现PCIE设备热插拔功能。減少系统中PCA9555或PCA9554芯片的使用(以下所有的PCA9555代指PCA9555或PCA9554)。减少硬件成本,減少硬件系统所占板卡空间,降低系统功耗。还可以通过修改代码,改变、添加热插拔的相关功能,能对系统不断改进,具有可塑性、可扩展性;
2、传统平台中,PCIE设备热插拔吋,P12V、P3V3断电,而P3V3_STBY电依然存在。热插拔是在带电的情况下进行的,有烧坏PCIE设备的风险。针对该问题,对系统进行改进,实现在完全不带电情况下热插拔PCIE设备;
3、PCIE的热插拔操作,可通过两种方式实现。一是在计算机机体上按按钮去通知系统,需要热插拔PCIE设备。ニ是通过BMC (基板管理控制器)向CPLD/FPGA发送命令去实现热插拔,采用这种方法,可实现PCIE热插拔的远程操作。


图I是系统结构如 图2是功能框 图3是写操作流程 图4是读操作流程图。
具体实施例方式參照说明书附图对本发明的方法作以下详细地说明
(1)硬件系统由PCIE HOST、CPLD/FPGA、PCIE HOT-PLUG CONTROLLER、PCIE 插槽按照图2搭建系统硬件平台;
(2)模块介绍
PCA9555 :根据PCA9555功能。在CPLD/FPGA内部模拟实现SMBUS转GPIO的功能。功能框图如图2所示
PCIE HOST下面挂接多个PCA9555,通过地址A2、Al、AO区分不同的PCA9555。PCIEHOST与PCA9555通过SMBUS相互通信。IIC/SMBUS CONTROL模块在写操作时,负责从SMBUS上读取8bit的串行数据,传送给INPUT/OUTPUT PORT。在读操作时,负责把INPUT/OUTPUTPORT的信息转换成8bit的串行数据,通过SMBUS传送给PCIE HOST。INPUT/OUTPUT PORT中8 byte的register有着各自不同的功能,描述如下表
权利要求
1.一种通过CPLD或FPGA实现PCIE设备热插拔的方法,其特征在于硬件系统包括PCIE HOST、CPLD/FPGA、PCIE HOT-PLUG CONTROLLER、PCIE 插槽共同搭建系统硬件平台,其中 PCIE HOST下面挂接多个PCA9555功能模块,通过PCA9555功能模块,在CPLD/FPGA内部模拟实现SMBUS转GPIO的功能;通过地址A2、A1、A0区分不同的PCA9555 ;PCIE HOST与PCA9555通过SMBUS相互通信; IIC/SMBUS CONTROL模块在写操作时,负责从SMBUS上读取8bit的串行数据,传送给INPUT/OUTPUT PORT,在读操作时,负责把INPUT/OUTPUT PORT的信息转换成8bit的串行数据,通过 SMBUS 传送给 PCIE HOST, INPUT/OUTPUT PORT 中 8 byte 的 register 有着各自不同的功能,P3V3_STBY_EN MODE:对PCIE设备的P3V3_STBY电进行控制,完成在不插卡及在PCIE设备的P12V、P3V3掉电情况下,去掉P3V3_STBY电,实现不带电热插拔,而在P12V、P3V3上电时,P3V3_STBY正常供电,实现PCIE设备正常工作; BMC_C0NTR0L:BMC向CPLD/FPGA发送热移除或热添加命令,CPLD/FPGA检测到命令以后,模拟一个低脉冲按钮的功能,使PWR_SW# bit置O ; 操作过程如下 热移除设备操作 1)在开机以后,在OS下。、 2.用户按下ATTN(注意)按钮,或BMC发出热插拔命令给CPLD/FPGA,表示将热移除PCIE, PWR_SW# bit 置 O ; 、 2)引发中断,通过SMBUS通知系统有热插拔动作发生; 、 3)系统试图断开与该PCIE设备的信息传递,并将其从PCIE总线上卸除; 、4)如果卸载成功,系统将PWREN置0,关闭PCIE设备的P3V3,P12V电压;、 5)PCIE设备的电压P3V3,P12V关闭以后,P12V_PWRGD为低,关闭P3V3_STBY ;、 、 6)Present Pin侦测PCIE插槽是否存在设备,侦测不存在PRSNT# bit置I ; 热添加设备操作、 1)把PCIE设备卡插入未上电的PCIE插槽; 、 2)侦测PCIE插槽是否存在设备,侦测存在,P3V3_STBY_EN置高开启P3V3_STBY; 、3)进入OS以后,用户按下ATTN(注意)按钮,或BMC发出热插拔命令给CPLD/FPGA,表示发生热添加事件,PWR_SW# bit置O ; 、4)通过SMBUS,通知系统PCIEHOST有热插拔动作发生; 5)PffR EN信号置高,给PCIE设备供电P12V、P3V3 ; 、、6)重新列举PCI总线器件,发现新设备时,给相应驱动器加载,然后初始化该设备并准备处理相应I/o设备。
全文摘要
本发明提供一种通过CPLD或FPGA实现PCIE设备热插拔的方法,硬件系统包括PCIEHOST、CPLD/FPGA、PCIEHOT-PLUGCONTROLLER、PCIE插槽共同搭建系统硬件平台,其中PCIEHOST下面挂接多个PCA9555功能模块,通过PCA9555功能模块,在CPLD/FPGA内部模拟实现SMBUS转GPIO的功能;通过地址A2、A1、A0区分不同的PCA9555;PCIEHOST与PCA9555通过SMBUS相互通信;把计算机系统的时序控制和PCIE设备热插拔控制整合到一起,用可编程逻辑器件CPLD/FPGA实现PCA9555的功能。这样,就不用使用PCA9555芯片,减少器件的使用,降低系统成本,降低功耗,节省板卡空间,使得计算机系统更加低功耗,可靠、稳定、可扩展性提高。
文档编号G06F13/40GK102662903SQ20121009472
公开日2012年9月12日 申请日期2012年3月31日 优先权日2012年3月31日
发明者孙鹏 申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1