CN118012796B - 中断资源管理方法、计算机设备及介质 - Google Patents
中断资源管理方法、计算机设备及介质 Download PDFInfo
- Publication number
- CN118012796B CN118012796B CN202410421986.3A CN202410421986A CN118012796B CN 118012796 B CN118012796 B CN 118012796B CN 202410421986 A CN202410421986 A CN 202410421986A CN 118012796 B CN118012796 B CN 118012796B
- Authority
- CN
- China
- Prior art keywords
- functions
- interrupt
- function
- resource allocation
- interrupt resource
- 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.)
- Active
Links
- 238000007726 management method Methods 0.000 title claims abstract description 22
- 230000006870 function Effects 0.000 claims abstract description 429
- 238000013468 resource allocation Methods 0.000 claims abstract description 187
- 238000012545 processing Methods 0.000 claims abstract description 78
- 238000000034 method Methods 0.000 claims abstract description 45
- 238000003860 storage Methods 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 12
- 230000006978 adaptation Effects 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 9
- 230000007246 mechanism Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 10
- 238000013439 planning Methods 0.000 description 10
- 230000008447 perception Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003863 physical function Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请涉及计算机技术领域并提供一种中断资源管理方法、计算机设备及介质。方法包括:通过部署在宿主机的逻辑侧的数据处理单元,确定由宿主机的驱动侧来驱动的多个功能;通过数据处理单元,至少基于驱动侧的第一中断资源分配策略和多个功能各自相关的时延性要求,选择一个或者多个功能;通过数据处理单元,至少在驱动侧按照第一中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作之前,向驱动侧发出与所述一个或者多个功能对应的中断资源分配失败反馈,从而使得驱动侧按照第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作。如此,提高中断资源利用率以及设备使用灵活度。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种中断资源管理方法、计算机设备及介质。
背景技术
随着外围器件互联(Peripheral Component Interconnect,PCI)技术以及快捷外围器件互联(Peripheral Component Interconnect Express,PCIe)技术的发展,越来越多的不同类型的设备挂接在宿主机上,而为了满足这些设备的输入输出请求,需要分配中断资源以满足如设备加载、进程切换、中断向量分配等需求。但是,宿主机的中断处理机制是通过总线操作进行,而受限于有限的总线操作资源,能够分配的中断资源是有限的,因此,面对增加的设备规模以及不同类型的各种设备,导致中断资源利用率低且设备使用灵活度低。
为此,本申请提供了一种中断资源管理方法、计算机设备及介质,用于应对现有技术中的技术难题。
发明内容
第一方面,本申请提供了一种中断资源管理方法。所述中断资源管理方法包括:通过部署在宿主机的逻辑侧的数据处理单元,确定由所述宿主机的驱动侧来驱动的多个功能;通过所述数据处理单元,至少基于所述驱动侧的第一中断资源分配策略和所述多个功能各自相关的时延性要求,选择所述多个功能中的一个或者多个功能,其中,所述驱动侧默认地按照所述第一中断资源分配策略对所述多个功能分别执行中断资源分配操作;通过所述数据处理单元,至少在所述驱动侧按照所述第一中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作之前,向所述驱动侧发出与所述一个或者多个功能对应的中断资源分配失败反馈,从而使得所述驱动侧按照第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作,其中,所述第一中断资源分配策略不同于所述第二中断资源分配策略,并且,所述第二中断资源分配策略与所述一个或者多个功能各自相关的时延性要求之间的适配程度高于所述第一中断资源分配策略与所述一个或者多个功能各自相关的时延性要求之间的适配程度。
通过本申请的第一方面,利用驱动侧的中断处理机制,由数据处理单元发出所选择的所述一个或者多个功能对应的中断资源分配失败反馈,因此,在不需要改动驱动内核且驱动侧无感知的情况下,实现了使得所述驱动侧按照第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作。如此,实现了对整体中断资源进行科学的规划,可以针对具体功能相关的时延性要求进行优化,最大化利用有限的中断资源,提高了中断资源的利用率,具备足够好的设备使用灵活度,并且可以适配日益增加的设备规模和设备类型。
在本申请的第一方面的一种可能的实现方式中,所述第一中断资源分配策略是按照队列分配中断资源,所述第二中断资源分配策略是按照功能分配中断资源,所述一个或者多个功能各自相关的时延性要求是低时延性要求,所述多个功能中除了所述一个或者多个功能以外的其它功能各自相关的时延性要求是高时延性要求。
在本申请的第一方面的一种可能的实现方式中,通过所述数据处理单元,至少基于所述驱动侧的第一中断资源分配策略和所述多个功能各自相关的时延性要求,选择所述多个功能中的所述一个或者多个功能,包括:针对所述多个功能中的每一个功能,基于用于加载该功能的应用,该功能相关联的应用场景,以及该功能的功能类型相对于该功能所归属的设备的设备类型,判断该功能相关的时延性要求是否是低时延性要求,如果是,确定该功能属于所述一个或者多个功能。
在本申请的第一方面的一种可能的实现方式中,当用于加载该功能的应用是游戏应用、视频应用、在线会议应用时,判断该功能相关的时延性要求是高时延性要求,并且,当用于加载该功能的应用是文本工具、非实时通话应用、或者电子邮件应用时,判断该功能相关的时延性要求是低时延性要求且属于所述一个或者多个功能。
在本申请的第一方面的一种可能的实现方式中,当该功能相关联的应用场景是高速数据传输、高性能计算中心、大型数据中心时,判断该功能相关的时延性要求是高时延性要求,并且,当该功能相关联的应用场景是嵌入式处理、微机电控制时,判断该功能相关的时延性要求是低时延性要求且属于所述一个或者多个功能。
在本申请的第一方面的一种可能的实现方式中,当该功能的功能类型与该功能所归属的设备的设备类型一致时,判断该功能相关的时延性要求是高时延性要求,并且,当该功能的功能类型与该功能所归属的设备的设备类型不一致时,判断该功能相关的时延性要求是低时延性要求且属于所述一个或者多个功能。
在本申请的第一方面的一种可能的实现方式中,该功能的功能类型是存储功能、网络功能、远程直接内存访问功能或者非易失性内存主机控制器接口功能,该功能所归属的设备的设备类型是存储设备、网络设备、远程直接内存访问设备或者非易失性内存主机控制器接口设备。
在本申请的第一方面的一种可能的实现方式中,所述驱动侧,响应于接收到来自所述数据处理单元的与所述一个或者多个功能对应的中断资源分配失败反馈,按照所述第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作。
在本申请的第一方面的一种可能的实现方式中,在所述驱动侧按照所述第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作之后,所述一个或者多个功能中的每一个功能各自对应的队列资源共享分配给该功能的中断资源。
在本申请的第一方面的一种可能的实现方式中,在所述驱动侧按照所述第一中断资源分配策略对所述多个功能中除了所述一个或者多个功能以外的其它功能分别执行中断资源分配操作之后,所述多个功能中除了所述一个或者多个功能以外的其它功能中的每一个功能各自对应的队列资源分别被分配中断资源。
在本申请的第一方面的一种可能的实现方式中,第一设备挂接在所述驱动侧并且具有单根输入输出虚拟化特性,所述第一设备包括至少两个虚拟功能,所述第一设备所包括的所述至少两个虚拟功能属于所述一个或者多个功能,在所述驱动侧按照所述第二中断资源分配策略对所述至少两个虚拟功能分别执行中断资源分配操作之后,所述至少两个虚拟功能分别被分配不同的中断资源。
在本申请的第一方面的一种可能的实现方式中,所述第一中断资源分配策略是按照功能分配中断资源,所述第二中断资源分配策略是不分配中断资源,所述一个或者多个功能各自相关的时延性要求是高时延性要求,所述多个功能中除了所述一个或者多个功能以外的其它功能各自相关的时延性要求是低时延性要求。
在本申请的第一方面的一种可能的实现方式中,所述驱动侧,响应于接收到来自所述数据处理单元的与所述一个或者多个功能对应的中断资源分配失败反馈,被禁止对所述一个或者多个功能分别执行中断资源分配操作。
在本申请的第一方面的一种可能的实现方式中,在所述驱动侧被禁止对所述一个或者多个功能分别执行中断资源分配操作之后,所述驱动侧对所述一个或者多个功能中的每一个功能各自对应的队列资源进行队列轮询。
在本申请的第一方面的一种可能的实现方式中,所述多个功能包括至少一个物理功能或者至少一个虚拟功能。
在本申请的第一方面的一种可能的实现方式中,多个设备挂接在所述驱动侧,所述多个设备中的每一个设备包括所述多个功能中的至少一个功能。
在本申请的第一方面的一种可能的实现方式中,所述多个功能中的每一个功能对应至少一个队列资源。
第二方面,本申请实施例还提供了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据上述任一方面的任一种实现方式的方法。
第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。
第四方面,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的指令,当所述指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种具有中断资源管理功能的宿主机的示意图;
图2为本申请实施例提供的一种中断资源管理方法的流程示意图;
图3为本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
下面将结合附图对本申请实施例作进一步地详细描述。
应当理解的是,在本申请的描述中,“至少一个”指一个或一个以上,“多个”指两个或两个以上。另外,“第一”、“第二”等词汇,除非另有说明,否则仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
图1为本申请实施例提供的一种具有中断资源管理功能的宿主机的示意图。如图1所示,宿主机包括驱动侧110和逻辑侧120,其中,数据处理单元130部署在逻辑侧120。多个功能在逻辑侧120,图1中示例性示出了功能A140,功能B142,功能C144。应当理解的是,图1中所示出的功能仅为说明性。功能A140,功能B142,功能C144可以是虚拟功能或者物理功能,可以是归属于同一个设备或者不同的设备,可以是属于同一种功能类型或者不同功能类型。例如,功能A140可以是存储功能并属于存储设备例如固态硬盘(Solid State Disk,SSD),功能B142可以是网络功能并属于网络设备如网卡。数据处理单元130可以通过虚拟化技术模拟生成一个或者多个功能,还可以通过挂接实际存在的物理设备到逻辑侧120以提供一个或者多个功能。因此,图1中所示出的多个功能可以是由数据处理单元130模拟生成的设备所提供,也可以是来自实质存在的物理设备或者由该物理设备虚拟化生成的虚拟设备所提供。例如可以通过单根输入输出虚拟化(Single Root I/O Virtualization,SRIOV),将一个物理硬盘虚拟化得到多个虚拟硬盘,多个虚拟硬盘的每一个虚拟硬盘都有一个虚拟功能用于实现对应的虚拟硬盘的存储功能。部署在逻辑侧120的多个功能,各自对应至少一个队列资源。一般来说,外围器件互联(Peripheral Component Interconnect,PCI)设备或者快捷外围器件互联(Peripheral Component Interconnect Express,PCIe)设备具有一个功能,可以对应一个或者多个队列资源。具有单根输入输出虚拟化特性的PCIe设备可以具有一个或者多个虚拟功能,每个虚拟功能可以对应一个或者多个队列资源。随着设备规模的增加,新的设备可以被增加,旧的设备可以被移除,不同类型的各种设备都可能挂接在逻辑侧,另外虚拟化技术如单根输入输出虚拟化技术可能进一步地增加功能数量和带来更多的功能类型。为了满足这些功能的输入输出需求,例如设备加载、进程切换、中断向量分配等,驱动侧110需要提供中断资源,从而可以利用中断处理机制,例如,向处理器提交中断请求等。驱动侧110与在逻辑侧120上的设备之间的交互是通过总线操作来进行,因此受限于有限的总线操作资源,这意味着驱动侧110可以调度的中断资源是有限的。宿主机的驱动侧110在加载某个设备的过程中,需要分配对应的中断资源,如果因为中断资源不足导致分配失败,则可能导致驱动侧110无法正确加载该设备。并且,在中断资源不足的情况下,可能需要通过中断转轮询的方式,例如在发生中断后通过轮询队列的方式以确定哪一个队列导致了中断。为此,需要提高中断资源的利用率,以及具备足够好的设备使用灵活度,从而可以适配日益增加的设备规模和设备类型。另外,驱动侧110可以运行各种虚拟化架构,半虚拟化架构,并且可能具有不同的驱动内核的配置,这意味着在驱动侧110对驱动内核的改动,可能导致较高的设计复杂度和损耗,因此从业务稳定性和降低设计复杂度的方面来看,应尽量保持不改动内核驱动的前提下实现中断资源管理的改进。下面结合本申请其它具体实施例进一步详细说明。
图2为本申请实施例提供的一种中断资源管理方法的流程示意图。如图2所示,所述中断资源管理方法包括以下步骤。
步骤S210:通过部署在宿主机的逻辑侧的数据处理单元,确定由所述宿主机的驱动侧来驱动的多个功能。
步骤S220:通过所述数据处理单元,至少基于所述驱动侧的第一中断资源分配策略和所述多个功能各自相关的时延性要求,选择所述多个功能中的一个或者多个功能,其中,所述驱动侧默认地按照所述第一中断资源分配策略对所述多个功能分别执行中断资源分配操作。
步骤S230:通过所述数据处理单元,至少在所述驱动侧按照所述第一中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作之前,向所述驱动侧发出与所述一个或者多个功能对应的中断资源分配失败反馈,从而使得所述驱动侧按照第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作,其中,所述第一中断资源分配策略不同于所述第二中断资源分配策略,并且,所述第二中断资源分配策略与所述一个或者多个功能各自相关的时延性要求之间的适配程度高于所述第一中断资源分配策略与所述一个或者多个功能各自相关的时延性要求之间的适配程度。
参阅图2,在步骤S210,通过部署在宿主机的逻辑侧的数据处理单元,确定由所述宿主机的驱动侧来驱动的多个功能。这里,多个功能可以是由数据处理单元模拟生成的设备所提供,也可以是来自实质存在的物理设备或者由该物理设备虚拟化生成的虚拟设备所提供。例如可以通过单根输入输出虚拟化,将一个物理硬盘虚拟化得到多个虚拟硬盘,多个虚拟硬盘的每一个虚拟硬盘都有一个虚拟功能用于实现对应的虚拟硬盘的存储功能。多个功能在逻辑侧,由所述宿主机的驱动侧来驱动。因此,为了满足多个功能的输入输出请求例如报文上下行,驱动侧需要提供中断资源,为多个功能进行中断资源分配。数据处理单元部署在逻辑侧,可以在功能层面确定需要由驱动侧来驱动的多个功能,例如可以通过数据处理单元确定在逻辑侧的网络设备的网络功能,存储设备的存储功能,以及其它设备的功能等。接着,在步骤S220,通过所述数据处理单元,至少基于所述驱动侧的第一中断资源分配策略和所述多个功能各自相关的时延性要求,选择所述多个功能中的一个或者多个功能。其中,所述驱动侧默认地按照所述第一中断资源分配策略对所述多个功能分别执行中断资源分配操作。这里,驱动侧的第一中断资源分配策略指的是驱动侧的默认的中断资源分配策略。一般来说,宿主机的驱动侧是在两种中断资源分配策略中选择其中一种作为默认的中断资源分配策略,这两种中断资源分配策略中一种是为每个队列资源分配一个中断资源也即按照队列分配中断资源,另一种是为每个功能分配一个中断资源也即按照功能分配中断资源。因此,所述驱动侧默认地按照所述第一中断资源分配策略对所述多个功能分别执行中断资源分配操作,意味着,在没有数据处理单元介入的前提下,所述驱动侧按照所述第一中断资源分配策略来为所述多个功能中的每一个功能分配中断资源。这里,通过数据处理单元,选择所述多个功能中的一个或者多个功能,这意味着由数据处理单元,在逻辑侧以硬件实现的方式,在功能层面进行中断资源策略,也就是进行功能级别的中断资源管理。其中,由数据处理单元选中的所述多个功能中的一个或者多个功能,可以通过打上标签,或者建立专门列表等方式,从而区分开其它功能。应当理解的是,数据处理单元是至少基于所述驱动侧的第一中断资源分配策略和所述多个功能各自相关的时延性要求,来选择所述多个功能中的一个或者多个功能,因此,被选中的一个或者多个功能,可能来自相同的设备或者不同的设备,可能具有相同的功能类型或者不同的功能类型。所述多个功能各自相关的时延性要求用于功能的选择,可以关联几个考量因素,包括用于加载该功能的应用如内核态、用户态、宿主机上的虚拟客户机等,该功能所在的应用场景对时延性的要求,以及该功能的类型相对于设备类型的关系等,下面进一步详细说明。
继续参阅图2,在步骤S230,通过所述数据处理单元,至少在所述驱动侧按照所述第一中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作之前,向所述驱动侧发出与所述一个或者多个功能对应的中断资源分配失败反馈,从而使得所述驱动侧按照第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作。其中,所述第一中断资源分配策略不同于所述第二中断资源分配策略,并且,所述第二中断资源分配策略与所述一个或者多个功能各自相关的时延性要求之间的适配程度高于所述第一中断资源分配策略与所述一个或者多个功能各自相关的时延性要求之间的适配程度。应当理解的是,如果没有数据处理单元的介入,也就是说如果数据处理单元没有向所述驱动侧发出与所述一个或者多个功能对应的中断资源分配失败反馈,则所述驱动侧默认地按照所述第一中断资源分配策略对所述多个功能分别执行中断资源分配操作。这里,因为数据处理单元,至少在所述驱动侧按照所述第一中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作之前,向所述驱动侧发出与所述一个或者多个功能对应的中断资源分配失败反馈,这样意味着驱动侧在接收到中断资源分配失败反馈后,则不会按照原本的中断资源分配策略来执行,也即不会按照默认的所述第一中断资源分配策略来执行,因此,实现了使得所述驱动侧按照第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作。应当理解的是,在宿主机提供的中断处理机制中,驱动侧在加载某个设备的过程中需要分配对应的中断资源,如果驱动侧得到了该设备的功能对应的中断资源分配失败反馈,则不会按照默认的中断资源分配策略来执行,虽然驱动侧还没有实际上按照默认的中断资源分配策略来执行,但是数据处理单元已经利用中断处理机制向驱动侧发出与所述一个或者多个功能对应的中断资源分配失败反馈。如此,在不需要改动驱动内核的前提下,利用驱动侧的中断处理机制,由数据处理单元发出所选择的所述一个或者多个功能对应的中断资源分配失败反馈,如此,在驱动侧无感知的情况下,实现了使得所述驱动侧按照第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作。进一步地,所述第一中断资源分配策略不同于所述第二中断资源分配策略,并且,所述第二中断资源分配策略与所述一个或者多个功能各自相关的时延性要求之间的适配程度高于所述第一中断资源分配策略与所述一个或者多个功能各自相关的时延性要求之间的适配程度。这意味着,通过使得所述驱动侧按照第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作,可以更好的适配所述一个或者多个功能各自相关的时延性要求。例如,对于时延性要求高的功能,可以使得所述驱动侧按照适配时延性要求高的功能的中断资源分配策略,例如每个队列分配一个中断资源,这样有助于避免中断转轮询操作的频次,从而可以提高数据传输性能。并且,对于时延性要求低的功能,可以采取适配时延性要求低的功能的中断资源分配策略,例如同一个功能的不同队列资源之间共享同一个中断资源,这样虽然需要通过中断转轮询操作来在中断发生之后轮询多个队列资源以确定哪一个队列资源导致中断,但是也节省了有限的中断资源。并且,对于时延性要求低的功能,一般不会需要使用全部的队列资源来收发数据,因此如果按照队列分配中断资源可能导致中断资源利用率低。如此,通过数据处理单元,可以确定由所述宿主机的驱动侧来驱动的多个功能并且进一步地选择需要进行中断资源分配策略调整的所述一个或者多个功能,然后,通过数据处理单元的介入,在不需要改动驱动内核且驱动侧无感知的情况下,使得所述驱动侧按照不同于驱动侧的默认中断资源分配策略(也即第一中断资源分配策略)的第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作,从而使得被选中的所述一个或者多个功能与整体中断资源分配结果之间有更好的适配性,有利于对整体中断资源进行科学的规划,可以针对具体功能相关的时延性要求进行优化,最大化利用有限的中断资源,提高了中断资源的利用率,具备足够好的设备使用灵活度,并且可以适配日益增加的设备规模和设备类型。
总之,图2所示的一种中断资源管理方法,利用驱动侧的中断处理机制,由数据处理单元发出所选择的所述一个或者多个功能对应的中断资源分配失败反馈,因此,在不需要改动驱动内核且驱动侧无感知的情况下,实现了使得所述驱动侧按照第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作。如此,实现了对整体中断资源进行科学的规划,可以针对具体功能相关的时延性要求进行优化,最大化利用有限的中断资源,提高了中断资源的利用率,具备足够好的设备使用灵活度,并且可以适配日益增加的设备规模和设备类型。
在一种可能的实施方式中,所述第一中断资源分配策略是按照队列分配中断资源,所述第二中断资源分配策略是按照功能分配中断资源,所述一个或者多个功能各自相关的时延性要求是低时延性要求,所述多个功能中除了所述一个或者多个功能以外的其它功能各自相关的时延性要求是高时延性要求。这里,按照队列分配中断资源,意味着为每个队列资源分配一个中断资源,因此,一个功能可以有多个队列,多个队列需要多个对应的中断资源,这样可以利用每个队列各自对应的中断资源执行中断操作,有利于确保不同队列的快速响应。按照功能分配中断资源,意味着为每一个功能分配一个中断资源,因此,一个功能可以有多个队列,同一个功能的多个队列之间需要共享分配给该功能的中断资源,这样在中断发生后可以通过轮询多个队列的方式来确定哪个队列导致了中断也即中断转轮询。一方面,所述驱动侧按照第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作,所述一个或者多个功能各自相关的时延性要求是低时延性要求,因此,驱动侧按照功能分配中断资源给所述一个或者多个功能,这样实现了按照功能分配中断资源与低时延性要求的功能之间的适配,最大化利用有限的中断资源,提高了中断资源的利用率。另一方面,所述驱动侧默认地按照所述第一中断资源分配策略对所述多个功能分别执行中断资源分配操作,所述多个功能中除了所述一个或者多个功能以外的其它功能各自相关的时延性要求是高时延性要求,因此,驱动侧默认地按照队列分配中断资源给所述一个或者多个功能以外的其它功能,这样实现了按照队列分配中断资源与高时延性要求的功能之间的适配,有利于提升数据传输性能。如此,利用驱动侧的中断处理机制,由数据处理单元发出所选择的所述一个或者多个功能对应的中断资源分配失败反馈,因此,在不需要改动驱动内核且驱动侧无感知的情况下,实现了使得所述驱动侧按照第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作。如此,实现了对整体中断资源进行科学的规划,可以针对具体功能相关的时延性要求进行优化,最大化利用有限的中断资源,提高了中断资源的利用率,具备足够好的设备使用灵活度,并且可以适配日益增加的设备规模和设备类型。
在一些实施例中,通过所述数据处理单元,至少基于所述驱动侧的第一中断资源分配策略和所述多个功能各自相关的时延性要求,选择所述多个功能中的所述一个或者多个功能,包括:针对所述多个功能中的每一个功能,基于用于加载该功能的应用,该功能相关联的应用场景,以及该功能的功能类型相对于该功能所归属的设备的设备类型,判断该功能相关的时延性要求是否是低时延性要求,如果是,确定该功能属于所述一个或者多个功能。这里,所述多个功能各自相关的时延性要求,是基于多种考量因素,包括用于加载该功能的应用,该功能相关联的应用场景,以及该功能的功能类型相对于该功能所归属的设备的设备类型。其中,用于加载该功能的应用可以是内核态、用户态、宿主机上的虚拟客户机上的具体应用程序、空间、软件等。该功能相关联的应用场景可以是宿主机所在的应用场景,也就体现了宿主机自身的中断资源分配上的倾向性。该功能的功能类型相对于该功能所归属的设备的设备类型体现了该功能对于该功能所归属的设备的性能表现的关键性。通过这些考量,可以确定每一个功能是否应判断为低时延性要求,或者,相对的应判断为高时延性要求,从而为后续中断资源分配提供依据。
在一些实施例中,当用于加载该功能的应用是游戏应用、视频应用、在线会议应用时,判断该功能相关的时延性要求是高时延性要求,并且,当用于加载该功能的应用是文本工具、非实时通话应用、或者电子邮件应用时,判断该功能相关的时延性要求是低时延性要求且属于所述一个或者多个功能。这里,游戏应用、视频应用、在线会议应用等对时延性要求高,也即要求做到低时延的数据传输,因此用于加载该功能的这些应用意味着该功能相关的时延性要求是高时延性要求。文本工具、非实时通话应用、或者电子邮件应用等对时延性要求较低,并且一般不要求实时的或者及时的做出回应,因此用于加载该功能的这些应用意味着该功能相关的时延性要求是低时延性要求。如此,基于加载功能的具体应用,实现了对整体中断资源进行科学的规划,可以针对具体功能相关的时延性要求进行优化,最大化利用有限的中断资源,提高了中断资源的利用率,具备足够好的设备使用灵活度,并且可以适配日益增加的设备规模和设备类型。
在一些实施例中,当该功能相关联的应用场景是高速数据传输、高性能计算中心、大型数据中心时,判断该功能相关的时延性要求是高时延性要求,并且,当该功能相关联的应用场景是嵌入式处理、微机电控制时,判断该功能相关的时延性要求是低时延性要求且属于所述一个或者多个功能。这里,高速数据传输、高性能计算中心、大型数据中心等需要处理大规模的数据流量并且对数据传输速率、响应速度等提出较高的要求,因此该功能相关联的这些应用场景意味着该功能相关的时延性要求是高时延性要求。嵌入式处理、微机电控制等一般只需要处理有限的数据流量,因此该功能相关联的这些应用场景意味着该功能相关的时延性要求是低时延性要求。如此,基于功能相关联的应用场景,实现了对整体中断资源进行科学的规划,可以针对具体功能相关的时延性要求进行优化,最大化利用有限的中断资源,提高了中断资源的利用率,具备足够好的设备使用灵活度,并且可以适配日益增加的设备规模和设备类型。
在一些实施例中,当该功能的功能类型与该功能所归属的设备的设备类型一致时,判断该功能相关的时延性要求是高时延性要求,并且,当该功能的功能类型与该功能所归属的设备的设备类型不一致时,判断该功能相关的时延性要求是低时延性要求且属于所述一个或者多个功能。这里,该功能的功能类型相对于该功能所归属的设备的设备类型体现了该功能对于该功能所归属的设备的性能表现的关键性。例如,该功能所归属的设备是存储设备,则存储功能类型的功能对存储设备的性能表现是关键,因此,当该功能的功能类型与该功能所归属的设备的设备类型一致时,为了提升设备性能,应判断该功能相关的时延性要求是高时延性要求,并且,在中断资源分配策略上选择能满足高时延性要求的如按照队列分配中断资源,这样实现了按照队列分配中断资源与高时延性要求的功能之间的适配,有利于提升数据传输性能。在一些示例中,该功能的功能类型是存储功能、网络功能、远程直接内存访问功能或者非易失性内存主机控制器接口功能,该功能所归属的设备的设备类型是存储设备、网络设备、远程直接内存访问设备或者非易失性内存主机控制器接口设备。如此,可以适配日益增加的设备规模和设备类型。
在一些实施例中,所述驱动侧,响应于接收到来自所述数据处理单元的与所述一个或者多个功能对应的中断资源分配失败反馈,按照所述第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作。如此,通过数据处理单元,可以确定由所述宿主机的驱动侧来驱动的多个功能并且进一步地选择需要进行中断资源分配策略调整的所述一个或者多个功能,然后,通过数据处理单元的介入,在不需要改动驱动内核且驱动侧无感知的情况下,使得所述驱动侧按照不同于驱动侧的默认中断资源分配策略(也即第一中断资源分配策略)的第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作,从而使得被选中的所述一个或者多个功能与整体中断资源分配结果之间有更好的适配性,有利于对整体中断资源进行科学的规划,可以针对具体功能相关的时延性要求进行优化,最大化利用有限的中断资源,提高了中断资源的利用率,具备足够好的设备使用灵活度,并且可以适配日益增加的设备规模和设备类型。
在一些实施例中,在所述驱动侧按照所述第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作之后,所述一个或者多个功能中的每一个功能各自对应的队列资源共享分配给该功能的中断资源。如此,节省了有限的中断资源。并且,对于时延性要求低的功能,一般不会需要使用全部的队列资源来收发数据,因此如果按照队列分配中断资源可能导致中断资源利用率低。如此,对整体中断资源进行科学的规划,可以针对具体功能相关的时延性要求进行优化,最大化利用有限的中断资源,提高了中断资源的利用率,具备足够好的设备使用灵活度,并且可以适配日益增加的设备规模和设备类型。
在一些实施例中,在所述驱动侧按照所述第一中断资源分配策略对所述多个功能中除了所述一个或者多个功能以外的其它功能分别执行中断资源分配操作之后,所述多个功能中除了所述一个或者多个功能以外的其它功能中的每一个功能各自对应的队列资源分别被分配中断资源。如此,对整体中断资源进行科学的规划,可以针对具体功能相关的时延性要求进行优化,最大化利用有限的中断资源,提高了中断资源的利用率,具备足够好的设备使用灵活度,并且可以适配日益增加的设备规模和设备类型。
在一些实施例中,第一设备挂接在所述驱动侧并且具有单根输入输出虚拟化特性,所述第一设备包括至少两个虚拟功能,所述第一设备所包括的所述至少两个虚拟功能属于所述一个或者多个功能,在所述驱动侧按照所述第二中断资源分配策略对所述至少两个虚拟功能分别执行中断资源分配操作之后,所述至少两个虚拟功能分别被分配不同的中断资源。如此,对整体中断资源进行科学的规划,可以针对具体功能相关的时延性要求进行优化,最大化利用有限的中断资源,提高了中断资源的利用率,具备足够好的设备使用灵活度,并且可以适配日益增加的设备规模和设备类型。
在一种可能的实施方式中,所述第一中断资源分配策略是按照功能分配中断资源,所述第二中断资源分配策略是不分配中断资源,所述一个或者多个功能各自相关的时延性要求是高时延性要求,所述多个功能中除了所述一个或者多个功能以外的其它功能各自相关的时延性要求是低时延性要求。按照功能分配中断资源,意味着为每一个功能分配一个中断资源,因此,一个功能可以有多个队列,同一个功能的多个队列之间需要共享分配给该功能的中断资源,这样在中断发生后可以通过轮询多个队列的方式来确定哪个队列导致了中断也即中断转轮询。所述驱动侧默认地按照所述第一中断资源分配策略对所述多个功能分别执行中断资源分配操作,因此,驱动侧默认地按照功能分配中断资源给所述多个功能。在一些应用场景中,例如嵌入式处理器、微机电控制器,受限于有限的中断资源,驱动侧默认地按照功能分配中断资源。因此,数据处理单元可以直接禁止掉中断资源的分配,也就是采取所述第二中断资源分配策略也即不分配中断资源。这样,驱动侧按照第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作,则直接跳过了中断环节,直接开始轮询队列。因此,对于所述一个或者多个功能各自相关的时延性要求是高时延性要求,所述第二中断资源分配策略也即不分配中断资源,意味着跳过了中断环节,有助于提升数据传输性能。
在一些实施例中,所述驱动侧,响应于接收到来自所述数据处理单元的与所述一个或者多个功能对应的中断资源分配失败反馈,被禁止对所述一个或者多个功能分别执行中断资源分配操作。如此,直接跳过了中断环节,直接开始轮询队列。因此,对于所述一个或者多个功能各自相关的时延性要求是高时延性要求,所述第二中断资源分配策略也即不分配中断资源,意味着跳过了中断环节,有助于提升数据传输性能。
在一些实施例中,在所述驱动侧被禁止对所述一个或者多个功能分别执行中断资源分配操作之后,所述驱动侧对所述一个或者多个功能中的每一个功能各自对应的队列资源进行队列轮询。如此,直接跳过了中断环节,直接开始轮询队列。因此,对于所述一个或者多个功能各自相关的时延性要求是高时延性要求,所述第二中断资源分配策略也即不分配中断资源,意味着跳过了中断环节,有助于提升数据传输性能。
在一种可能的实施方式中,所述多个功能包括至少一个物理功能或者至少一个虚拟功能。如此,利用驱动侧的中断处理机制,由数据处理单元发出所选择的所述一个或者多个功能对应的中断资源分配失败反馈,因此,在不需要改动驱动内核且驱动侧无感知的情况下,实现了使得所述驱动侧按照第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作。如此,实现了对整体中断资源进行科学的规划,可以针对具体功能相关的时延性要求进行优化,最大化利用有限的中断资源,提高了中断资源的利用率,具备足够好的设备使用灵活度,并且可以适配日益增加的设备规模和设备类型。
在一种可能的实施方式中,多个设备挂接在所述驱动侧,所述多个设备中的每一个设备包括所述多个功能中的至少一个功能。如此,利用驱动侧的中断处理机制,由数据处理单元发出所选择的所述一个或者多个功能对应的中断资源分配失败反馈,因此,在不需要改动驱动内核且驱动侧无感知的情况下,实现了使得所述驱动侧按照第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作。如此,实现了对整体中断资源进行科学的规划,可以针对具体功能相关的时延性要求进行优化,最大化利用有限的中断资源,提高了中断资源的利用率,具备足够好的设备使用灵活度,并且可以适配日益增加的设备规模和设备类型。
在一种可能的实施方式中,所述多个功能中的每一个功能对应至少一个队列资源。如此,利用驱动侧的中断处理机制,由数据处理单元发出所选择的所述一个或者多个功能对应的中断资源分配失败反馈,因此,在不需要改动驱动内核且驱动侧无感知的情况下,实现了使得所述驱动侧按照第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作。如此,实现了对整体中断资源进行科学的规划,可以针对具体功能相关的时延性要求进行优化,最大化利用有限的中断资源,提高了中断资源的利用率,具备足够好的设备使用灵活度,并且可以适配日益增加的设备规模和设备类型。
图3是本申请实施例提供的一种计算设备的结构示意图,该计算设备300包括:一个或者多个处理器310、通信接口320以及存储器330。所述处理器310、通信接口320以及存储器330通过总线340相互连接。可选地,该计算设备300还可以包括输入/输出接口350,输入/输出接口350连接有输入/输出设备,用于接收用户设置的参数等。该计算设备300能够用于实现上述的本申请实施例中设备实施例或者系统实施例的部分或者全部功能;处理器310还能够用于实现上述的本申请实施例中方法实施例的部分或者全部操作步骤。例如,该计算设备300执行各种操作的具体实现可参照上述实施例中的具体细节,如处理器310用于执行上述方法实施例中部分或者全部步骤或者上述方法实施例中的部分或者全部操作。再例如,本申请实施例中,计算设备300可用于实现上述装置实施例中一个或者多个部件的部分或者全部功能,此外通信接口320具体可用于为了实现这些装置、部件的功能所必须的通讯功能等,以及处理器310具体可用于为了实现这些装置、部件的功能所必须的处理功能等。
应当理解的是,图3的计算设备300可以包括一个或者多个处理器310,并且多个处理器310可以按照并行化连接方式、串行化连接方式、串并行连接方式或者任意连接方式来协同提供处理能力,或者多个处理器310可以构成处理器序列或者处理器阵列,或者多个处理器310之间可以分成主处理器和辅助处理器,或者多个处理器310之间可以具有不同的架构如采用异构计算架构。另外,图3所示的计算设备300,相关的结构性描述及功能性描述是示例性且非限制性的。在一些示例性实施例中,计算设备300可以包括比图3所示的更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者具有不同的部件布置。
处理器310可以有多种具体实现形式,例如处理器310可以包括中央处理器(central processing unit,CPU)、图形处理器(graphic processing unit,GPU)、神经网络处理器(neural-network processing unit,NPU)、张量处理器(tensor processingunit,TPU)或数据处理器(data processing unit,DPU)等一种或多种的组合,本申请实施例不做具体限定。处理器310还可以是单核处理器或多核处理器。处理器310可以由CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integratedcircuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。处理器310也可以单独采用内置处理逻辑的逻辑器件来实现,例如FPGA或数字信号处理器(digital signal processor,DSP)等。通信接口320可以为有线接口或无线接口,用于与其他模块或设备进行通信,有线接口可以是以太接口、局域互联网络(local interconnect network,LIN)等,无线接口可以是蜂窝网络接口或使用无线局域网接口等。
存储器330可以是非易失性存储器,例如,只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。存储器330也可以是易失性存储器,易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。存储器330也可用于存储程序代码和数据,以便于处理器310调用存储器330中存储的程序代码执行上述方法实施例中的部分或者全部操作步骤,或者执行上述设备实施例中的相应功能。此外,计算设备300可能包含相比于图3展示的更多或者更少的组件,或者有不同的组件配置方式。
总线340可以是快捷外围部件互连标准(peripheral component interconnectexpress,PCIe)总线,或扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherent interconnect for accelerators,CCIX)等。总线340可以分为地址总线、数据总线、控制总线等。总线340除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例提供的方法和设备是基于同一发明构思的,由于方法及设备解决问题的原理相似,因此方法与设备的实施例、实施方式、示例或实现方式可以相互参见,其中重复之处不再赘述。本申请实施例还提供一种系统,该系统包括多个计算设备,每个计算设备的结构可以参照上述所描述的计算设备的结构。该系统可实现的功能或者操作可以参照上述方法实施例中的具体实现步骤和/或上述装置实施例中所描述的具体功能,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,当所述计算机指令在计算机设备(如一个或者多个处理器)上运行时可以实现上述方法实施例中的方法步骤。所述计算机可读存储介质的处理器在执行上述方法步骤的具体实现可参照上述方法实施例中所描述的具体操作和/或上述装置实施例中所描述的具体功能,在此不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。本申请实施例可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(如软盘、硬盘、磁带)、光介质、或者半导体介质。半导体介质可以是固态硬盘,也可以是随机存取存储器,闪存,只读存储器,可擦可编程只读存储器,电可擦可编程只读存储器,寄存器或任何其他形式的合适存储介质。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并或删减;本申请实施例系统中的模块可以根据实际需要进行划分、合并或删减。如果本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (19)
1.一种中断资源管理方法,其特征在于,所述中断资源管理方法包括:
通过部署在宿主机的逻辑侧的数据处理单元,确定由所述宿主机的驱动侧来驱动的多个功能;
通过所述数据处理单元,至少基于所述驱动侧的第一中断资源分配策略和所述多个功能各自相关的时延性要求,选择所述多个功能中的一个或者多个功能,其中,所述驱动侧默认地按照所述第一中断资源分配策略对所述多个功能分别执行中断资源分配操作;
通过所述数据处理单元,至少在所述驱动侧按照所述第一中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作之前,向所述驱动侧发出与所述一个或者多个功能对应的中断资源分配失败反馈,从而使得所述驱动侧按照第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作,其中,所述第一中断资源分配策略不同于所述第二中断资源分配策略,并且,所述第二中断资源分配策略与所述一个或者多个功能各自相关的时延性要求之间的适配程度高于所述第一中断资源分配策略与所述一个或者多个功能各自相关的时延性要求之间的适配程度。
2.根据权利要求1所述的中断资源管理方法,其特征在于,所述第一中断资源分配策略是按照队列分配中断资源,所述第二中断资源分配策略是按照功能分配中断资源,所述一个或者多个功能各自相关的时延性要求是低时延性要求,所述多个功能中除了所述一个或者多个功能以外的其它功能各自相关的时延性要求是高时延性要求。
3.根据权利要求2所述的中断资源管理方法,其特征在于,通过所述数据处理单元,至少基于所述驱动侧的第一中断资源分配策略和所述多个功能各自相关的时延性要求,选择所述多个功能中的所述一个或者多个功能,包括:
针对所述多个功能中的每一个功能,基于用于加载该功能的应用,该功能相关联的应用场景,以及该功能的功能类型相对于该功能所归属的设备的设备类型,判断该功能相关的时延性要求是否是低时延性要求,如果是,确定该功能属于所述一个或者多个功能。
4.根据权利要求3所述的中断资源管理方法,其特征在于,当用于加载该功能的应用是游戏应用、视频应用、在线会议应用时,判断该功能相关的时延性要求是高时延性要求,并且,当用于加载该功能的应用是文本工具、非实时通话应用、或者电子邮件应用时,判断该功能相关的时延性要求是低时延性要求且属于所述一个或者多个功能。
5.根据权利要求3所述的中断资源管理方法,其特征在于,当该功能相关联的应用场景是高速数据传输、高性能计算中心、大型数据中心时,判断该功能相关的时延性要求是高时延性要求,并且,当该功能相关联的应用场景是嵌入式处理、微机电控制时,判断该功能相关的时延性要求是低时延性要求且属于所述一个或者多个功能。
6.根据权利要求3所述的中断资源管理方法,其特征在于,当该功能的功能类型与该功能所归属的设备的设备类型一致时,判断该功能相关的时延性要求是高时延性要求,并且,当该功能的功能类型与该功能所归属的设备的设备类型不一致时,判断该功能相关的时延性要求是低时延性要求且属于所述一个或者多个功能。
7.根据权利要求6所述的中断资源管理方法,其特征在于,该功能的功能类型是存储功能、网络功能、远程直接内存访问功能或者非易失性内存主机控制器接口功能,该功能所归属的设备的设备类型是存储设备、网络设备、远程直接内存访问设备或者非易失性内存主机控制器接口设备。
8.根据权利要求2所述的中断资源管理方法,其特征在于,所述驱动侧,响应于接收到来自所述数据处理单元的与所述一个或者多个功能对应的中断资源分配失败反馈,按照所述第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作。
9.根据权利要求8所述的中断资源管理方法,其特征在于,在所述驱动侧按照所述第二中断资源分配策略对所述一个或者多个功能分别执行中断资源分配操作之后,所述一个或者多个功能中的每一个功能各自对应的队列资源共享分配给该功能的中断资源。
10.根据权利要求9所述的中断资源管理方法,其特征在于,在所述驱动侧按照所述第一中断资源分配策略对所述多个功能中除了所述一个或者多个功能以外的其它功能分别执行中断资源分配操作之后,所述多个功能中除了所述一个或者多个功能以外的其它功能中的每一个功能各自对应的队列资源分别被分配中断资源。
11.根据权利要求8所述的中断资源管理方法,其特征在于,第一设备挂接在所述驱动侧并且具有单根输入输出虚拟化特性,所述第一设备包括至少两个虚拟功能,所述第一设备所包括的所述至少两个虚拟功能属于所述一个或者多个功能,在所述驱动侧按照所述第二中断资源分配策略对所述至少两个虚拟功能分别执行中断资源分配操作之后,所述至少两个虚拟功能分别被分配不同的中断资源。
12.根据权利要求1所述的中断资源管理方法,其特征在于,所述第一中断资源分配策略是按照功能分配中断资源,所述第二中断资源分配策略是不分配中断资源,所述一个或者多个功能各自相关的时延性要求是高时延性要求,所述多个功能中除了所述一个或者多个功能以外的其它功能各自相关的时延性要求是低时延性要求。
13.根据权利要求12所述的中断资源管理方法,其特征在于,所述驱动侧,响应于接收到来自所述数据处理单元的与所述一个或者多个功能对应的中断资源分配失败反馈,被禁止对所述一个或者多个功能分别执行中断资源分配操作。
14.根据权利要求13所述的中断资源管理方法,其特征在于,在所述驱动侧被禁止对所述一个或者多个功能分别执行中断资源分配操作之后,所述驱动侧对所述一个或者多个功能中的每一个功能各自对应的队列资源进行队列轮询。
15.根据权利要求1所述的中断资源管理方法,其特征在于,所述多个功能包括至少一个物理功能或者至少一个虚拟功能。
16.根据权利要求1所述的中断资源管理方法,其特征在于,多个设备挂接在所述驱动侧,所述多个设备中的每一个设备包括所述多个功能中的至少一个功能。
17.根据权利要求1所述的中断资源管理方法,其特征在于,所述多个功能中的每一个功能对应至少一个队列资源。
18.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据权利要求1至17中任一项所述的方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据权利要求1至17中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410421986.3A CN118012796B (zh) | 2024-04-09 | 2024-04-09 | 中断资源管理方法、计算机设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410421986.3A CN118012796B (zh) | 2024-04-09 | 2024-04-09 | 中断资源管理方法、计算机设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118012796A CN118012796A (zh) | 2024-05-10 |
CN118012796B true CN118012796B (zh) | 2024-06-18 |
Family
ID=90945841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410421986.3A Active CN118012796B (zh) | 2024-04-09 | 2024-04-09 | 中断资源管理方法、计算机设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118012796B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116382913A (zh) * | 2023-04-07 | 2023-07-04 | 海宁奕斯伟集成电路设计有限公司 | 资源分配装置、方法、电子设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6141703A (en) * | 1998-07-21 | 2000-10-31 | Hewlett-Packard Company | Interrupt sharing system assigning each interrupt request signal to a select one of system interrupt signals based on characteristic data of each peripheral device |
-
2024
- 2024-04-09 CN CN202410421986.3A patent/CN118012796B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116382913A (zh) * | 2023-04-07 | 2023-07-04 | 海宁奕斯伟集成电路设计有限公司 | 资源分配装置、方法、电子设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
基于MPC8250和嵌入式Linux的中断处理;宫炜 等;航空计算技术;20070315;第37卷(第2期);第84-87页 * |
Also Published As
Publication number | Publication date |
---|---|
CN118012796A (zh) | 2024-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10365830B2 (en) | Method, device, and system for implementing hardware acceleration processing | |
US10572290B2 (en) | Method and apparatus for allocating a physical resource to a virtual machine | |
US12001681B2 (en) | Distributed storage system and data processing method | |
CN109375872B (zh) | 数据访问请求的处理方法、装置和设备及存储介质 | |
US10698717B2 (en) | Accelerator virtualization method and apparatus, and centralized resource manager | |
CN109726005B (zh) | 用于管理资源的方法、服务器系统和计算机可读介质 | |
EP3242440A1 (en) | Fault tolerant method, apparatus and system for virtual machine | |
CN113641457A (zh) | 容器创建方法、装置、设备、介质及程序产品 | |
CN109284192B (zh) | 参数配置方法及电子设备 | |
CN115857995B (zh) | 一种用于互联设备升级的方法、介质及计算设备 | |
CN115934625B (zh) | 一种用于远程直接内存访问的敲门铃方法、设备及介质 | |
CN117519908B (zh) | 一种虚拟机热迁移方法、计算机设备及介质 | |
CN114691286A (zh) | 服务器系统、虚拟机创建方法及装置 | |
CN116049085A (zh) | 一种数据处理系统及方法 | |
CN114721818A (zh) | 一种基于Kubernetes集群的GPU分时共享方法和系统 | |
CN111158905A (zh) | 调整资源的方法和装置 | |
CN117909031A (zh) | 用于数据处理单元的报文处理方法、计算机设备及介质 | |
CN118012796B (zh) | 中断资源管理方法、计算机设备及介质 | |
CN115934624B (zh) | 多主机远程直接内存访问网络管理的方法、设备及介质 | |
WO2022142515A1 (zh) | 管理实例的方法、装置以及云应用引擎 | |
CN118055077B (zh) | 用于总线带宽资源分配的方法、计算机设备及介质 | |
CN118138547B (zh) | 用于发包描述符获取的方法、计算机设备及介质 | |
CN115858018B (zh) | 一种嵌入式系统的自适应寄存器更新方法、设备及介质 | |
CN118331747B (zh) | 用于数据处理器的转发方法、计算机设备及介质 | |
WO2022057754A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |