System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于SR-IOV协议的NVMe队列资源动态分配方法及寄存器组成比例_技高网

基于SR-IOV协议的NVMe队列资源动态分配方法及寄存器组成比例

技术编号:40417946 阅读:5 留言:0更新日期:2024-02-20 22:35
本申请提供基于SR‑IOV协议的NVMe队列资源动态分配方法及寄存器,方法包括:基于NVMe协议和SR‑IOV协议接收主机发送的目标PCIe功能的队列资源需求数据;若根据当前CPU核资源对应的功能列表查询得到目标PCIe功能满足预设的队列资源分配条件,则基于功能列表和目标PCIe功能的队列资源需求数据,在本地的目标NVMe共享IO队列中为目标PCIe功能动态分配队列资源。本申请能够通过硬件实现对PCIe功能的队列资源动态分配,能够有效提高IO队列资源的利用率,能够有效解决IO队列资源在某个PCIe功能中不够用或者浪费的问题。

【技术实现步骤摘要】

本申请涉及数据处理,尤其涉及基于sr-iov协议的nvme队列资源动态分配方法及寄存器。


技术介绍

1、sr-iov(single root i/o virtualization)是pcie(peripheral componentinterconnect express)协议的拓展协议,用于实现硬件虚拟化的一种方法。sr-iov协议允许多个高速串行计算机扩展总线标准pcie功能,pcie功能包括物理功能pf(physicalfunction)和虚拟功能vf(virtual function)共享硬件资源。每个pf和vf都分配有唯一的pcie bdf编号,输入输出io(input/output)内存管理单元iommu可以区分不同pf和vf之间的数据和中断。而nvme是目前高速固态硬盘所支持的存储接口协议,支持高并发访问,实现sr-iov协议的nvme ssd,可以满足在虚拟化场景中快速存储访问请求,虚拟机访问nvme设备也可以达到非虚拟化环境下的性能。

2、目前,在支持sr-iov协议的nvme ssd中,每一个pf或者vf支持的最大队列数是固定的,不能满足pf或者vf按需求分配队列。nvme io队列数量与cpu的核数相关,但在虚拟机中模拟的cpu核数量可以不同于物理机,如果按照事先规定的最大队列数,那么cpu核数少于最大队列数时,多余的io队列资源产生浪费,而cpu核数多于最大队列数时,产生io队列资源不够用的情况。

3、因此,亟需设计一种能够解决sr-iov协议中nvme io队列不能按需分配的问题的方法。


技术实现思路

1、鉴于此,本申请实施例提供了基于sr-iov协议的nvme队列资源动态分配方法及寄存器,以消除或改善现有技术中存在的一个或更多个缺陷。

2、本申请的一个方面提供了一种基于sr-iov协议的nvme队列资源动态分配方法,由硬件实现,所述方法包括:

3、基于nvme协议和sr-iov协议接收主机发送的队列资源分配请求,其中,该队列资源分配请求中包含有目标pcie功能的队列资源需求数据,所述目标pcie功能包括:物理功能和/或虚拟功能;

4、若根据当前cpu核资源对应的功能列表查询得到所述目标pcie功能满足预设的队列资源分配条件,则基于所述功能列表和所述目标pcie功能的队列资源需求数据,在本地的目标nvme共享io队列中为所述目标pcie功能动态分配队列资源。

5、在本申请的一些实施例中,所述队列资源需求数据包括:所述目标pcie功能的唯一标识和请求队列资源;所述功能列表存储有各个物理功能和各个虚拟功能各自的唯一标识与对应的状态标识,其中,所述状态标识包括有效状态标识或无效状态标识;

6、相对应的,在所述基于nvme协议和sr-iov协议接收主机发送的队列资源分配请求之后,还包括:

7、自当前cpu核资源对应的功能列表中查找所述目标pcie功能的唯一标识对应的状态标识是否为有效状态标识,若是,则确定所述目标pcie功能满足预设的第一队列资源分配条件。

8、在本申请的一些实施例中,所述队列资源需求数据中还包括:所述目标pcie功能的偏移量;

9、相对应的,在所述确定所述目标pcie功能满足预设的第一队列资源分配条件之后,还包括:

10、判断所述目标pcie功能的偏移量是否越界,若否,则确定所述目标pcie功能满足预设的第二队列资源分配条件。

11、在本申请的一些实施例中,所述功能列表还存储有各个物理功能和各个虚拟功能各自对应的队列基地址;

12、所述若根据当前cpu核资源对应的功能列表查询得到所述目标pcie功能满足预设的队列资源分配条件,则基于所述功能列表和所述目标pcie功能的队列资源需求数据,在本地的目标nvme共享io队列中为所述目标pcie功能动态分配队列资源,包括:

13、若根据所述功能列表查询得到所述目标pcie功能满足所述第一队列资源分配条件和所述第二队列资源分配条件,则将所述功能列表中的所述目标pcie功能的唯一标识对应的队列基地址与所述目标pcie功能的偏移量进行拼接,以得到所述目标pcie功能对应的目标nvme共享io队列的队列地址,并基于所述目标pcie功能对应的目标nvme共享io队列的队列地址查找得到所述目标nvme共享io队列;

14、在目标nvme共享io队列中为所述目标pcie功能动态分配队列资源。

