CN117215793A - 总线资源分配方法、装置、设备及存储介质 - Google Patents
总线资源分配方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117215793A CN117215793A CN202311256364.1A CN202311256364A CN117215793A CN 117215793 A CN117215793 A CN 117215793A CN 202311256364 A CN202311256364 A CN 202311256364A CN 117215793 A CN117215793 A CN 117215793A
- Authority
- CN
- China
- Prior art keywords
- bus
- allocation
- port
- root port
- root
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013468 resource allocation Methods 0.000 title claims abstract description 65
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000012216 screening Methods 0.000 claims abstract description 20
- 230000015654 memory Effects 0.000 claims description 26
- 238000004064 recycling Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Bus Control (AREA)
Abstract
本发明涉及计算机技术领域,公开了一种总线资源分配方法、装置、设备及存储介质,包括:获取各个根端口的总线分配状态,总线分配状态包括分配成功以及分配未成功;对于总线分配状态为分配未成功的第一根端口,获取资源池中的空闲总线量以及第一根端口的最小总线需求量;若空闲总线量小于最小总线需求量,从总线分配状态为分配成功的第二根端口中筛选出可分配总线的根端口,以获取可分配总线;基于可分配总线以及空闲总线量,对第一根端口进行资源分配;本发明可以降低资人工资源分配的时间成本,大幅提高设备的读写性能。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种总线资源分配方法、装置、设备及存储介质。
背景技术
随着集成电路的不断发展,对芯片处理性能的要求越来越高。PCIe总线架构作为连接各个模块的中枢桥梁,对芯片的性能起到重要影响。然而,一般的服务器,PCIe总线架构只有一个PCIe总线区段,在接入设备特别多或接入设备有很多虚拟设备的情况下,会出现总线编号资源局部不足的情况,如服务器中一个处理器有5个根端口,假设去掉处理器内部设备占用的总线编号一个处理器上总共有40个总线编号,那么每个根端口可以分配8个总线编号,在16通道的根端口分配8个2通道的接口后,恰好每个接口分得1个总线编号。在这种情况下,若第二个根端口接入的设备有内部虚拟设备,需要2个以上的总线编号,那第二个根端口上的总线编号就无法满足资源需求。此时,则需要工程师对总线编号进行重新分配并进行基本输入输出系统重启。
发明内容
有鉴于此,本发明提供了一种总线资源分配方法、装置、设备及存储介质,以解决现有服务器中的PCIe总线架构在出现总线编号资源局部不足时,需要工程师对总线编号进行重新分配并进行基本输入输出系统重启,导致设备的读写性能出现大幅度下滑的问题。
第一方面,本发明提供了一种总线资源分配方法,该方法包括获取各个根端口的总线分配状态,总线分配状态包括分配成功以及分配未成功;对于总线分配状态为分配未成功的第一根端口,获取资源池中的空闲总线量以及第一根端口的最小总线需求量;若空闲总线量小于最小总线需求量,从总线分配状态为分配成功的第二根端口中筛选出可分配总线的根端口,以获取可分配总线;基于可分配总线以及空闲总线量,对第一根端口进行资源分配。通过上述过程,可以降低资人工资源分配的时间成本,大幅提高设备的读写性能。
在一些可选的实施方式中,从总线分配状态为分配成功的第二根端口中筛选出可分配总线的根端口,以获取可分配总线,包括:
计算空闲总线量与最小总线需求量之间的总线量差值;
基于总线量差值,从分配成功的第二根端口中筛选出满足总线配出条件的目标根端口;总线配出条件包括第二根端口的总线量大于第二根端口的最小总线需求量;
对目标根端口中的可配出总线进行总线占用的总线调度,得到可分配总线。
在一些可选的实施方式中,对目标根端口中的可配出总线进行总线占用的总线调度,包括:
将第一根端口加入总线占用队列;
对总线占用队列中的第一根端口进行排序;
按照顺序对目标根端口中的可配出总线进行总线占用的总线操作。
在一些可选的实施方式中,获取各个根端口的总线分配状态,包括:
将获取的总线资源信息及总线分配信息保存为信息副本,总线资源信息包括资源池,以及资源池的使用信息;
基于信息副本获取总线资源信息;
通过总线分配信息获取总线分配任务;
从总线分配任务中筛选出根端口总线分配任务,并基于根端口总线分配任务及总线资源信息生成总线分配列表;
基于总线分配列表确定各个根端口的总线分配状态。
在一些可选的实施方式中,上述方法还包括:
获取待分配总线的根端口量;
基于空闲总线量对各待分配总线的根端口进行总线平均分配;
针对任一根端口,当根端口的总线量大于对应的最小总线需求量时,将根端口的总线分配状态变更为分配成功;
当根端口的总线量小于对应的最小总线需求量时,将根端口的总线分配状态变更为分配未成功。
在一些可选的实施方式中,上述方法还包括:
获取空闲总线中的可用总线量及使用量阈值;
将可用总线量与使用量阈值进行比对,得到比对结果;
当比对结果表征可用总线量等于使用量阈值时,停止总线占用的总线操作;
当比对结果表征可用总线量大于使用量阈值时,计算可用总线量中除去使用量阈值后的剩余总线量;
比对总线分配状态为分配未成功的第一根端口的最小总线需求量与剩余总线量的线量差值;
当线量差值表征最小总线需求量小于或等于剩余总线量时,基于剩余总线量对第一根端口进行资源分配,并对当前总线分配方案进行存储;
当线量差值最小总线需求量大于剩余总线量时,执行从总线分配状态为分配成功的第二根端口中筛选出可分配总线的根端口,以获取可分配总线的步骤;
当分配成功的第二根端口中无法筛选出可分配总线的根端口时,则生成资源池扩充请求,以增加资源池中的空闲总线量。
在一些可选的实施方式中,方法还包括:
若空闲总线量大于最小总线需求量,基于空闲总线量对第一根端口进行资源分配;
对于总线分配状态为分配成功的第二根端口,获取第二根端口中的可分配总线;
将第二根端口中的可分配总线回收到资源池内。
第二方面,本发明提供了一种总线资源分配装置,该装置主要包括:状态获取模块、需求获取模块、总线获取模块,以及总线分配模块;其中,状态获取模块,用于获取各个根端口的总线分配状态,总线分配状态包括分配成功以及分配未成功;需求获取模块,用于对于总线分配状态为分配未成功的第一根端口,获取资源池中的空闲总线量以及第一根端口的最小总线需求量;总线获取模块,用于若空闲总线量小于最小总线需求量,从总线分配状态为分配成功的第二根端口中筛选出可分配总线的根端口,以获取可分配总线;总线分配模块,用于基于可分配总线以及空闲总线量,对第一根端口进行资源分配。通过上述过程,可以降低资人工资源分配的时间成本,大幅提高设备的读写性能。
第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的总线资源分配方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的总线资源分配方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的总线资源分配方法的流程示意图;
图2是本发明实施例的另一总线资源分配方法的流程示意图;
图3是本发明实施例的又一总线资源分配方法的流程示意图;
图4是本发明实施例的再一总线资源分配方法的流程示意图;
图5是本发明实施例的总线资源分配装置的结构框图;
图6是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”和“第二”是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的保护。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本发明中的“多个”可以表示至少两个,例如可以是两个、三个或者更多个,本发明实施例不做限制。
根据本发明实施例,提供了一种总线资源分配方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种总线资源分配方法,应用于服务器,服务器包括处理器,以及通过PCIe总线架构与处理器的多个根端口连接的终端设备;该终端设备内运行有一个或者多个虚拟设备,PCIe总线架构包括256个PCIe总线,各总线具有对应的总线编号,各总线的总线编号可以存储在资源池中,以为各根端口所对应的终端设备分配相应数量的总线资源,或者对各根端口内的空闲总线进行回收。其中处理器的数量可以为一个或者多个。图1是根据本发明实施例的总线资源分配方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,获取各个根端口的总线分配状态,总线分配状态包括分配成功以及分配未成功。
如上,通过获取各个根端口的总线分配状态,以便于根据各个根端口的总线分配状态确定是否需对其进行总线资源调度。
在一些可选的实施方式中,可以基于信息副本获取总线资源信息,通过总线资源信息确定总线分配列表,然后基于总线分配列表确定各个根端口的总线分配状态。其中,总线分配状态包括分配成功以及分配未成功,且分配成功可以为本周期分配成功和过去周期分配成功的根端口。同样的,分配未成功可以是过去周期分配未成功,也可以为本周期分配未成功,还可以为本周期待分配的根端口。
具体的,获取各个根端口的总线分配状态时,可以将获取的总线资源信息及总线分配信息保存为信息副本,总线资源信息包括资源池,以及资源池的使用信息;基于信息副本获取总线资源信息;通过总线分配信息获取总线分配任务;从总线分配任务中筛选出根端口总线分配任务,并基于根端口总线分配任务及总线资源信息生成总线分配列表;基于总线分配列表确定各个根端口的总线分配状态。通过将总线资源信息及总线分配信息保存为信息副本,以便于对总线分配状态为分配未成功的根端口进行尝试再分配或者分配失败的过程中,进行信息副本中的信息修改,从而避免对资源池中各总线状态的影响。
在一些可选的实施方式中,在基于总线分配列表确定各个根端口的总线分配状态时,可以对总线分配列表中总线分配状态为分配未成功的根端口进行排序,然后按照顺序确定第一根端口。其中,对总线分配状态为分配未成功的第一根端口进行排序时,可以按照第一根端口运行所需的最小总线需求量由小到大依次排序,还可以基于第一根端口进行总线分配的时间以及未被分配成功的次数进行排序。通过对总线分配列表中总线分配状态为分配未成功的根端口进行排序,以便于提高第一根端口的总线分配效率,且能够将需要尽快完成分配的第一根端口尽快完成总线资源的分配,避免同一个第一根端口多次未被分配总线或长时间未被分配总线的情况,满足了实际应用需求。
步骤S102,对于总线分配状态为分配未成功的第一根端口,获取资源池中的空闲总线量以及第一根端口的最小总线需求量。
如上,对于总线分配状态为分配未成功的第一根端口,通过获取资源池中的空闲总线量以及第一根端口的最小总线需求量,以便于为第一根端口分配运行所需的最小总线需求量,避免后续分配未成功的第一根端口由于资源池中空闲总线量不足而造成再次总线分配失败,且提高了总线资源利用率。
在一些可选的实施方式中,对于总线分配列表中总线分配状态为分配未成功的第一根端口,可以先获取第一根端口中所对应的根端口信息(如根端口号,所对应的终端设备信息,终端设备信息包括各终端设备内所携带的虚拟设备信息),基于该根端口信息确定最小总线集,再根据最小总线集中各根端口所占的总线量,确定第一根端口所需的最小总线需求量。然后再获取资源池中的空闲总线量,当空闲总线量满足最小总线需求量时,即空闲总线量大于或等于最小总线需求量时,基于空闲总线量对第一根端口进行资源分配,并标记第一根端口的总线分配状态为分配成功,最后再将第一根端口的总线分配的操作添加至总线分配列表中,并将总线分配结果更新至总线分配列表中的总线分配信息中,以进行总线分配操作记录。
进一步地,为第一根端口分配所需的最小总线需求量时,可以在资源池中存在空闲总线时,将最小总线集中的各根端口根据空闲总线量的大小不断地进行空闲总线的分配,直至最小总线集中的当前根端口的所对应的终端设备均完成总线分配时,则认为当前根端口的总线分配成功。
在一些可选的实施方式中,还可以获取待分配总线的根端口量;基于空闲总线量对各待分配总线的根端口进行总线平均分配;针对任一根端口,当根端口的总线量大于对应的最小总线需求量时,将根端口的总线分配状态变更为分配成功;当根端口的总线量小于对应的最小总线需求量时,将根端口的总线分配状态变更为分配未成功。其中,通过基于空闲总线量对各待分配总线的根端口进行总线平均分配,以提高总线资源分配的效率;通过对根端口的总线分配状态进行变更,为后续总线资源的快速分配及回收提供必要条件。可选的,还可以服务器开机的过程中采用非易失性存储器内存储的总线分配方案进行总线资源的分配。
步骤S103,若空闲总线量小于最小总线需求量,从总线分配状态为分配成功的第二根端口中筛选出可分配总线的根端口,以获取可分配总线。
如上,当空闲总线量小于最小总线需求量即空闲总线量不足时,从总线分配状态为分配成功的第二根端口中筛选出可分配总线的根端口,以获取可分配总线,从而提高了总线资源的资源分配效率,以及总线资源的资源利用率。
在一些可选的实施方式中,在获取可分配总线时,可以计算空闲总线量与最小总线需求量之间的总线量差值;基于总线量差值,从分配成功的第二根端口中筛选出满足总线配出条件的目标根端口;总线配出条件包括第二根端口的总线量大于第二根端口的最小总线需求量;对目标根端口中的可配出总线进行总线占用的总线调度,得到可分配总线。
在一些可选的实施方式中,对目标根端口中的可配出总线进行总线占用的总线调度时,可以将第一根端口加入总线占用队列;对总线占用队列中的第一根端口进行排序;按照顺序对目标根端口中的可配出总线进行总线占用的总线操作。其中,按照顺序对目标根端口中的可配出总线进行总线占用的总线操作时,可以获取总线差值所对应的目标根端口,然后基于目标根端口中各终端设备的总线占用信息确定差值总线集,最后基于差值总线集中各终端设备的可分配总线量的大小顺序,对目标根端口中各终端设备的可分配总线进行占用。
步骤S104,基于可分配总线以及空闲总线量,对第一根端口进行资源分配。
如上,通过基于可分配总线以及空闲总线量,对第一根端口进行资源分配,为第一根端口的正常运行提供必要条件。
在一些可选的实施方式中,可以先获取第一根端口中所对应的根端口信息(如根端口号,所对应的终端设备信息,终端设备信息包括各终端设备内所携带的虚拟设备信息),基于该根端口信息确定最小总线集,再根据最小总线集中各根端口所占的总线量,确定第一根端口所需的最小总线需求量。然后再获取资源池中的空闲总线量,当空闲总线量满足最小总线需求量时,即空闲总线量大于或等于最小总线需求量时,基于空闲总线量对第一根端口进行资源分配,并标记第一根端口的总线分配状态为分配成功,最后再将第一根端口的总线分配的操作添加至总线分配列表中,并将总线分配结果更新至信息副本中,以进行总线分配操作记录。
可见,本实施例可以自动调整总线资源的分配,具有灵活性,减少了不同配置需要工程师手工分配的时间成本。在总线资源调整完成的情况下,即使新接入设备,也可以重新触发自动分配,具有极强自适应性。
本实施例提供的总线资源分配方法,首先通过获取各个根端口的总线分配状态,以便于根据各个根端口的总线分配状态确定是否需对其进行总线资源调度;通过对于总线分配状态为分配未成功的第一根端口,通过获取资源池中的空闲总线量以及第一根端口的最小总线需求量,以便于为第一根端口分配运行所需的最小总线需求量,避免后续分配未成功的第一根端口由于资源池中空闲总线量不足而造成再次总线分配失败,且提高了总线资源利用率;当空闲总线量小于最小总线需求量即空闲总线量不足时,从总线分配状态为分配成功的第二根端口中筛选出可分配总线的根端口,以获取可分配总线,从而提高了总线资源的资源分配效率,以及总线资源的资源利用率;通过基于可分配总线以及空闲总线量,对第一根端口进行资源分配,为第一根端口的正常运行提供必要条件。因此,本发明可以降低资人工资源分配的时间成本,大幅提高设备的读写性能。
在本实施例中提供了一种总线资源分配方法,应用于服务器,服务器包括处理器,以及通过PCIe总线架构与处理器的多个根端口连接的终端设备;该终端设备内运行有一个或者多个虚拟设备,PCIe总线架构包括256个PCIe总线,各总线具有对应的总线编号,各总线的总线编号可以存储在资源池中,以为各根端口所对应的终端设备分配相应数量的总线资源,或者对各根端口内的空闲总线进行回收。图2是根据本发明实施例的总线资源分配方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,获取各个根端口的总线分配状态,总线分配状态包括分配成功以及分配未成功。
如上,通过获取各个根端口的总线分配状态,以便于根据各个根端口的总线分配状态确定是否需对其进行总线资源调度。
详细请参见图1所示实施例的步骤S101,在此不再赘述。
步骤S202,对于总线分配状态为分配未成功的第一根端口,获取资源池中的空闲总线量以及第一根端口的最小总线需求量。
如上,对于总线分配状态为分配未成功的第一根端口,通过获取资源池中的空闲总线量以及第一根端口的最小总线需求量,以便于为第一根端口分配运行所需的最小总线需求量,避免后续分配未成功的第一根端口由于资源池中空闲总线量不足而造成再次总线分配失败,且提高了总线资源利用率。
详细请参见图1所示实施例的步骤S102,在此不再赘述。
步骤S203,若空闲总线量小于最小总线需求量,从总线分配状态为分配成功的第二根端口中筛选出可分配总线的根端口,以获取可分配总线。
如上,当空闲总线量小于最小总线需求量即空闲总线量不足时,从总线分配状态为分配成功的第二根端口中筛选出可分配总线的根端口,以获取可分配总线,从而提高了总线资源的资源分配效率,以及总线资源的资源利用率。
具体的,上述步骤S203包括:
步骤S2031,计算空闲总线量与最小总线需求量之间的总线量差值。
如上,通过计算空闲总线量与最小总线需求量之间的总线量差值,为从分配成功的第二根端口中筛选出满足总线配出条件的目标根端口提供必要条件。
在一些可选的实施方式中,计算空闲总线量与最小总线需求量之间的总线量差值时,可以直接将空闲总线量减去最小总线需求量,从而得到总线量差值。
步骤S2032,基于总线量差值,从分配成功的第二根端口中筛选出满足总线配出条件的目标根端口;总线配出条件包括第二根端口的总线量大于第二根端口的最小总线需求量。
如上,通过基于总线量差值,从分配成功的第二根端口中筛选出满足总线配出条件的目标根端口,从而为第二根端口的正常运行提供必要条件。
步骤S2033,对目标根端口中的可配出总线进行总线占用的总线调度,得到可分配总线。
如上,通过对目标根端口中的可配出总线进行总线占用的总线调度,得到可分配总线,从而提高了总线资源的资源分配效率,以及总线资源的资源利用率。
在一些可选的实施方式中,对目标根端口中的可配出总线进行总线占用的总线调度时,可以将第一根端口加入总线占用队列;对总线占用队列中的第一根端口进行排序;按照顺序对目标根端口中的可配出总线进行总线占用的总线操作。其中,按照顺序对目标根端口中的可配出总线进行总线占用的总线操作时,可以获取总线差值所对应的目标根端口,然后基于目标根端口中各终端设备的总线占用信息确定差值总线集,最后基于差值总线集中各终端设备的可分配总线量的大小顺序,对目标根端口中各终端设备的可分配总线进行占用。
步骤S204,基于可分配总线以及空闲总线量,对第一根端口进行资源分配。
如上,通过基于可分配总线以及空闲总线量,对第一根端口进行资源分配,为第一根端口的正常运行提供必要条件。
细请参见图2所示实施例的步骤S104,在此不再赘述。
本实施例提供的总线资源分配方法,首先通过获取各个根端口的总线分配状态,以便于根据各个根端口的总线分配状态确定是否需对其进行总线资源调度;通过对于总线分配状态为分配未成功的第一根端口,通过获取资源池中的空闲总线量以及第一根端口的最小总线需求量,以便于为第一根端口分配运行所需的最小总线需求量,避免后续分配未成功的第一根端口由于资源池中空闲总线量不足而造成再次总线分配失败,且提高了总线资源利用率;当空闲总线量小于最小总线需求量即空闲总线量不足时,从总线分配状态为分配成功的第二根端口中筛选出可分配总线的根端口,以获取可分配总线,从而提高了总线资源的资源分配效率,以及总线资源的资源利用率;通过基于可分配总线以及空闲总线量,对第一根端口进行资源分配,为第一根端口的正常运行提供必要条件。因此,本发明可以降低资人工资源分配的时间成本,大幅提高设备的读写性能。
在本实施例中提供了一种总线资源分配方法,应用于服务器,服务器包括处理器,以及通过PCIe总线架构与处理器的多个根端口连接的终端设备;该终端设备内运行有一个或者多个虚拟设备,PCIe总线架构包括256个PCIe总线,各总线具有对应的总线编号,各总线的总线编号可以存储在资源池中,以为各根端口所对应的终端设备分配相应数量的总线资源,或者对各根端口内的空闲总线进行回收。图3是根据本发明实施例的总线资源分配方法的流程图,如图3所示,该流程包括如下步骤:
步骤S301,获取各个根端口的总线分配状态,总线分配状态包括分配成功以及分配未成功。
如上,通过获取各个根端口的总线分配状态,以便于根据各个根端口的总线分配状态确定是否需对其进行总线资源调度。
详细请参见图1所示实施例的步骤S101,在此不再赘述。
步骤S302,对于总线分配状态为分配未成功的第一根端口,获取资源池中的空闲总线量以及第一根端口的最小总线需求量。
如上,对于总线分配状态为分配未成功的第一根端口,通过获取资源池中的空闲总线量以及第一根端口的最小总线需求量,以便于为第一根端口分配运行所需的最小总线需求量,避免后续分配未成功的第一根端口由于资源池中空闲总线量不足而造成再次总线分配失败,且提高了总线资源利用率。
详细请参见图1所示实施例的步骤S102,在此不再赘述。
步骤S303,若空闲总线量大于最小总线需求量,基于空闲总线量对第一根端口进行资源分配。
如上,通过在空闲总线量大于最小总线需求量,基于空闲总线量对第一根端口进行资源分配,降低了人工重启分配的时间成本及人工成本,提高了总线资源的资源分配效率,以及总线资源的资源利用率。
在一些可选的实施方式中,还可以获取空闲总线中的可用总线量及使用量阈值;将可用总线量与使用量阈值进行比对,得到比对结果;当比对结果表征可用总线量等于使用量阈值时,停止总线占用的总线操作,以减少总线占用所产生的开销,且避免无效总线占用处理对数据设备读写性能的影响;当比对结果表征可用总线量大于使用量阈值时,计算可用总线量中除去使用量阈值后的剩余总线量;比对总线分配状态为分配未成功的第一根端口的最小总线需求量与剩余总线量的线量差值;当线量差值表征最小总线需求量小于或等于剩余总线量时,基于剩余总线量对第一根端口进行资源分配,并对当前总线分配方案进行存储,以便于对总线分配方案的重复利用,提高服务器开机及数据读写效率;当线量差值最小总线需求量大于剩余总线量时,执行从总线分配状态为分配成功的第二根端口中筛选出可分配总线的根端口,以获取可分配总线的步骤;当分配成功的第二根端口中无法筛选出可分配总线的根端口时,则生成资源池扩充请求,以请求增加资源池中的空闲总线量。
本实施例提供的总线资源分配方法,首先通过获取各个根端口的总线分配状态,以便于根据各个根端口的总线分配状态确定是否需对其进行总线资源调度;通过对于总线分配状态为分配未成功的第一根端口,通过获取资源池中的空闲总线量以及第一根端口的最小总线需求量,以便于为第一根端口分配运行所需的最小总线需求量,避免后续分配未成功的第一根端口由于资源池中空闲总线量不足而造成再次总线分配失败,且提高了总线资源利用率;通过在空闲总线量大于最小总线需求量,基于空闲总线量对第一根端口进行资源分配,降低了人工重启分配的时间成本及人工成本,提高了总线资源的资源分配效率,以及总线资源的资源利用率。因此,本发明可以降低资人工资源分配的时间成本,大幅提高设备的读写性能。
在本实施例中提供了一种总线资源分配方法,应用于服务器,服务器包括处理器,以及通过PCIe总线架构与处理器的多个根端口连接的终端设备;该终端设备内运行有一个或者多个虚拟设备,PCIe总线架构包括256个PCIe总线,各总线具有对应的总线编号,各总线的总线编号可以存储在资源池中,以为各根端口所对应的终端设备分配相应数量的总线资源,或者对各根端口内的空闲总线进行回收。图4是根据本发明实施例的总线资源分配方法的流程图,如图4所示,该流程包括如下步骤:
步骤S401,获取各个根端口的总线分配状态,总线分配状态包括分配成功以及分配未成功。
如上,通过获取各个根端口的总线分配状态,以便于根据各个根端口的总线分配状态确定是否需对其进行总线资源调度。
详细请参见图1所示实施例的步骤S101,在此不再赘述。
步骤S402,对于总线分配状态为分配未成功的第一根端口,获取资源池中的空闲总线量以及第一根端口的最小总线需求量。
如上,对于总线分配状态为分配未成功的第一根端口,通过获取资源池中的空闲总线量以及第一根端口的最小总线需求量,以便于为第一根端口分配运行所需的最小总线需求量,避免后续分配未成功的第一根端口由于资源池中空闲总线量不足而造成再次总线分配失败,且提高了总线资源利用率。
详细请参见图1所示实施例的步骤S102,在此不再赘述。
步骤S403,若空闲总线量大于最小总线需求量,基于空闲总线量对第一根端口进行资源分配。
如上,通过在空闲总线量大于最小总线需求量,基于空闲总线量对第一根端口进行资源分配,降低了人工重启分配的时间成本及人工成本,提高了总线资源的资源分配效率,以及总线资源的资源利用率。
步骤S404,对于总线分配状态为分配成功的第二根端口,获取第二根端口中的可分配总线。
如上,通过对于总线分配状态为分配成功的第二根端口,获取第二根端口中的可分配总线,以便于获取分配成功的第二根端口中的可用总线及空闲总线,为可用总线及空闲总线的回收再利用提供必要条件,同时也为分配未成功的第一根端口对第二根端口中的可用总线及空闲总线进行占用提供必要条件。
步骤S405,将第二根端口中的可分配总线回收到资源池内。
如上,将第二根端口中的可分配总线回收到资源池内,为对分配未成功的第一根端口的总线分配提供必要条件。
在一些可选的实施方式中,将第二根端口中的可分配总线回收到资源池时,需将该可分配总线的总线状态变更为空闲总状态,以便于计算资源池中空闲的总线量。
本实施例提供的总线资源分配方法,首先通过获取各个根端口的总线分配状态,以便于根据各个根端口的总线分配状态确定是否需对其进行总线资源调度;通过对于总线分配状态为分配未成功的第一根端口,通过获取资源池中的空闲总线量以及第一根端口的最小总线需求量,以便于为第一根端口分配运行所需的最小总线需求量,避免后续分配未成功的第一根端口由于资源池中空闲总线量不足而造成再次总线分配失败,且提高了总线资源利用率;通过在空闲总线量大于最小总线需求量,基于空闲总线量对第一根端口进行资源分配,降低了人工重启分配的时间成本及人工成本,提高了总线资源的资源分配效率,以及总线资源的资源利用率;通过对于总线分配状态为分配成功的第二根端口,获取第二根端口中的可分配总线,以便于获取分配成功的第二根端口中的可用总线及空闲总线,为可用总线及空闲总线的回收再利用提供必要条件,同时也为分配未成功的第一根端口对第二根端口中的可用总线及空闲总线进行占用提供必要条件;将第二根端口中的可分配总线回收到资源池内,为对分配未成功的第一根端口的总线分配提供必要条件。因此,本发明可以降低资人工资源分配的时间成本,大幅提高设备的读写性能。
在本实施例中还提供了一种总线资源分配装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种总线资源分配装置,如图5所示,包括:
状态获取模块501,用于获取各个根端口的总线分配状态,总线分配状态包括分配成功以及分配未成功。
需求获取模块502,用于对于总线分配状态为分配未成功的第一根端口,获取资源池中的空闲总线量以及第一根端口的最小总线需求量。
总线获取模块503,用于若空闲总线量小于最小总线需求量,从总线分配状态为分配成功的第二根端口中筛选出可分配总线的根端口,以获取可分配总线。
总线分配模块504,用于基于可分配总线以及空闲总线量,对第一根端口进行资源分配。
在一些可选的实施方式中,状态获取模块501包括:
信息副本获取单元,用于将获取的总线资源信息及总线分配信息保存为信息副本,总线资源信息包括资源池,以及资源池的使用信息。
资源信息获取单元,用于基于信息副本获取总线资源信息。
分配任务获取单元,用于通过总线分配信息获取总线分配任务。
分配列表生成单元,用于从总线分配任务中筛选出根端口总线分配任务,并基于根端口总线分配任务及总线资源信息生成总线分配列表。
分配状态确定单元,用于基于总线分配列表确定各个根端口的总线分配状态。
在一些可选的实施方式中,分配状态确定单元还用于,获取待分配总线的根端口量;基于空闲总线量对各待分配总线的根端口进行总线平均分配;针对任一根端口,当根端口的总线量大于对应的最小总线需求量时,将根端口的总线分配状态变更为分配成功;当根端口的总线量小于对应的最小总线需求量时,将根端口的总线分配状态变更为分配未成功。
在一些可选的实施方式中,总线获取模块503包括:
总线量差值计算单元,用于计算空闲总线量与最小总线需求量之间的总线量差值。
总线配出单元,用于基于总线量差值,从分配成功的第二根端口中筛选出满足总线配出条件的目标根端口;总线配出条件包括第二根端口的总线量大于第二根端口的最小总线需求量。
总线调度单元,用于对目标根端口中的可配出总线进行总线占用的总线调度,得到可分配总线。
在一些可选的实施方式中,总线调度单元包括:
占用队列更新子单元,用于将第一根端口加入总线占用队列。
根端口排序子单元,用于对总线占用队列中的第一根端口进行排序。
总线操作子单元,用于按照顺序对目标根端口中的可配出总线进行总线占用的总线操作。
在一些可选的实施方式中,总线获取模块503,还用于若空闲总线量大于最小总线需求量,基于空闲总线量对第一根端口进行资源分配;对于总线分配状态为分配成功的第二根端口,获取第二根端口中的可分配总线;将第二根端口中的可分配总线回收到资源池内。
在一些可选的实施方式中,总线分配模块504还用于:
获取空闲总线中的可用总线量及使用量阈值;
将可用总线量与使用量阈值进行比对,得到比对结果;
当比对结果表征可用总线量等于使用量阈值时,停止总线占用的总线操作;
当比对结果表征可用总线量大于使用量阈值时,计算可用总线量中除去使用量阈值后的剩余总线量;
比对总线分配状态为分配未成功的第一根端口的最小总线需求量与剩余总线量的线量差值;
当线量差值表征最小总线需求量小于或等于剩余总线量时,基于剩余总线量对第一根端口进行资源分配,并对当前总线分配方案进行存储;
当线量差值最小总线需求量大于剩余总线量时,执行从总线分配状态为分配成功的第二根端口中筛选出可分配总线的根端口,以获取可分配总线的步骤;
当分配成功的第二根端口中无法筛选出可分配总线的根端口时,则生成资源池扩充请求,以增加资源池中的空闲总线量。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的总线资源分配装置是以功能单元的形式来呈现,这里的单元是指ASIC(ApplicationSpecificIntegratedCircuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述图5所示的总线资源分配装置。
请参阅图6,图6是本发明可选实施例提供的一种计算机设备的结构示意图,如图5所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,确定为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据一种小程序落地页的展现的计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、服务器集群、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种总线资源分配方法,其特征在于,所述方法包括:
获取各个根端口的总线分配状态,所述总线分配状态包括分配成功以及分配未成功;
对于所述总线分配状态为分配未成功的第一根端口,获取资源池中的空闲总线量以及所述第一根端口的最小总线需求量;
若所述空闲总线量小于所述最小总线需求量,从所述总线分配状态为分配成功的第二根端口中筛选出可分配总线的根端口,以获取所述可分配总线;
基于所述可分配总线以及所述空闲总线量,对所述第一根端口进行资源分配。
2.根据权利要求1所述的方法,其特征在于,所述从所述总线分配状态为分配成功的第二根端口中筛选出可分配总线的根端口,以获取所述可分配总线,包括:
计算所述空闲总线量与所述最小总线需求量之间的总线量差值;
基于所述总线量差值,从所述分配成功的第二根端口中筛选出满足总线配出条件的目标根端口;所述总线配出条件包括所述第二根端口的总线量大于所述第二根端口的最小总线需求量;
对所述目标根端口中的可配出总线进行总线占用的总线调度,得到所述可分配总线。
3.根据权利要求2所述的方法,其特征在于,所述对所述目标根端口中的可配出总线进行总线占用的总线调度,包括:
将所述第一根端口加入总线占用队列;
对所述总线占用队列中的第一根端口进行排序;
按照顺序对所述目标根端口中的可配出总线进行总线占用的总线操作。
4.根据权利要求3所述的方法,其特征在于,所述获取各个根端口的总线分配状态,包括:
将获取的总线资源信息及总线分配信息保存为信息副本,所述总线资源信息包括资源池,以及所述资源池的使用信息;
基于所述信息副本获取所述总线资源信息;
通过所述总线分配信息获取总线分配任务;
从所述总线分配任务中筛选出根端口总线分配任务,并基于所述根端口总线分配任务及所述总线资源信息生成所述总线分配列表;
基于所述总线分配列表确定各个根端口的总线分配状态。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取待分配总线的根端口量;
基于所述空闲总线量对各待分配总线的根端口进行总线平均分配;
针对任一所述根端口,当所述根端口的总线量大于对应的最小总线需求量时,将所述根端口的总线分配状态变更为分配成功;
当所述根端口的总线量小于对应的最小总线需求量时,将所述根端口的总线分配状态变更为分配未成功。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取所述空闲总线中的可用总线量及使用量阈值;
将所述可用总线量与所述使用量阈值进行比对,得到比对结果;
当所述比对结果表征所述可用总线量等于所述使用量阈值时,停止所述总线占用的总线操作;
当所述比对结果表征所述可用总线量大于所述使用量阈值时,计算所述可用总线量中除去所述使用量阈值后的剩余总线量;
比对所述总线分配状态为分配未成功的第一根端口的最小总线需求量与所述剩余总线量的线量差值;
当所述线量差值表征所述最小总线需求量小于或等于所述剩余总线量时,基于所述剩余总线量对所述第一根端口进行资源分配,并对当前总线分配方案进行存储;
当所述线量差值所述最小总线需求量大于所述剩余总线量时,执行从所述总线分配状态为分配成功的第二根端口中筛选出可分配总线的根端口,以获取所述可分配总线的步骤;
当所述分配成功的第二根端口中无法筛选出可分配总线的根端口时,则生成资源池扩充请求,以增加所述资源池中的空闲总线量。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述空闲总线量大于所述最小总线需求量,基于所述空闲总线量对所述第一根端口进行资源分配;
对于总线分配状态为分配成功的第二根端口,获取所述第二根端口中的可分配总线;
将所述第二根端口中的可分配总线回收到所述资源池内。
8.一种总线资源分配装置,其特征在于,所述装置包括:
状态获取模块,用于获取各个根端口的总线分配状态,所述总线分配状态包括分配成功以及分配未成功;
需求获取模块,用于对于所述总线分配状态为分配未成功的第一根端口,获取资源池中的空闲总线量以及所述第一根端口的最小总线需求量;
总线获取模块,用于若所述空闲总线量小于所述最小总线需求量,从所述总线分配状态为分配成功的第二根端口中筛选出可分配总线的根端口,以获取所述可分配总线;
总线分配模块,用于基于所述可分配总线以及所述空闲总线量,对所述第一根端口进行资源分配。
9.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311256364.1A CN117215793A (zh) | 2023-09-26 | 2023-09-26 | 总线资源分配方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311256364.1A CN117215793A (zh) | 2023-09-26 | 2023-09-26 | 总线资源分配方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117215793A true CN117215793A (zh) | 2023-12-12 |
Family
ID=89036932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311256364.1A Pending CN117215793A (zh) | 2023-09-26 | 2023-09-26 | 总线资源分配方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117215793A (zh) |
-
2023
- 2023-09-26 CN CN202311256364.1A patent/CN117215793A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102081574B (zh) | 用于加快系统的唤醒时间的方法和系统 | |
US8943353B2 (en) | Assigning nodes to jobs based on reliability factors | |
CN110389843B (zh) | 一种业务调度方法、装置、设备及可读存储介质 | |
CN111338779B (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
CN110633130A (zh) | 一种基于内存热插拔技术的虚拟内存管理方法和装置 | |
CN112148468A (zh) | 一种资源调度方法、装置、电子设备及存储介质 | |
CN112068960A (zh) | 一种cpu资源分配方法、装置、存储介质及设备 | |
CN116483546B (zh) | 分布式训练任务调度方法、装置、设备及存储介质 | |
CN113535087B (zh) | 数据迁移过程中的数据处理方法、服务器及存储系统 | |
CN106708865B (zh) | 流处理系统中访问窗口数据的方法和装置 | |
CN115185874B (zh) | 一种pcie资源的分配方法及相关装置 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN117215793A (zh) | 总线资源分配方法、装置、设备及存储介质 | |
CN110688130A (zh) | 物理机部署方法、装置、可读存储介质及电子设备 | |
CN105512091A (zh) | 一种内存分配方法及装置 | |
CN112463621B (zh) | 回归测试管理方法、存储介质管理方法、装置、设备及介质 | |
CN109271538A (zh) | 一种图片存储方法及相关设备 | |
CN110703988B (zh) | 一种分布式存储的存储池创建方法、系统、终端及存储介质 | |
CN114077493A (zh) | 一种资源分配方法及相关设备 | |
WO2018156062A1 (en) | Method and defragmentation module for defragmenting resources | |
CN116932143A (zh) | 虚拟机数量调整方法、装置、计算机设备及存储介质 | |
US20230118846A1 (en) | Systems and methods to reserve resources for workloads | |
CN118132199A (zh) | 云平台虚拟机创建方法、装置、计算机设备及存储介质 | |
CN115114023A (zh) | 线程池的线程分配方法、系统、终端及存储介质 | |
CN106326170A (zh) | 一种设备索引号分配方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |