一种热插拔的设备及方法与流程

文档序号:11582604阅读:301来源:国知局
一种热插拔的设备及方法与流程

本发明涉及通信领域,尤其涉及一种热插拔的设备及方法。



背景技术:

在信息通信技术领域,热插拔技术应用广泛,使用热插拔技术,可以在不中断服务器或者其他it设备业务情况下,进行故障的维修和更换,提高了设备的可维护性和系统的健壮性。现有技术中,请参阅图1所示的热插拔设备的系统10示意图,热插拔系统10包括主机11和热插拔设备12,热插拔设备12包括端口121、系统控制寄存器122、固件模块123、通知按钮126和电源指示器127,该端口121包括高速物理层接口124和控制器125,外部主机11通过端口121与该热插拔设备建立通信链路,高速物理层接口124接收主机11发送的指令,该高速物理层接口124和控制器125根据主机11传输的指令执行相关业务。下面结合图1说明现有技术中端口执行热拔操作的过程:

1、用户按下通知按钮126触发热拔出请求,系统控制寄存器122接收到该热拔出请求后,将该热拔出请求传输至固件模块123,固件模块123接收到该热拔出请求后向主机11发送一个中断请求,主机11根据该中断请求会再次将中断确认呈现给用户,在主机11得到用户的确认后,主机11会向固件模块发出中断响应。

2、固件模块123接收到中断响应后,检测到主机11不再发送数据,确定已经完成当前业务,禁用该端口的插槽。

3、电源指示器127指示用户可以进行热拔出操作。

上述步骤简要描述了端口121从主机11热拔出的操作步骤,后续若需要端口121重新插入主机而执行热插入的步骤,同样也是需要通知按钮126触发热插入请求,电源指示器127指示用户可以进行热插入操作后,方能执行热插入操作,具体的步骤与上述步骤类似,此处不再举例赘述。

从上述例子可以看出,用户在执行热插拔操作时,必须先行通知热插拔设备,使热插拔设备做好准备之后,通过指示器通知用户可以进行热插拔的 操作,而不允许在用户没有通知热插拔设备的情况下对热插拔设备进行插拔行为,用户需要等待指示才能进行操作,操作繁琐,且等待时间长。并且热插拔操作需要通知按钮和电源指示器等辅助性硬件的支持,上述辅助性硬件极大的浪费了板极资源。



技术实现要素:

本发明实施例提供了一种热插拔的设备及方法,能够减少板极冗余辅助硬件,减少板极硬件资源,随插随拔,无需等待时间,提高插拔效率。

本发明提供的热插拔的设备应用于热插拔系统,热插拔系统包括主机和热插拔设备,热插拔设备包括多个端口,热插拔设备可以通过多个端口与多个不同的主机建立通信链路,以实现热插拔设备中的资源共享。本发明实施例中的热插拔设备可以是任何其他能够支持热插拔功能的设备,该热插拔设备可以是一个固态硬盘(英文:solidstatedrives,缩写:ssd),也可以是一个加速卡。

本发明的第一方面提供了一种热插拔的设备,该设备包括:端口、固件模块和中断屏蔽模块,设备通过端口与主机连接;端口包括高速物理层接口,高速物理层接口包含多条引线lane,多条lane用于从主机接收模拟信号。

该设备上电完成后,固件模块查询控制器的链路速率寄存器中记录的当前链路速率值,当固件模块确定当前链路最高速率值到达预置门限时,表明热插拔设备与主机已建立的通信链路达到了稳定状态,然后,高速物理层接口开始侦测该高速物理层接口的模拟信号。高速物理层接口侦测多条lane中每条lane的模拟信号,并且当侦测到多条lane中的一条lane的模拟信号的振幅小于预设门限值时,高速物理层接口产生与lane对应的模拟信号丢失指示alos信号,高速物理层接口将alos信号传输至中断屏蔽模块,中断屏蔽模块产生与lane对应的alos中断信号,中断屏蔽模块将alos中断信号发送至固件模块。若固件模块从接收到第一条lane对应alos中断信号开始,在预置时间段内接收到每条lane对应的alos中断信号,则固件模块对端口进行复位。实际上alos中断信号用于指示热拔事件。