15、在本申请的一些实施例中,所述在目标nvme共享io队列中为所述目标pcie功能动态分配队列资源,包括:

16、根据所述目标pcie功能对应的所述请求队列资源,对所述目标nvme共享io队列中从头开始扫描以查找所述目标nvme共享io队列中当前是否包含有所述请求队列资源对应的连续空闲队列空间,若是,则在所述目标nvme共享io队列中为所述目标pcie功能分配所述请求队列资源对应的连续空闲队列空间。

17、在本申请的一些实施例中,还包括:

18、若查找获知所述目标nvme共享io队列中不包含有所述请求队列资源对应的连续空闲队列空间,则对所述目标nvme共享io队列中的不连续的各个空闲队列空间进行碎片回收处理;

19、根据所述目标pcie功能对应的所述请求队列资源,判断经碎片回收处理后的所述目标nvme共享io队列中是否包含有所述请求队列资源对应的连续空闲队列空间,若是,则在所述目标nvme共享io队列中为所述目标pcie功能分配所述请求队列资源对应的连续空闲队列空间。

20、在本申请的一些实施例中,还包括:

21、若经判断获知所述目标nvme共享io队列中不包含有所述请求队列资源对应的连续空闲队列空间,则判断所述目标nvme共享io队列中当前是否包含有剩余空闲队列空间,若是,则在所述目标nvme共享io队列中为所述目标pcie功能分配所述剩余空闲队列空间。

22、在本申请的一些实施例中,还包括:

23、在为所述目标pcie功能动态分配队列资源后,向所述主机发送对应的队列资源分配消息,以使所述主机在接收该队列资源分配消息后,所述主机中的所述目标pcie功能基于所述sr-iov协议和所述nvme协议调用所述目标nvme共享io队列中的所述目标pcie功能对应的队列资源。

24、在本申请的一些实施例中,还包括:

25、若基于nvme协议和sr-iov协议接收到所述主机发送的队列资源注销请求,其中,该队列资源注销请求中包含有所述目标pcie功能的队列资源注销数据;

26、若根据当前cpu核资源对应的功能列表查询得到所述目标pcie功能满足预设的队列资源分配条件,则基于所述功能列表和所述目标pcie功能的队列资源注销数据,在本地的目标nvme共享io队列中释放所述目标pcie功能对应的队列资源。

27、本申请的另一个方面提供了一种nvm本文档来自技高网...

【技术保护点】

1.一种基于SR-IOV协议的NVMe队列资源动态分配方法,其特征在于,由硬件实现,所述方法包括:

2.根据权利要求1所述的基于SR-IOV协议的NVMe队列资源动态分配方法,其特征在于,所述队列资源需求数据包括:所述目标PCIe功能的唯一标识和请求队列资源;所述功能列表存储有各个物理功能和各个虚拟功能各自的唯一标识与对应的状态标识,其中,所述状态标识包括有效状态标识或无效状态标识;

3.根据权利要求2所述的基于SR-IOV协议的NVMe队列资源动态分配方法,其特征在于,所述队列资源需求数据中还包括:所述目标PCIe功能的偏移量;

4.根据权利要求3所述的基于SR-IOV协议的NVMe队列资源动态分配方法,其特征在于,所述功能列表还存储有各个物理功能和各个虚拟功能各自对应的队列基地址;

5.根据权利要求4所述的基于SR-IOV协议的NVMe队列资源动态分配方法,其特征在于,所述在目标NVMe共享IO队列中为所述目标PCIe功能动态分配队列资源,包括:

6.根据权利要求5所述的基于SR-IOV协议的NVMe队列资源动态分配方法,其特征在于,还包括:

7.根据权利要求6所述的基于SR-IOV协议的NVMe队列资源动态分配方法,其特征在于,还包括:

8.根据权利要求1至7任一项所述的基于SR-IOV协议的NVMe队列资源动态分配方法,其特征在于,还包括:

9.根据权利要求1所述的基于SR-IOV协议的NVMe队列资源动态分配方法,其特征在于,还包括:

10.一种NVMe寄存器,其特征在于,所述NVMe寄存器用于执行权利要求1至9任一项所述的基于SR-IOV协议的NVMe队列资源动态分配方法;

...

【技术特征摘要】

1.一种基于sr-iov协议的nvme队列资源动态分配方法,其特征在于,由硬件实现,所述方法包括:

2.根据权利要求1所述的基于sr-iov协议的nvme队列资源动态分配方法,其特征在于,所述队列资源需求数据包括:所述目标pcie功能的唯一标识和请求队列资源;所述功能列表存储有各个物理功能和各个虚拟功能各自的唯一标识与对应的状态标识,其中,所述状态标识包括有效状态标识或无效状态标识;

3.根据权利要求2所述的基于sr-iov协议的nvme队列资源动态分配方法,其特征在于,所述队列资源需求数据中还包括:所述目标pcie功能的偏移量;

4.根据权利要求3所述的基于sr-iov协议的nvme队列资源动态分配方法,其特征在于,所述功能列表还存储有各个物理功能和各个虚拟功能各自对应的队列基地址;

5.根据权利要...

【专利技术属性】
技术研发人员:秦保力孟繁毅
申请(专利权)人:中科驭数北京科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1