一种PCIE设备的热插拔装置、方法、介质及系统与流程

文档序号:16855475发布日期:2019-02-12 23:14阅读:207来源:国知局
一种PCIE设备的热插拔装置、方法、介质及系统与流程

本发明涉及数据通信领域,特别是涉及一种pcie设备的热插拔装置、方法、介质及系统。



背景技术:

在大数据以及云计算的技术背景下,读写性能对于数据处理的重要性日益凸显。以固态硬盘为例,随着ssd(固态硬盘)技术的飞速发展,ssd的性能不断飙升,ssd底层中闪存的带宽越来越高,访问闪存介质时的延时越来越低,对于ssd大幅提升的数据读写性能而言,其接口处所常用的ahci总线协议或sata总线协议已经不能满足当前ssd的高性能、低延时的需求,由于pcie总线协议的通道具有低延时以及并行通信的特性,因此当前的ssd通常采用基于pcie总线协议的接口建立与主机连接,即ssd作为pcie设备与主机连接,以此提升主机对ssd中数据的读写性能。

当连接有pcie设备的主机进行bios启动时,会先在该主机中分配与pcie设备的各个逻辑单元对应的内存资源,进而主机能够基于预先分配的内存资源进行对该pcie设备io(输入/输出)操作。但是由于bios启动过程中可能将主机的内存资源完全分配给当前的pcie设备,因此在bios启动结束,主机处于工作状态时插入新pcie设备,可能会因主机无法再针对该pcie设备分配新的内存资源,而导致新pcie设备无法在主机端正常使用,进而在主机端产生异常信息;此外,当pcie设备与主机之间处于io过程中,断开pcie设备与主机之间的连接会导致主机中针对该pcie设备分配的内存资源被释放,由于主机无法访问到该内存资源,因此无法继续将io访问发送至内存资源,最终导致主机端产生异常信息。以上在主机处于工作状态下,对于pcie设备的热插拔操作均难以保证pcie设备与主机所构成系统的整体稳定性。

由此可见,提供一种pcie设备的热插拔装置及方法,以相对保证pcie设备与主机所构成系统的整体稳定性,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明的目的是提供一种pcie设备的热插拔装置、方法、介质及系统,以相对保证pcie设备与主机所构成系统的整体稳定性。

为解决上述技术问题,本发明提供一种pcie设备的热插拔装置,包括:

与主机连接,用于以pcie设备的身份占用主机分配的目标内存资源,并在插入或拔出pcie设备时,向pcie设备或主机提供目标内存资源的fpga设备;

与fpga设备连接,用于插入或拔出pcie设备的pcie接口。

此外,本发明还提供一种pcie设备的热插拔方法,应用于前述公开的pcie设备的热插拔装置,包括:

在bios启动过程中,fpga设备以pcie设备的身份获取并占用主机分配的目标内存资源;

在bios启动结束后,当检测到pcie接口接入新pcie设备时,建立主机与新pcie设备的通信关系,并向新pcie设备提供目标内存资源;

当检测到pcie接口与已有pcie设备断开连接时,利用目标内存资源接收主机对已有pcie设备发起的io访问。

优选的,在bios启动结束后,当检测到pcie接口接入新pcie设备时,建立主机与新pcie设备的通信关系,并向新pcie设备提供目标内存资源具体包括:

在bios启动结束后,当检测到新pcie设备的在位信号时,建立主机与新pcie设备的通信关系;

向主机发起重新扫描pcie设备的中断处理申请,并建立目标内存资源与新pcie设备的从属关系,以通过主机识别并使用新pcie设备。

优选的,当检测到pcie接口与已有pcie设备断开连接时,利用目标内存资源接收主机对已有pcie设备发起的io访问具体包括:

当检测到已有pcie设备的在位信号断开时,向主机发起更改已有pcie设备对应的内存资源的中断处理申请,并建立目标内存资源与已有pcie设备的从属关系;

利用目标内存资源接收主机对已有pcie设备发起的io访问。