本实施例中,当固件模块确定接收到该端口对应的全部lane的alos中断信号时,固件模块确定该端口正在执行热拔事件,固件模块进行热拔事件 中断处理。实现了不需要利用通知按钮等辅助硬件而进行热拔事件检测,有效减少了板极上的硬件资源。

可选的,设备还包括系统控制寄存器,端口还包括控制器,高速物理层接口与控制器连接,控制器与系统控制寄存器连接,系统控制寄存器与固件模块连接。固件模块对端口进行复位包括:固件模块通过系统控制寄存器配置软复位信号,控制器和高速物理层接口根据软复位信号进行复位。

可选的,控制器和高速物理层接口复位后,为保证业务的残留数据不会影响后续的业务的正常进行,需要继续清除控制器的寄存器中残留的与业务相关的数据,固件模块在预置时间段内接收到每条lane对应的alos中断信号用于指示端口从主机热拔出。固件模块通过系统控制寄存器为端口配置清除标识,控制器根据清除标识清除端口从主机热拔出时所执行业务的残留数据。

可选的,端口还包括计数器,控制器根据清除标识,清除业务的残留数据,计数器用于记录在控制器执行清除操作时,业务的残留数据的剩余数量。当计数器的计数为零时,固件模块通过系统控制寄存器配置清除撤销标识,控制器根据清除撤销标识停止执行清除业务数据的操作。

本实施例中,固件模块通过系统控制寄存器为控制器配置清除标识,以使控制器清除业务的残留数据,且固件模块根据计数器可以确定该端口的业务的残留数据被彻底清除,以避免该端口重新建立链路后,可能会出现仍然返回无效的业务的残留数据,影响后续业务的正常进行。

可选的,当该端口执行完成热拔后,该热插拔设备可以会重新被插入到主机或另一个主机,与主机建立通信链路,该端口又涉及执行热插操作,固件模块是通过检测主机输入的硬件复位信号的电平跳变来实现对热插入的检测的,具体的,中断屏蔽模块接收主机输出的硬件复位信号,并将硬件复位信号发送到固件模块,固件模块检测硬件复位信号的电平。当固件模块检测到硬件复位信号具有电平跳变时,硬件复位信号具有电平跳变时指示了该端口正在执行热插入事件,则固件模块通过系统控制寄存器为控制器和高速物理层接口配置复位清除信号。控制器和高速物理层接口根据复位清除信号停止执行复位操作。热插拔设备和主机建立业务。

本发明实施例中,通过固件模块对主机输入的硬件复位信号的电平跳变的检测,指示出该端口正在执行热插入事件,热插拔设备和主机建立业务。实现不需要通知按钮等硬件实现热插入事件的检测,有效的减少了板极资源,减少了热插入的等待时间,提高工作效率。

本发明的第二方面提供了一种热插拔的方法,方法应用于第一方面提供的热插拔的设备,该方法包括:高速物理层接口侦测多条lane中每条lane的模拟信号,并且当侦测到多条lane中的一条lane的模拟信号的振幅小于预设门限值时,高速物理层接口产生与lane对应的模拟信号丢失指示alos信号。

高速物理层接口将alos信号传输至中断屏蔽模块,中断屏蔽模块产生与lane对应的alos中断信号,中断屏蔽模块将alos中断信号发送至固件模块。

若固件模块从接收到第一条lane对应alos中断信号开始,在预置时间段内接收到每条lane对应的alos中断信号,则固件模块对端口进行复位。

本实施例中,固件模块确定接收到该端口对应的全部lane的alos中断信号时,固件模块确定该端口正在执行热拔事件,固件模块进行热拔事件中断处理。实现了不需要利用通知按钮等硬件的辅助而进行热拔事件检测,有效减少了板极上的硬件资源。

可选的,固件模块对端口进行复位包括:固件模块通过系统控制寄存器配置软复位信号,控制器和高速物理层接口根据软复位信号进行复位。

可选的,固件模块在预置时间段内接收到每条lane对应的alos中断信号指示端口从主机热拔出。固件模块通过系统控制寄存器配置软复位信号,控制器和高速物理层接口根据软复位信号进行复位之后,方法还包括:

