具体实施方式
本发明主要为了实现系统主控板第一次上电启动的同时,各总线槽位能按顺序上电,缩短系统启动时间,减少对系统供电电源的冲击。下面将从图1至图10对本发明具体举例进行详细说明,其中图1、图2为本发明方法的总体流程图和解析示意图;图3、图4为本发明方法中对总线槽位按顺序上电的两种不同的实现方式实施例流程图;图5、图6为本方法具体应用于PCIE总线的实施例流程图;图7-9为本发明装置的三个具体实施例结构示意图;图10为本发明装置应用于PCIE总线的实施例示意图。
图1为本发明控制分布式系统上电顺序的方法实施例一流程图。如图1所示,本实施例包括:
逻辑芯片检测到系统上电时,将系统与各槽位隔离;
逻辑芯片向有效槽位发送电源使能有效信号,控制槽位按顺序上电。
图2为图1实施例的解析示意图,本实施例仅例举2个插槽与逻辑芯片及系统的连接关系,如果有多个插槽,则连接关系与图2类似。如图2所示,系统发送给各个槽位的电源使能(Power enable,简称PWREN)信号通过逻辑芯片与对应槽位插卡的电源使能信号连接。
下面对照图2对图1进行说明:逻辑芯片检测到系统上电时,隔离系统与所有槽位的PWREN,即使系统侧已经向各个槽位发送了电源使能有效信号,但是逻辑芯片不会把系统发送的电源使能信号直接发送给槽位(如果直接发送给槽位则造成系统各个总线插槽同时上电,带来较大的电流冲击),而是先隔离了系统发送给所有槽位的电源使能信号,向各个槽位先发送电源使能无效信号后再按顺序依次向有效槽位发送电源使能信号,控制有效槽位按顺序上电。
本实施例中,分布式系统主控板和逻辑芯片在上电后可以同时工作:系统侧检测到上电信号后,可以完成对主控板、各个总线的初始化;在分布式系统上电后到启动初始化完毕的这段时间,逻辑芯片可以将各个总线槽位实现顺序上电,从而节省了系统启动时间。如图2所示,槽位1的PWREN1通过一逻辑芯片与系统侧发送给槽位1的PWREN1间接连接,即使系统在上电后立即送出槽位1的电源使能有效信号,逻辑芯片不接通系统发送的电源使能有效信号和槽位1的电源使能信号,所以槽位1仍然无法获得电源使能有效信号。逻辑芯片在隔离系统与各个槽位的电源使能信号后,再按顺序依次接通系统侧发送给各个槽位的信号或者由逻辑芯片直接向各个存在插卡的槽位发送PWREN有效信号,实现按顺序上电。
本实施例中所述的方法可应用于任何分布式系统或者总线的启动过程,实现上电启动时按顺序上电。在分布式系统第一次上电启动时将各个总线槽位按顺序上电,缩短了系统的启动时间,并且避免了同时上电带来的电流冲击,不需外部配置EEPROM,成本低,实现简单,与现有技术相比,不会出现系统无法正常启动的情况,可靠性高。
本发明实施例中逻辑芯片检测到系统上电时,发送给所有槽位电源使能无效信号。系统侧各槽位电源使能信号的控制芯片在收到系统上电信号后,检测各个槽位是否有效,并向逻辑芯片上各有效槽位对应的接口同时发送电源使能有效信号。
本发明实施例中,逻辑芯片将系统与各个槽位隔离后,控制槽位按顺序上电可以有多种实现方式,如:逻辑芯片按各个槽位的位置依次接通系统侧发送给各个槽位的电源使能信号,将各接口接收到的电源使能有效信号发送至各个与接口对应的有效槽位,实现对有效槽位的上电控制。逻辑芯片按各个槽位的位置设置不同的上电延迟时间,在到达预设的上电延迟时间时接通系统发送给各个槽位的电源使能信号。例如,共有4个槽位0、1、2、3,槽位0、1、2、3的上电延迟时间分别为0、1、2、3秒。逻辑芯片在检测到系统上电后分别延迟0、1、2、3秒接通系统发送给4个槽位的电源使能信号。所有槽位的电源使能信号均接通后,系统发送给有效槽位的电源使能有效信号即可通过逻辑芯片发送给各个槽位,各个插卡实现按顺序上电。
图3和图4为顺序上电的另外两种实现方式,主要是通过检测槽位的有效性向槽位发送电源使能信号。
图3为本发明逻辑芯片向有效槽位发送电源使能有效信号,控制槽位按顺序上电实施例一流程图。本实施例逻辑芯片依次检测各个槽位的有效性,并按照预设的上电延迟时间间隔依次接通系统侧发送给有效槽位的电源使能有效信号,实现对有效槽位的上电控制。本实施例也是依次接通系统发送给各个槽位的电源使能信号,但是需要检测槽位的有效性,即存在插卡,并且设置上电延迟时间间隔,使接通的每相邻两个槽位的上电时间间隔均一致。如图3所示,本实施例中包括:判断当前槽位是否有效,是则到达上电延迟时间间隔时接通系统发送给当前槽位的电源使能信号,否则执行下一槽位的判断,直至所有槽位执行完毕。
本实施例中设置每个槽位的上电延迟时间间隔为同一值,比如:设置上电延迟时间间隔为1秒,共有5个槽位0、1、2、3、4,其中1、3、4槽位存在插卡,槽位有效,则本实施例的工作过程为:
1.逻辑芯片判断0槽位是否有效,检测到0槽位无效,不经过延时直接对1槽位进行判断,由于逻辑芯片在系统上电时,先发送给所有槽位电源使能无效信号,所以此时0槽位仍为电源使能无效信号;
2.检测到1槽位有效,延迟1秒时接通系统发送给1槽位的电源使能有效信号,执行2槽位的判断;
3.检测到2槽位无效,所以不延时直接对3槽位进行判断;
4.检测到3槽位有效,延迟1秒时接通系统发送给3槽位的电源使能有效信号,依此类推。
整个上电顺序为:系统上电后延迟1秒1槽位上电,再延迟1秒3槽位上电,再延迟1秒4槽位上电,即接通的每相邻两个槽位的上电时间间隔为同一值。本实施例中增加的判断步骤,可进一步缩短启动时间,对于无效槽位不进行延时,直接跳过,达到快速顺序上电的目的。但是,本实施例的实现方式需要逻辑芯片进一步检测各个槽位的有效性,例如:与各槽位的插卡存在信号PRSNT连接,通过当前槽位的插卡存在信号来检测该槽位的有效性。例如:插卡存在信号为逻辑低电平或者高电平来判断此槽位是否存在插卡,是否需要对此槽位上电。
图4为本发明逻辑芯片向有效槽位发送电源使能有效信号,控制槽位按顺序上电实施例二流程图。图4与图3类似,相同功能不再赘述,如图4所示,本实施例中检测到当前槽位有效时,在到达预设的上电延迟间隔时由逻辑芯片直接发送给当前槽位电源使能有效信号。
图4实施例在对各有效槽位顺序上电之前,将系统与各个槽位一直处于隔离状态:在系统上电时,将系统与各个槽位隔离;顺序上电时,由逻辑芯片检测槽位的有效,并按照预设的上电延迟时间间隔直接向各有效槽位依次发送电源使能有效信号,实现对有效槽位的上电控制,系统与各个槽位也处于隔离状态,在顺序上电完毕后,撤销对系统和各槽位的隔离,由系统对各槽位的电源使能信号进行控制。
图3与图4实施例的执行过程不同,但执行结果却是一致的:将存在插卡的有效槽位按顺序上电,并且每相邻两个有效槽位的上电时间间隔均一致。
逻辑芯片按图3和图4所示实施例或按各个槽位的位置依次接通系统侧发送给各个槽位的电源使能信号是逻辑芯片向有效槽位发送电源使能有效信号,控制槽位按顺序上电的3中不同实现方式,如:同样的分布式系统,具有4个槽位0、1、2、3,只有0、3的槽位上存在插卡。下面对比一下几种实现方式:
1.按各个槽位的位置依次接通系统侧发送给各个槽位的电源使能信号,执行结果为:按顺序上电需要3秒,系统侧在上电时向有效槽位同时发送电源使能有效信号,逻辑芯片在检测到系统上电时,同时发送给所有槽位电源使能无效信号,并立即接通系统侧发给槽位0的电源使能信号;上电后第1秒接通系统侧发给槽位1的电源使能信号;上电后第2秒接通系统侧发给槽位2的电源使能信号;上电后第3秒接通系统侧发给槽位3的电源使能信号;
2.检测各个槽位的有效性并按上电延迟时间间隔接通系统侧发送给有效槽位的电源使能有效信号,执行结果为:按顺序上电需要1秒,上电时接通系统侧发送给槽位0的电源使能信号;上电后第1秒接通系统侧发送给槽位3的电源使能信号;
3.检测各个槽位的有效性并按上电延迟时间间隔由逻辑芯片直接发送给有效槽位电源使能有效信号,执行结果为:按顺序上电需要1秒,上电时逻辑芯片直接发送给槽位0电源使能有效信号;上电后第1秒逻辑芯片直接发送给槽位3电源使能有效信号。
由上面的对比可看出,利用有效性顺序上电,启动时间更短,在分布式系统存在多个槽位的情况下,这种优化会更为明显,达到快速顺序上电的目的。
本发明实施例中逻辑芯片控制槽位按顺序上电,向有效槽位发送电源使能有效信号之后还包括:在系统完成上电后,逻辑芯片撤销对系统和各槽位的隔离,由系统对各槽位的电源使能信号进行控制。逻辑芯片在系统第一次上电启动时完成顺序上电功能,在顺序上电功能完成之后,可以结束逻辑芯片的顺序上电功能,切换到由系统直接对各个槽位进行控制。
图5为本发明控制分布式系统上电顺序的方法应用于PCIE总线的实施例流程图。图6为图5实施例的解析示意图。现有分布式系统中PCIE总线设置有一PCIE交换芯片,此交换芯片中对每个PCIE插卡的槽位设置一PCIE热插拔控制器,用来控制每个槽位的PCIE插卡插入或者拔出时的电源上下电控制等功能。上电复位后PCIE交换芯片将各个PCIE热插拔控制器的相关寄存器缺省设置为开,只要检测到PCIE槽位插卡存在,系统启动时就给PCIE插卡上电。由于PCIE规范中,规定一个槽位的插卡存在信号PRSNT、手动锁定传感器输入(Manually operated Retent ion Latch SensorInput,简称MRL)同时为逻辑低电平时,该槽位有效,PCIE交换芯片才能向此槽位发送PWREN有效信号,而本系统中只利用了各个槽位的PRSNT,所以可以通过逻辑芯片设置各个槽位MRL与PRSNT的值。如图6所示,本实施例中逻辑芯片与各个槽位的插卡存在信号PRSNT相连,根据PRSNT设置MRL信号并输入PCIE交换芯片中。逻辑芯片可以根据PRSNT的状态直接设置MRL的值,如:PRSNT==0,则MRL==0;PRSNT==1,则MRL==1,也可将各个槽位的PRSNT直接与PCIE交换芯片对应槽位的PRSNT和MRL连接,从而触发PCIE交换芯片对各个槽位有效性进行检测。
下面通过图6实施例对本方法实施例应用于PCIE总线实现顺序上电进行说明:图5实施例中,逻辑芯片检测到系统上电时,切断PCI E交换芯片送给所有槽位的PWREN信号,在接通前给所有槽位送出PWREN无效信号;然后逻辑芯片仍不接通PC IE交换芯片与各个槽位的PWREN,而是按顺序对有效槽位进行上电。按顺序上电的具体实现方式如图1-图4对顺序上电的说明,在此不再赘述。在各个槽位顺序上电完毕后,关闭逻辑芯片的顺序上电功能,各槽位的PWREN信号切换到由PCI E总线体系直接控制。
图5和图6只是对本方法应用于PCIE总线进行举例,分布式系统中只要涉及系统第一次上电启动的过程,均可以利用本发明实施例所述的方法,对系统上电过程进行优化,启动同时进行按顺序上电。各种总线和对应槽位也可以利用本发明实施例所述的方法对槽位进行按顺序上电,缩短启动时间,减少同时上电带来的电流冲击。
图7为本发明控制分布式系统上电顺序的装置实施例一示意图。如图7所示,本实施例装置包括:上电检测单元1,与逻辑控制单元2连接,用于检测到系统上电时,将上电信号发送到逻辑控制单元2;逻辑控制单元2,与上电检测单元1连接,用于收到上电信号时,隔离系统与所有槽位;向有效槽位发送有效电源信号,控制槽位按顺序上电。
图8为本发明控制分布式系统上电顺序的装置实施例二示意图。本实施例对逻辑控制单元进一步细化。如图8所示,本实施例逻辑控制单元2包括3个接通控制子单元和2个延时控制子单元:
上电检测单元1,与3个接通控制子单元20’、21’、22’连接,用于检测到系统上电时,将上电信号发送到3个接通控制子单元20’、21’、22’;
接通控制子单元20’,与上电检测单元1、系统侧发送给槽位0的电源使能信号(PWREN0)和槽位0的电源使能信号连接,接通控制子单元20’在0槽位,不需要延时,所以不设置延时控制子单元;
接通控制子单元21’,与上电检测单元1、延时控制子单元31’、系统侧发送给槽位1的电源使能信号(PWREN1)和槽位1的电源使能信号连接;
接通控制子单元22’,与上电检测单元1、延时控制子单元32’、系统侧发送给槽位2的电源使能信号(PWREN2)和槽位2的电源使能信号连接。
所述接通控制子单元用于接收到上电信号后,隔离系统侧在上电后同时发送给各有效槽位的电源使能有效信号,向延时控制子单元发送控制信号;接收到延时控制子单元的上电延迟时间到达信号后,依次将系统侧发送给有效槽位的电源使能有效信号与对应有效槽位接通;
延时控制子单元31’、32’,分别与对应的接通控制子单元21’、22’连接,用于接收逻辑控制单元的控制信号并在到达上电延迟时间时发送上电延迟时间到达信号。
图8实施例中各个槽位的发送控制子单元互相不连接,根据各个槽位的位置在延迟时间到达时按顺序给各个槽位上电,例如:槽位0,在系统上电后,不经过延迟即可接通系统送给0槽位的PWREN0信号;槽位1,在上电后延迟1个设定的时间间隔后接通系统送给1槽位的PWREN1信号,在接通系统发送给1槽位的PWREN1信号之前,1槽位为电源使能无效信号;槽位2,在上电后延迟2个设定的时间间隔后接通系统发送给2槽位的PWREN2信号,在接通系统发送给2槽位的PWREN2信号之前,2槽位为电源使能无效信号,依此类推,直至所有槽位插卡按顺序上电。在顺序上电结束后,系统发送给各个槽位的电源信号与对应槽位接通,由系统实现对各槽位的直接控制。本装置可以实现第一次上电启动时使槽位顺序上电,缩短了系统启动时间,不需外部配置EEPROM,成本低,实现简单,与现有技术相比,不会出现系统无法正常启动的情况,可靠性高。
图9为本发明控制分布式系统上电顺序的装置实施例三示意图。本实施例对逻辑控制单元进一步细化,本实施例中逻辑控制单元2包括:
3个检测子单元50、51、52,分别与各个槽位相连,用于检测各个槽位的有效性,并将检测结果发送给对应的发送控制子单元;
3个发送控制子单元20、21、22,与上电检测单1元和对应的检测子单元、延时控制子单元连接,用于接收到上电信号后,将系统与对应槽位隔离,向延时控制子单元发送控制信号;接收到延时控制子单元的上电延迟时间到达信号后,依次直接向有效槽位发送电源使能有效信号;
2个延时控制子单元31、32,每个延时控制子单元分别与发送控制子单元连接,用于接收控制信号并在到达上电延迟时间时发送上电延迟时间到达信号。
本实施例中还包括主控切换单元4,与逻辑控制单元2中的各个发送控制子单元20、21、22连接,用于在实现各槽位顺序上电后,结束顺序上电功能;切换到由系统直接对各槽位的PWREN信号进行控制。本实施例中进一步包括对各个槽位有效性进行检测的检测子单元。图9的实施例,具体的工作过程与图8有所不同,图8实施例中在检测到系统第一次上电时,先隔离系统发送给各槽位的PWREN信号,然后根据各个槽位的位置设定不同的上电延迟时间,在延迟时间到达时接通系统发送给各槽位的PWREN信号,完成按顺序上电。本实施例中,通过检测槽位的有效性发送电源使能有效信号。
图9实施例在检测到系统上电时,切断系统发送给各槽位的PWREN信号,在设定的上电延迟时间未到达期间,给各个槽位送出PWREN无效信号,负责管理各个槽位的PWREN。本实施例按顺序对有效槽位上电可以有两种工作方式:
1.系统上电,上电检测单元1发送上电信号给发送控制子单元20、21、22,发送控制子单元切断系统与各槽位连接的PWREN0、PWREN1、PWREN2。检测子单元50检测槽位0的有效性,将结果发送给发送控制子单元20。当槽位0有效时由发送控制子单元20直接送给0槽位电源使能有效信号;发送控制子单元21将系统与槽位1隔离后,检测子单元51检测槽位1的有效性,将结果发送给发送控制子单元21。当槽位1有效时延迟1个设定的时间间隔后由发送控制子单元21直接发送给1槽位电源使能有效信号;发送控制子单元22将系统与槽位2隔离后,检测子单元52检测槽位2的有效性,将结果发送给发送控制子单元22。当槽位2有效时延迟2个设定的时间间隔后由发送控制子单元22直接发送给2槽位电源使能有效信号,如果某个槽位的无效,则送给此槽位电源使能无效信号,依此类推,直至给所有有效槽位插卡按顺序上电。主控切换单元4在所有槽位顺序上电完毕后进行切换,撤销对系统和各槽位的隔离,由系统对各槽位的电源使能信号进行控制。
2.系统上电,上电检测单元1发送上电信号给逻辑控制单元2,发送控制子单元20、21、22分别将系统与对应槽位隔离。检测子单元50检测槽位0的有效性,将结果发送给发送控制子单元20。当槽位0有效时由发送控制子单元20接通系统发送给0槽位的电源使能有效信号;发送控制子单元21将系统与槽位1隔离后,检测子单元51检测槽位1的有效性,将结果发送给发送控制子单元21。当槽位1有效时延迟1个设定的时间间隔后由发送控制子单元21接通系统发送给1槽位的电源使能有效信号;发送控制子单元22将系统与槽位2隔离后,检测子单元52检测槽位2的有效性,将结果发送给发送控制子单元22。当槽位2有效时延迟2个设定的时间间隔后由发送控制子单元22接通系统发送给2槽位电源使能有效信号,如果某个槽位的无效,则送给此槽位电源使能无效信号,依此类推,直至给所有有效槽位插卡按顺序上电。主控切换单元4在所有槽位顺序上电完毕后进行切换,撤销对系统和各槽位的隔离,由系统对各槽位的电源使能信号进行控制。
图10为本发明控制分布式系统上电顺序的装置应用于PCIE总线的实施例示意图。本发明实施例装置应用于PCIE总线是图5及图6中将方法应用于PCIE总线的具体化,相同功能模块不再赘述。如图10所示,本实施例装置中可以将各槽位插卡存在信号(PRSNT)信号通过检测子单元直接与PCIE交换芯片对应槽位的PRSNT和MRL信号相连,便于PCIE交换芯片检测各个槽位的有效性。本实施例中检测子单元也可以不与系统侧PCIE交换芯片相连,将各槽位插卡存在信号(PRSNT)与PCIE交换芯片直接相连,如图6所示,方便系统侧PCIE交换芯片检测各个槽位的有效性。
本实施例中在槽位无效时可以跳过此槽位不对其进行上电。举例来说,槽位0存在插卡,为有效槽位,发送控制子单元20通过检测子单元50检测到0槽位有效,则向槽位0发送电源使能有效信号(可以由发送控制子单元20送出,也可以通过接通PCIE交换芯片发送给槽位0的PWREN0从而送出有效信号,详见图9说明部分)。对槽位0上电结束后,触发槽位1,如果槽位1没有插卡,则发送控制子单元21触发槽位2;发送控制子单元22通过检测子单元52检测到槽位2存在插卡,即槽位2有效,向延时控制子单元32发送控制信号,延时控制子单元32开始计时,当延迟时间到达时向发送控制子单元22发送延迟时间到达信号,进而送出PWREN2有效信号,启动下一槽位,依次类推,直至所有槽位执行完毕。
图10实施例中由于跳过了无效插卡槽位,不对其进行延时,可以进一步缩短顺序上电时间,延时控制子单元31、32设置的延迟时间为每两个接通槽位的上电时间间隔,每个延时控制子单元的设置值是一样的。如:设置的延迟时间间隔为1秒,如果0、2、3槽位存在插卡,则槽位0与2,2与3之间的上电间隔均为1秒。图8和图9与图10的接通方式不同,图8和图9中各个槽位的发送控制子单元不互相连接,只是通过延时控制子单元对各槽位进行操作,每个延时控制子单元的设置值是不同的,按照槽位的位置设置延迟值。如:槽位1的延时控制子单元为1秒,槽位2的计数单元为2秒,如果0、2槽位存在插卡,槽位1不存在插卡,则槽位0与2上电间隔为2秒,顺序上电时间比图10的实施例长,具体说明详见方法实施例中对于顺序上电几种实现方式的比较说明,不再赘述。
本发明实施例针对现有技术的上述不足,提供了一种控制分布式系统启动时顺序上电的实现方法和装置,对启动的过程进行改造,利用外部逻辑芯片控制各个槽位的上电顺序,在按顺序上电完成后,再切换到由系统对各个槽位的电源使能信号进行控制。本发明缩短了系统启动时间,不需外部配置EEPROM,成本低,实现简单并且可靠性高。由于各个插卡按顺序上电,减少了对系统供电电源的冲击。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。