优选的,pcie设备具体为pciessd。

优选的,pciessd具体为nvmessd。

优选的,目标内存资源具体包括bus资源、device资源、functionid资源以及mmio空间资源。

优选的,pcie接口具体为u.2规格接口。

此外,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的pcie设备的热插拔方法的步骤。

此外,本发明还提供一种pcie设备的热插拔系统,包括pcie设备的热插拔装置。

本发明所提供的pcie设备的热插拔装置,包括与主机连接的,用于以pcie设备的身份占用主机所分配的目标内存资源,并在插入或拔出pcie设备时,对pcie设备或主机提供目标内存资源的fpga设备,以及与fpga设备连接,用于插入或拔出pcie设备的pcie接口。在上述pcie设备的热插拔装置的拓扑结构的基础上,本发明所提供的pcie设备的热插拔方法,是在主机bios的启动过程中,将fpga设备作为pcie设备,获取并占用由主机分配的目标内存资源,进而当fpga设备的pcie接口接入新pcie设备时,将预先占用的目标内存资源提供给新pcie设备使用;当fpga设备的pcie接口与已有pcie设备断开连接时,即已有pcie设备的原有内存资源被释放时,通过目标内存资源接收由主机对已有pcie设备发起的io访问。由于本方法预先通过fpga设备以pcie设备的身份获取并占用了主机分配的目标内存资源,因此当主机工作过程中出现热插拔情况时,能够将fpga设备所占的目标内存资源作为备用资源以支持热插拔后的主机各项工作的正常进行,进而确保主机的正常工作,保证了pcie设备与主机所构成系统的整体工作稳定性。此外,本发明该提供一种实现pcie设备的热插拔的计算机可读存储介质以及pcie设备的热插拔系统,有益效果同上所述。

附图说明

为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种pcie设备的热插拔装置的结构图;

图2为本发明实施例提供的一种pcie设备的热插拔方法的流程图;

图3为本发明实施例提供的另一种pcie设备的热插拔方法的流程图;

图4为本发明实施例提供的另一种pcie设备的热插拔方法的流程图。

具体实施方式

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

本发明的核心是提供一种pcie设备的热插拔装置及方法,以相对保证pcie设备与主机所构成系统的整体稳定性。此外,本发明的另一核心是提供一种实现pcie设备的热插拔的计算机可读存储介质以及pcie设备的热插拔系统。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

实施例一

图1为本发明实施例提供的一种pcie设备的热插拔装置的结构图。本发明实施例提供的pcie设备的热插拔装置10,包括:

与主机11连接,用于以pcie设备的身份占用主机分配的目标内存资源,并在插入或拔出pcie设备时,向pcie设备或主机11提供目标内存资源的fpga设备12;

与fpga设备12连接,用于插入或拔出pcie设备的pcie接口13。

需要说明的是,本装置中的主机是指计算机除去io(输入输出)设备以外的主要机体部分,通常包括cpu、内存、硬盘、光驱、电源、以及其他输入输出控制器和接口。由于fpga设备是以pcie设备的身份占用主机分配的目标内存资源,因此主机与fpga设备之间是以pcie标准进行的连接。本装置中的主机主要是通过cpu的处理逻辑对接入的pcie设备进行扫描,进而对扫描得到的各个pcie设备分配相应的内存资源,此处的内存资源为pcie设备与主机正常io交互时所需要使用的一系列逻辑空间的统称,由于不同的pcie设备之间具有一定的差异性,在此不对内存资源中具体包含的逻辑空间做具体限定。

另外,在fpga设备中设置有连接pcie设备的pcie接口,由于fpga设备具有良好的可扩展性,因此pcie接口数量不仅限于1个,可以根据实际情况而设定,当pcie设备插入或拔出pcie接口时,fpga设备能够根据pcie接口处的电平信号判定该pcie接口处的pcie设备的连接情况。