固件模块通过系统控制寄存器为端口配置清除标识,清除标识用于指示控制器清除端口从主机热拔出时所执行业务的残留数据。

可选的,方法还包括:控制器根据清除标识,清除业务的残留数据,计数器用于记录在控制器执行清除操作时,业务的残留数据的剩余数量。当计数器的计数为零时,固件模块通过系统控制寄存器配置清除撤销标识,清除撤销标识用于指示控制器停止执行清除业务数据的操作。

本实施例中,固件模块通过系统控制寄存器为控制器配置清除标识,以 使控制器清除业务的残留数据,且固件模块根据计数器可以确定该端口的业务的残留数据被彻底清除,以避免该端口重新建立链路后,可能会出现仍然返回无效的业务的残留数据,影响后续业务的正常进行。

可选的,方法还包括:中断屏蔽模块接收主机输出的硬件复位信号,并将硬件复位信号发送至固件模块。

固件模块接收主机输出的硬件复位信号并检测复位信号的电平。

当固件模块检测到硬件复位信号具有电平跳变时,则固件模块通过系统控制寄存器为控制器和高速物理层接口配置复位清除信号。

控制器和高速物理层接口根据复位清除信号停止执行复位操作。

设备和主机建立业务。

本发明实施例中,通过固件模块对主机输入的硬件复位信号的电平跳变的检测,指示出该端口正在执行热插入事件,热插拔设备和主机建立业务。实现不需要通知按钮等硬件实现热插入事件的检测,有效的减少了板极资源,减少了热插入的等待时间,提高工作效率。

附图说明

图1为现有技术中热插拔系统的结构示意图;

图2为本发明实施例中热插拔系统的结构示意图;

图3为本发明实施例中热插拔设备的结构示意图;

图4为本发明实施例中热拔检测示意图;

图5为本发明实施例中热插检测示意图;

图6为本发明实施例中热拔出的方法示意图;

图7为本发明实施例中热插入的方法示意图。

具体实施方式

本发明实施例提供了一种热插拔的设备及方法,用于减少了板极硬件资源,提高插拔效率。

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获 得的所有其他实施例,都应当属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

目前,总线和接口标准(英文:peripheralcomponentinterfaceexpress,缩写:pcie)设备应用广泛,pcie设备支持热插拔功能,本发明实施例中的热插拔设备以pcie设备为例进行说明,实际上,本发明实施例中的热插拔设备也可以是任何其他能够支持热插拔功能的设备。该pcie设备可以是一个固态硬盘(英文:solidstatedrives,缩写:ssd),也可以是一个加速卡。

图2为本发明实施例中热插拔系统的结构示意图。

如图2所示,本发明实施例的热插拔系统包括主机21和pcie设备22,pcie设备22包括多个端口,pcie设备22可以通过多个端口与多个不同的主机建立通信链路,以实现pcie设备22中的资源共享。其中,pcie设备22包括端口221、固件模块223(firmware)、系统控制寄存器222和中断屏蔽模块(mask)226,该端口221包括高速物理层接口(英文:peripheralcomponentinterfaceexpressphysicallayer,缩写:pciephy)224和控制器225。

下面对本发明实施例中涉及到的各个部件的功能进行概括性说明。

其中,在主机21和pcie设备22正常连接,并有业务交互时,高速物理层接口224用于接收外部主机21传输的业务指令,高速物理层接口224和控制器225根据该业务指令执行相关业务。

本发明实施例中pcie设备22在与主机21业务交互的过程中,为了及时获知pcie设备22从主机21中热拔出,会由高速物理层接口224周期性的检测高速物理层接口224所在端口221的模拟信号。

高速物理层接口224还用于根据检测的该模拟信号的振幅,判断模拟信 号是否丢失,若确定模拟信号丢失,会产生模拟信号丢失指示(英文,analogsignalloss,缩写:alos)信号,并将该alos信号发送给中断屏蔽模块226。

中断屏蔽模块226用于根据高速物理层接口224传输来的alos信号产生alos中断信号。

固件模块223根据接收的alos中断信号进行中断处理。

固件模块223用于根据alos中断信号对所述端口进行复位。实际上alos中断信号用于指示热拔事件。

另外,固件模块223还用于当检测主机21输入的硬件复位信号的电平跳变时,通过所述系统控制寄存器配置复位清除信号,以使该端口停止执行复位操作。硬件复位信号的电平跳变用于指示热插事件。

具体固件模块223对热插事件和热拔事件的判定过程可结合图3至图5过程的描述进行理解。

系统控制寄存器222用于配置软复位信号用于端口221对应的高速物理层接口224和控制器225的复位;还用于配置清除标识用于指示控制器225清除端口221的业务的残留数据。

下面结合图3和图4对本发明实施例的热拔过程进行具体描述,并结合图5对本发明实施例的热插过程进行具体描述。

一、热拔事件检测

请参阅图3,本申请实施例中pcie设备的一个实施例包括:

pcie设备包括至少一个端口,图3中是以两个端口为例,但实际中不限于图3所示的两个端口。本发明实施例中,每个端口都包括各自的控制器和高速物理层接口。下面以其中的一个端口221的热拔功能的实现为例进行说明。

pcie设备22包括:端口221、固件模块223、系统控制寄存器222和中断屏蔽模块(mask)226,该端口221包括高速物理层接口224和控制器225。控制器225还包括用于记录链路速率的速率协商寄存器(图3中未示)。

当pcie设备22上电完成后,固件模块223查询控制器225的链路速率寄存器中记录的当前链路速率值,固件模块223判断当前链路速率值是否达到预置门限,当固件模块223确定当前链路最高速率值到达预置门限时,固 件模块223判定该pcie设备22与主机21已建立的通信链路达到了稳定状态,高速物理层接口224开始侦测该高速物理层接口224的模拟信号。实际上,高速物理层接口224侦测每条引线lane的模拟信号。该模拟信号可以是差分信号,差分信号就是传输在两根数据线上信号,这两个信号的振幅相等,相位相反,例如,rx+信号,rx-信号,差分信号为这两个信号的差值。其中,预置门限在pcie1.0规范模式下,可以是2.5gbps,在pcie2.0规范模式下,可以是5gbps,在pcie3.0规范模式下,可以是8gbps。当然,上述数值只是举例说明,并不应理解为是对预置门限的限定。本发明实施例中,

高速物理层接口224包含多条引线lane,图3中所示的高速物理层接口224以包含两条引线lane进行举例说明,下面结合图4以其中一条lane的差分信号检测过程为例进行说明,实际上每条lane的差分信号检测过程都是一致的。该lane包括一对差分收发数据线,两根差分收发数据线产生差分信号,当通信链路达到了稳定状态时,高速物理层接口224侦测该lane上的差分信号的振幅是否大于预设值,当高速物理层接口224侦测到该lane上的差分信号的振幅大于预设值时,则确定链路处于正常连接状态,当高速物理层接口224侦测到该lane上的差分信号的振幅小于或等于预设值时,则确定链路差分信号丢失。

当高速物理层接口224确定该lane的差分信号丢失时,高速物理层接口224产生与该lane对应的alos信号,并将该lane对应的alos信号从低电平置为高电平,高电平的alos信号传输到中断屏蔽模块226,中断屏蔽模块226检测到该高电平alos信号后生成alos中断信号,固件模块223接收该alos中断信号。

端口221对应两条lane,每条lane产生一个alos信号,中断屏蔽模块226接收到一个alos信号产生一个alos中断信号,固件模块223对接收的alos中断信号进行计数,若所述固件模块223从接收到第一条lane对应alos中断信号开始,在预置时间段内接收到所述每条lane对应的alos中断信号时,所述则所述固件模块对所述端口进行复位。可以理解的是,当固件模块223接收到两个alos中断信号时,则固件模块223判定了当前该端口221执行了与外部主机21的热拔事件,所述固件模块223对所述端口进行 复位。

端口221从主机21中拔出时,pcie设备22与主机21可能正在进行第一业务交互。端口221突然从主机21中拔出时,端口221对应的控制器225和高速物理层接口224还会有与第一业务相关的命令没有完全执行完,而控制器225和高速物理层接口224在主机21与端口221的链路已经断开情况下,仍然会继续执行这些命令,并产生第一业务的残留数据。因端口221已经从主机21拔出,所以产生的这些第一业务的残留数据不能再继续返回主机21,只能残留在控制器225的寄存器中,这些第一业务的残留数据在端口221与主机21重新建立通信链路后会对第二业务造成影响,第二业务为端口221与主机21重新建立通信链路后交互的业务。