本装置的中的fpga设备是以pcie设备的身份与主机建立的连接关系,由于fpga设备具有较高的编程灵活性,是由存放在ram中的程序来控制fpga设备的工作状态的,用户可以根据fpga设备的逻辑功能编写相应的程序,因此fpga设备能够模拟pcie设备的工作逻辑,并作为pcie设备与主机进行通信,在此基础上,也可以设置单独的执行逻辑,用于根据pcie接口处的pcie设备的连接情况控制主机与该pcie设备之间的交互方式。

另外,fpga设备模拟pcie设备的工作逻辑并以pcie设备的身份与主机进行通信的具体实现方式,是在fpga设备中创建与pcie设备相同的逻辑模块,并且在各逻辑模块的配置空间(即标准寄存器)中写入固定内容。

本发明所提供的pcie设备的热插拔装置,包括与主机连接的,用于以pcie设备的身份占用主机所分配的目标内存资源,并在插入或拔出pcie设备时,对pcie设备或主机提供目标内存资源的fpga设备,以及与fpga设备连接,用于插入或拔出pcie设备的pcie接口。

图2为本发明实施例提供的一种pcie设备的热插拔方法的流程图,应用于上述的pcie设备的热插拔装置。请参考图2,pcie设备的热插拔方法的具体步骤包括:

步骤s10:在bios启动过程中,以pcie设备的身份获取并占用主机分配的目标内存资源。

需要说明的是,bios(basicinputoutputsystem,基本输入输出系统)是一组固化到计算机内主板上一个rom芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。bios启动的过程也就是主机的初始化过程,为了确保与主机相连的pcie设备能够在主机初始化结束后正常使用,在bios启动的过程中,需要在主机中分配各pcie设备对应的内存资源。而在本步骤中,通过将fpga设备模拟为pcie设备的目的仅为获取并占用主机分配的目标内存资源,除此以外,fpga设备并不以pcie设备的身份进行与主机间的io操作,因此目标内存资源实质上为空闲的内存资源。

步骤s11:在bios启动结束后,当检测到pcie接口接入新pcie设备时,建立主机与新pcie设备的通信关系,并向新pcie设备提供目标内存资源。

需要说明的是,本步骤的执行主体应为fpga设备,fpga设备通过预先编写并存放在ram中的程序执行本步骤以及后续步骤的操作内容。在bios启动结束后,即主机的初始化过程结束并开始正常工作后,当检测到pcie接口接入新pcie设备时,则建立新pcie设备与主机之间在逻辑上的通信关系,以此建立主机与新pcie设备之间io交互的基础,进而将fpga设备预先占用的目标内存资源作为新pcie设备与主机之间进行io时所使用的内存资源,以防止因主机没有内存资源与新pcie设备进行io交互而报错的情况发生。

步骤s12:当检测到pcie接口与已有pcie设备断开连接时,利用目标内存资源接收主机对已有pcie设备发起的io访问。

本步骤是当检测pcie接口与已有pcie设备断开连接时,即已有pcie设备从pcie接口处拔出时所进行的操作内容,由于当已有pcie设备从pcie接口处拔出时,该已有pcie设备在主机中的内存资源将被释放,因此为了避免内存资源被释放后,主机向已有pcie设备发起io访问但无法找到已有pcie设备的内存资源的情况发生,本步骤利用目标内存资源接收主机对已有pcie设备发起的io访问,以防止主机报错的情况发生。

在上述pcie设备的热插拔装置的拓扑结构的基础上,本发明所提供的pcie设备的热插拔方法,是在主机bios的启动过程中,将fpga设备作为pcie设备,获取并占用由主机分配的目标内存资源,进而当fpga设备的pcie接口接入新pcie设备时,将预先占用的目标内存资源提供给新pcie设备使用;当fpga设备的pcie接口与已有pcie设备断开连接时,即已有pcie设备的原有内存资源被释放时,通过目标内存资源接收由主机对已有pcie设备发起的io访问。由于本方法预先通过fpga设备以pcie设备的身份获取并占用了主机分配的目标内存资源,因此当主机工作过程中出现热插拔情况时,能够将fpga设备所占的目标内存资源作为备用资源以支持热插拔后的主机各项工作的正常进行,进而确保主机的正常工作,保证了pcie设备与主机所构成系统的整体工作稳定性。