为了在该端口221与主机21重新建立通信链路后可以正常进行第二业务,固件模块223会通过系统控制寄存器222对控制器225和高速物理层接口224进行残留命令清除的复位操作,具体复位方式可以是固件模块223通过系统控制寄存器222配置软复位信号,控制器225和高速物理层接口224根据该软复位信号清除与第一业务相关的命令。

本实施例中,高速物理层接口224通过侦测到一条lane对应的差分信号的丢失,则产生与该lane对应的alos信号,高速物理层接口224将该alos信号上拉到高电平后将alos信号传输到中断屏蔽模块226,中断屏蔽模块226接收到高电平的alos信号,生成alos中断信号,并将alos中断信号发送到固件模块223,当固件模块223确定接收到该端口221对应的全部lane的alos中断信号时,固件模块223确定该端口221正在执行热拔事件,固件模块223进行热拔事件中断处理。实现了不需要利用通知按钮等硬件的辅助而进行热拔事件检测,有效减少了板极上的硬件资源。

进一步的,控制器225和高速物理层接口224复位后,为保证第一业务的残留数据不会影响第二业务,需要继续清除控制器225的寄存器中残留的与第一业务相关的数据,具体清除方式可以是固件模块223通过系统控制寄存器222配置清除标识(clearflag),控制器225的寄存器根据清除标识将自身的清除标识位置为“1”,可以理解的是,例如,寄存器的“03”标识位表示清除标识位,寄存器将“03”清除标识位置为“1”时,控制器225丢弃 寄存器中第一业务的残留数据,避免当主机与该端口221重新建立通信链路后,第一业务的残留数据作为第二业务的数据返回到主机21中,影响第二业务。

可选的,控制器225还包括计数器,该计数器用于记录主机传输的命令的剩余数量,每个命令对应一定的残留数据,控制器225在执行清除操作时,固件模块223可以通过该计数器确定第一业务的残留数据剩余的数量,进而固件模块223可以判定该端口221的第一业务的残留数据是否被彻底清除。可以理解的是,第一业务可能包括多个命令,每个命令又对应一定大小的处理数据,若该端口221接收到主机21传输的一个命令,该计数器就会加1,当pcie设备22处理完成一个命令并将该命令对应的处理数据返回主机21后,该计数器就减1,因为该端口221从主机21热拔出,所以与第一业务对应的相关命令的处理数据不能返回到主机,则由控制器225根据清除标识清除残留在端口221的处理数据,控制器225清除一个命令对应的数据后,该计数器也会对应减1,当固件模块223检测到计数器记录的数量为零时,固件模块223判定第一业务的残留数据被彻底清除。

当该端口221的第一业务的残留数据被完全清除后,固件模块223通过系统控制寄存器222为控制器225配置清除撤销标识,控制器225的寄存器根据该清除撤销标识将“清除标识位”置为“0”,控制器225确定清除标识位为“0”时,则不再执行清除业务数据的操作。可以的理解的是,若当该端口221重新和主机21建立通信链路后,该端口221执行第二业务,那么,控制器225也同样还会根据清除标识清除第二业务的数据,这样就会导致对后续的第二业务的正常进行造成影响,因此,当该端口221的第一业务的残留数据被完全清除后,控制器225就不需要再执行清除业务数据的操作。

本实施例中,固件模块223通过系统控制寄存器222配置控制器225中寄存器的标识位,以使控制器225清除寄存器中存储的第一业务的残留数据,且固件模块223根据计数器可以确定该端口221的第一业务的残留数据被彻底清除,以避免该端口221重新建立链路后,可能会出现仍然返回无效的第一业务的残留数据,影响第二业务的正常进行。

二、热插事件检测

请参阅图5所示的热插检测示意图。

在上述实施例的基础上,当该端口221执行完成热拔后,该pcie设备22可以会重新被插入到主机21或另一个主机,与主机建立通信链路,该端口221又涉及执行热插操作,下面结合图5对如何检测热插操作进行具体描述。

本发明实施例中,固件模块223是通过检测主机21输入的硬件复位信号的“高-低-高”的电平跳变来实现的,下面对“高-低-高”中的第一个高电平的得来做简要说明。

每一次端口221插入主机后,主机会输入一个低电平的硬件复位信号,低电平的硬件复位信号输入到中断屏蔽模块226,固件模块223接收中断屏蔽模块226发送的低电平的复位信号后,进行中断处理,固件模块223使该端口对应的硬件进行初始化,如控制器225和高速物理层接口224等,主机可以通过预置的时长来判断硬件复位完成,当硬件复位完成后,主机将该硬件复位信号拉高为高电平,固件模块223记录该硬件复位信号的电平状态为高电平。

下面对“高-低-高”中的第二个低电平的得来做简要说明。

当端口221重新与主机建立通信链路后,主机输入一个低电平的硬件复位信号,低电平的硬件复位信号输入到中断屏蔽模块226,固件模块223检测到低电平的复位信号,并记录硬件复位信号的电平状态为低电平。

下面对“高-低-高”中的第三个高电平的得来做简要说明。

固件模块223检测到低电平的硬件复位信号后,使该端口221对应的硬件进行初始化,当硬件复位完成后,主机会将该硬件复位信号上拉到高电平,固件模块223记录硬件复位信号的电平为高电平。

当固件模块223检测到“高-低-高”的信号的电平跳变,则判定该端口221正在执行热插事件。

当固件模块判定该端口221执行热插事件后,固件模块还需要通过系统控制寄存器222配置复位解除信号,复位解除信号用于使控制器225和高速物理层接口224停止执行复位操作。可以理解的是,由于在本次热插入前执行了热拔操作,为了避免高速物理层接口224和控制器225执行与第一业务相关的残留命令,影响后续第二业务的进行,固件模块223通过系统控制寄 存器222对控制器225和高速物理层接口224进行残留命令清除的复位操作,但是当该端口221当前执行热插入后,该复位信号还会继续触发控制器225和高速物理层接口224执行复位操作,这样当端口221与主机21进行第二业务交互时,控制器225和高速物理层接口224同样会继续清除第二业务的相关指令的操作,因此,为了能够使第二业务正常进行,就需要控制器225和高速物理层接口224停止执行复位操作。

上面对一种热插拔的设备进行了描述,下面对一种热插拔的方法进行描述,方法应用于上述实施例对应的热插拔的设备。

一、热拔事件检测

请结合图3所示的pcie设备的结合示意图,在方法实施例中不再赘述pcie设备的结构,pcie设备包括至少一个端口,图3中是以两个端口为例,但实际中不限于图3所示的两个端口。本发明实施例中,每个端口都包括各自的控制器和高速物理层接口。下面以其中的一个端口221的热拔的方法为例进行说明。

本申请实施例中一种方法的一个实施例包括:

请参阅图6所示的热插拔的方法的示意图。

步骤601、固件模块223查询控制器225的链路速率寄存器中记录的当前链路速率值,固件模块根据链路速率值223确定pcie设备22与主机21已建立的通信链路达到了稳定状态。

当pcie设备22上电完成后,固件模块223查询控制器225的链路速率寄存器中记录的当前链路速率值,固件模块223判断当前链路速率值是否达到预置门限,当固件模块223确定当前链路最高速率值到达预置门限时,固件模块223判定该pcie设备22与主机21已建立的通信链路达到了稳定状态。

步骤602、高速物理层接口224侦测每条lane上的差分信号的振幅是否大于预设值,当高速物理层接口224侦测到一条lane上的差分信号的振幅小于或等于预设值时,则确定链路差分信号丢失。

图3中所示的高速物理层接口224包含两个引线lane,下面结合图4以其中一个lane的差分信号检测过程为例进行说明,实际上每个lane的差分信号检测过程都是一致的。该lane包括一对差分收发数据线,两根差分收发数 据线产生差分信号,当通信链路达到了稳定状态时,高速物理层接口224检测该lane上的差分信号的振幅是否大于预设值,当高速物理层接口224检测到该lane上的差分信号的振幅大于预设值时,则确定链路处于正常连接状态,当高速物理层接口224检测到该lane上的差分信号的振幅小于或等于预设值时,则确定链路差分信号丢失。