实施例二

在上述实施例的基础上,本发明还提供以下一系列优选的实施方式。

图3为本发明实施例提供的另一种pcie设备的热插拔方法的流程图。图3中步骤s10及步骤s12与图2相同,在此不再赘述。

如图3所示,作为一种优选的实施方式,在bios启动结束后,当检测到pcie接口接入新pcie设备时,建立主机与新pcie设备的通信关系,并向新pcie设备提供目标内存资源具体包括:

步骤s20:在bios启动结束后,当检测到新pcie设备的在位信号时,建立主机与新pcie设备的通信关系。

可以理解的是,由于新pcie设备在接入pcie接口时会导致pcie接口处的电路被导通,从而产生电平信号,即本步骤中的在位信号,进而当检测到在位信号时,建立主机与新pcie设备之间的通信关系,由于在本申请的拓扑关系中,fpga设备相当于建立在主机与pcie设备之间的中间件,因此在fpga设备中执行相应的控制逻辑,能够实现通过fpga设备导通主机与pcie设备之间的通信关系。由于能够正常工作的pcie设备接入pcie接口时必然会产生电平信号,因此本步骤中通过检测是否存在在位信号而判定是否有新pcie设备接入,具有更高的准确性。

步骤s21:向主机发起重新扫描pcie设备的中断处理申请,并建立目标内存资源与新pcie设备的从属关系,以通过主机识别并使用新pcie设备。

需要说明的是,本步骤中向主机发起中断处理申请后,能够在第一时间内通过告知主机当前的pcie设备发生变化,进而暂时中断主机对pcie设备的io访问,并对重新扫描pcie设备以发现新pcie设备,进而通过建立新pcie设备与目标内存资源之间的对应关系,即“从属关系”,当主机向新pcie设备发起io访问时,在io访问由目标内存资源接收并处理。本步骤通过向主机发起中断处理申请的方式,暂时中断了主机当前进行的业务,进而能够确保主机在第一时间内完成对新pcie设备的加载,提高了热插入新pcie设备时,对新pcie设备的加载效率。

图4为本发明实施例提供的另一种pcie设备的热插拔方法的流程图。图4中步骤s10-s11与图2相同,在此不再赘述。

如图4所示,作为一种优选的实施方式,当检测到pcie接口与已有pcie设备断开连接时,利用目标内存资源接收主机对已有pcie设备发起的io访问具体包括:

步骤s30:当检测到已有pcie设备的在位信号断开时,向主机发起更改已有pcie设备对应的内存资源的中断处理申请,并建立目标内存资源与已有pcie设备的从属关系。

步骤s31:利用目标内存资源接收主机对已有pcie设备发起的io访问。

可以理解的是,由于将已有pcie设备从pcie接口处拔出时,已有pcie设备与pcie接口之间的通路被阻断,会导致电平信号消失,即在位信号断开。当已有pcie设备在主机工作的状态下与pcie接口断开时,可能仍然会出现主机向已有pcie设备发起io访问的情况,但是当前情况下,属于已有pcie设备的内存资源已经被释放,无法正常接收并响应有主机发起的io访问。为了避免上述情况造成主机不稳定情况的发生,本步骤当检测到已有pcie设备的在位信号断开时,向主机发起中断处理申请,以将已有pcie设备对应的内存资源设置为目标内存资源,进而达到建立目标内存资源与已有pcie设备之间的从属关系的目的。本步骤通过向主机发起中断处理申请的方式,暂时中断了主机当前进行的业务,进而能够确保主机在第一时间内将已有pcie设备对应的内存资源设置为目标内存资源,最大程度保证了主机的稳定性。

此外,作为一种优选的实施方式,pcie设备具体为pciessd。