步骤603、当高速物理层接口224确定该lane的差分信号丢失时,高速物理层接口224产生与该lane对应的alos信号。

步骤604、高速物理层接口224将该lane对应的alos信号从低电平置为高电平,并将高电平的alos信号传输到中断屏蔽模块226。

步骤605、中断屏蔽模块226检测到该高电平alos信号后生成alos中断信号,并将该alos中断信号发送到固件模块223。

步骤606、当固件模块223接收到全部lane对应的alos中断信号时,固件模块223对所述端口221进行复位。

可以理解的是若所述固件模块223从接收到第一条lane对应alos中断信号开始,在预置时间段内接收到所述每条lane对应的alos中断信号时,所述则所述固件模块对所述端口进行复位。可以理解的是,当固件模块223接收到两个alos中断信号时,则固件模块223判定了当前该端口221执行了与外部主机21的热拔事件,

固件模块223通过系统控制寄存器222配置软复位信号,控制器225和高速物理层接口224根据该软复位信号进行复位。

端口221从主机21中拔出时,pcie设备22与主机21可能正在进行第一业务交互。端口221突然从主机21中拔出时,端口221对应的控制器225和高速物理层接口224还会有与第一业务相关的命令没有完全执行完,而控制器225和高速物理层接口224在主机21与端口221的链路已经断开情况下,仍然会继续执行这些命令,并产生第一业务的残留数据。因端口221已经从主机21拔出,所以产生的这些第一业务的残留数据不能再继续返回主机21,只能残留在控制器225的寄存器中,这些第一业务的残留数据在端口221与主机21重新建立通信链路后会对第二业务造成影响,第二业务为端口221与主机21重新建立通信链路后交互的业务。

本实施例中,固件模块223确定接收到该端口221对应的全部lane的alos中断信号时,固件模块223确定该端口221正在执行热拔事件,固件模块223进行热拔事件中断处理。实现了不需要利用通知按钮等硬件的辅助而进行热拔事件检测,有效减少了板极上的硬件资源。

为了在该端口221与主机21重新建立通信链路后可以正常进行第二业务,固件模块223会通过系统控制寄存器222对控制器225和高速物理层接口224进行残留命令清除的复位操作,具体复位方式可以是固件模块223通过系统控制寄存器222配置软复位信号,控制器225和高速物理层接口224根据该软复位信号清除与第一业务相关的命令。

进一步的,步骤607、固件模块通过系统控制寄存器为端口配置清除标识,清除标识用于指示控制器清除热拔事件时所执行业务的残留数据。

控制器225和高速物理层接口224复位后,为保证第一业务的残留数据不会影响第二业务,需要继续清除控制器225的寄存器中残留的与第一业务相关的数据,具体清除方式可以是固件模块223通过系统控制寄存器222配置清除标识(clearflag),控制器225的寄存器根据清除标识将自身的清除标识位置为“1”,可以理解的是,例如,寄存器的“03”标识位表示清除标识位,寄存器将“03”清除标识位置为“1”时,控制器225丢弃寄存器中第一业务的残留数据,避免当主机与该端口221重新建立通信链路后,第一业务的残留数据作为第二业务的数据返回到主机21中,影响第二业务。

可选的,步骤608、当计数器的计数为零时,固件模块通过系统控制寄存器配置清除撤销标识,清除撤销标识用于指示控制器停止执行清除业务数据的操作。

该计数器用于记录主机传输的命令的剩余数量,每个命令对应一定的残留数据,控制器225在执行清除操作时,固件模块223可以通过该计数器确定第一业务的残留数据剩余的数量,进而固件模块223可以判定该端口221的第一业务的残留数据是否被彻底清除。

当该端口221的第一业务的残留数据被完全清除后,固件模块223通过系统控制寄存器222为控制器225配置清除撤销标识,控制器225的寄存器根据该清除撤销标识将“清除标识位”置为“0”,控制器225确定清除标识 位为“0”时,则不再执行清除业务数据的操作。可以的理解的是,若当该端口221重新和主机21建立通信链路后,该端口221执行第二业务,那么,控制器225也同样还会根据清除标识清除第二业务的数据,这样就会导致对后续的第二业务的正常进行造成影响,因此,当该端口221的第一业务的残留数据被完全清除后,控制器225就不需要再执行清除业务数据的操作。

本实施例中,固件模块223通过系统控制寄存器222配置控制器225中寄存器的标识位,以使控制器225清除寄存器中存储的第一业务的残留数据,且固件模块223根据计数器可以确定该端口221的第一业务的残留数据被彻底清除,以避免该端口221重新建立链路后,可能会出现仍然返回无效的第一业务的残留数据,影响第二业务的正常进行。

二、热插事件检测

在上述实施例的基础上,当该端口221执行完成热拔后,该pcie设备22可以会重新被插入到主机21或另一个主机,与主机建立通信链路,该端口221又涉及执行热插操作,下面结合图5对如何检测热插入的方法进行具体描述。

请参阅图7所示的热插入的方法示意图。本发明实施例提供的一种热插入的方法包括:

步骤701、中断屏蔽模块接收主机输出的硬件复位信号,并将该硬件复位信号发送至固件模块,固件模块检测复位信号的电平。

本发明实施例中,固件模块223是通过检测主机21输入的硬件复位信号的“高-低-高”的电平跳变来实现的,本发明实施例中,固件模块223是通过检测主机21输入的硬件复位信号的“高-低-高”的电平跳变来实现的,下面对“高-低-高”中的第一个高电平的得来做简要说明。

每一次端口221插入主机后,主机会输入一个低电平的硬件复位信号,低电平的硬件复位信号输入到中断屏蔽模块226,固件模块223接收中断屏蔽模块226发送的低电平的复位信号后,进行中断处理,固件模块223使该端口对应的硬件进行初始化,如控制器225和高速物理层接口224等,主机可以通过预置的时长来判断硬件复位完成,当硬件复位完成后,主机将该硬件复位信号拉高为高电平,固件模块223记录该硬件复位信号的电平状态为高电平。

下面对“高-低-高”中的第二个低电平的得来做简要说明。

当端口221重新与主机建立通信链路后,主机输入一个低电平的硬件复位信号,低电平的硬件复位信号输入到中断屏蔽模块226,固件模块223检测到低电平的复位信号,并记录硬件复位信号的电平状态为低电平。

下面对“高-低-高”中的第三个高电平的得来做简要说明。

固件模块223检测到低电平的硬件复位信号后,使该端口221对应的硬件进行初始化,当硬件复位完成后,主机会将该硬件复位信号上拉到高电平,固件模块223记录硬件复位信号的电平为高电平。

步骤702、当固件模块检测到硬件复位信号具有电平跳变时,固件模块通过系统控制寄存器为所述控制器和高速物理层接口配置复位清除信号。

可以理解的是,硬件复位信号具有电平跳变用于指示端口执行与主机的热插事件。

当固件模块223检测到“高-低-高”的信号的电平跳变,则判定该端口221正在执行热插事件。

当固件模块判定该端口221执行热插事件后,固件模块还需要通过系统控制寄存器222配置复位解除信号,复位解除信号用于使控制器225和高速物理层接口224停止执行复位操作。可以理解的是,由于在本次热插入前执行了热拔操作,为了避免高速物理层接口224和控制器225执行与第一业务相关的残留命令,影响后续第二业务的进行,固件模块223通过系统控制寄存器222对控制器225和高速物理层接口224进行残留命令清除的复位操作,但是当该端口221当前执行热插入后,该复位信号还会继续触发控制器225和高速物理层接口224执行复位操作,这样当端口221与主机21进行第二业务交互时,控制器225和高速物理层接口224同样会继续清除第二业务的相关指令的操作。

步骤703、控制器和高速物理层接口根据复位清除信号停止执行复位操作。

可以理解的是,为了能够使后续的第二业务正常进行,就需要控制器225和高速物理层接口224停止执行复位操作。

步骤704、pcie设备和主机建立第二业务。

本发明实施例中,固件模块通过检测主机输入的硬件复位信号的电平跳变判定热插入事件,不需要通知按钮和电源指示器等辅助硬件,有效的减少了板极资源,并减少了热插拔设备需要进行热插入做准备的时间。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的方法,可以参考前述设备实施例中装置的具体工作过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1