需要说明的是,硬盘是当前进行大数据以及云计算处理时,提供数据存储支持及读取支持的重要设备,硬盘的读写性能决定着大数据以及云计算处理时的整体效率。由于ssd(固态硬盘)技术的飞速发展,ssd的性能不断飙升,ssd底层中闪存的带宽越来越高,访问闪存介质时的延时越来越低,因此具有较高的数据读写性能。本实施方式将pcie设备限定为pciessd,以实现对pciessd的热插拔操作,使用户可以根据实际需求灵活更换pciessd,能够在高数据读写性能的基础上进一步增加系统数据存储的可扩展性和灵活性,提高了在大数据以及云计算处理时对数据读写的灵活性。

此外,在上述实施方式的基础上,作为一种优选的实施方式,pciessd具体为nvmessd。

nvmessd为pciessd类型下的一种高性能固态硬盘,具有更低的延时、更低的功耗以及更高的数据读写效率,因此能够在上述实施方式的基础上,进一步提高对数据的读写性能。

此外,作为一种优选的实施方式,目标内存资源具体包括bus资源、device资源、functionid资源以及mmio空间资源。

需要说明的是,bus(总线)资源是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束,按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号;device(设备)资源是指加载pcie设备时所需要的空间资源;functionid资源是指加载pcie设备各项功能所需要的空间资源;mmio(memorymappingi/o)空间资源即内存映射i/o,i/o设备被放置在内存空间中,因此需要一定的空间资源。上述目标资源在具体包括的资源内容涉及到pcie设备在工作时通常需要使用到的资源内容,因此能够相对保证pcie设备工作的可靠性。

此外,作为一种优选的实施方式,pcie接口具体为u.2规格接口。

需要说明的是,是由固态硬盘形态工作组织(ssdformfactorworkgroup)推出的接口规范。u.2不但能支持pcie规范,还能兼容sas、sata等规范,对接入的设备具有更高的兼容性,并且u.2接口具备更快的数据读写速度,能够相对保证fpga设备pcie接口与pcie设备进行数据交互的整体效率。

实施例三

本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的pcie设备的热插拔方法的步骤。

本发明所提供的计算机可读存储介质,是在主机bios的启动过程中,将fpga设备作为pcie设备,获取并占用由主机分配的目标内存资源,进而当fpga设备的pcie接口接入新pcie设备时,将预先占用的目标内存资源提供给新pcie设备使用;当fpga设备的pcie接口与已有pcie设备断开连接时,即已有pcie设备的原有内存资源被释放时,通过目标内存资源接收由主机对已有pcie设备发起的io访问。由于本计算机可读存储介质预先通过fpga设备以pcie设备的身份获取并占用了主机分配的目标内存资源,因此当主机工作过程中出现热插拔情况时,能够将fpga设备所占的目标内存资源作为备用资源以支持热插拔后的主机各项工作的正常进行,进而确保主机的正常工作,保证了pcie设备与主机所构成系统的整体工作稳定性。

此外,本发明还提供一种pcie设备的热插拔系统,包括上述的pcie设备的热插拔装置。

本发明所提供的pcie设备的热插拔系统,是在主机bios的启动过程中,将fpga设备作为pcie设备,获取并占用由主机分配的目标内存资源,进而当fpga设备的pcie接口接入新pcie设备时,将预先占用的目标内存资源提供给新pcie设备使用;当fpga设备的pcie接口与已有pcie设备断开连接时,即已有pcie设备的原有内存资源被释放时,通过目标内存资源接收由主机对已有pcie设备发起的io访问。由于本系统预先通过fpga设备以pcie设备的身份获取并占用了主机分配的目标内存资源,因此当主机工作过程中出现热插拔情况时,能够将fpga设备所占的目标内存资源作为备用资源以支持热插拔后的主机各项工作的正常进行,进而确保主机的正常工作,保证了pcie设备与主机所构成系统的整体工作稳定性。

以上对本发明所提供的一种pcie设备的热插拔装置、方法、介质及系统进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的介质及系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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