CN118055077B - Method, computer device and medium for bus bandwidth resource allocation - Google Patents
Method, computer device and medium for bus bandwidth resource allocation Download PDFInfo
- Publication number
- CN118055077B CN118055077B CN202410453737.2A CN202410453737A CN118055077B CN 118055077 B CN118055077 B CN 118055077B CN 202410453737 A CN202410453737 A CN 202410453737A CN 118055077 B CN118055077 B CN 118055077B
- Authority
- CN
- China
- Prior art keywords
- group
- level
- bandwidth
- bandwidth resource
- category
- 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
- 238000013468 resource allocation Methods 0.000 title claims abstract description 111
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000012545 processing Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 14
- 230000002093 peripheral effect Effects 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 9
- 238000004088 simulation Methods 0.000 claims description 3
- 230000006978 adaptation Effects 0.000 abstract description 11
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000004065 semiconductor Substances 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
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004403 ethyl p-hydroxybenzoate Substances 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The application relates to the technical field of computers and provides a method, computer equipment and medium for bus bandwidth resource allocation. The method comprises the following steps: determining a first port and a plurality of devices hooked under the first port; determining a port level maximum allowed bandwidth resource of the first port, and determining a device level minimum required bandwidth resource and a device level maximum allowed bandwidth resource of each of the plurality of devices; dividing the plurality of devices into at least two groups. As such, flexible adaptation to complex and diverse bandwidth resource allocation needs is facilitated as well as to an increasing device size.
Description
Technical Field
The present application relates to the field of computer technologies, and in particular, to a method, a computer device, and a medium for allocating bus bandwidth resources.
Background
With the development of data processing units and virtualization technologies, and the popularization of bus standards such as high-speed serial computer expansion bus standards, numerous and different types of devices are simulated or virtualized, such as network card devices, storage devices, and the like. These devices are inconsistent in bandwidth resource occupancy, and some devices may preempt all bandwidth resources of the entire board without restriction. In the prior art, in order to meet the configuration requirement of bandwidth resources, the bandwidth resources are divided into storage modules, communication modules and the like according to device types, and bandwidth resources are allocated, but it is difficult to cope with increasing device sizes and complicated and variable user requirements.
To this end, the present application provides a method, a computer device, and a medium for bus bandwidth resource allocation, which are used to solve the technical problems in the prior art.
Disclosure of Invention
In a first aspect, the present application provides a method for bus bandwidth resource allocation. The method comprises the following steps: determining a first port and a plurality of devices hooked under the first port; determining a port level maximum allowed bandwidth resource of the first port, and determining a device level minimum required bandwidth resource and a device level maximum allowed bandwidth resource of each of the plurality of devices; dividing the plurality of devices into at least two groups, wherein each of the at least two groups belongs to one of a plurality of group categories, each of the plurality of group categories has a group level maximum allowed bandwidth resource and a group level bandwidth resource allocation policy, a sum of the group level maximum allowed bandwidth resources of each of the at least two groups does not exceed a port level maximum allowed bandwidth resource of the first port, a sum of the device level maximum allowed bandwidth resources of each of the at least two groups does not exceed a group level maximum allowed bandwidth resource of the group, wherein the plurality of group categories include a first group category, a second group category, a third group category and a fourth group category, wherein the group level bandwidth resource allocation policy of the first group category is to allocate bandwidth resources according to a device level minimum required bandwidth resource, the group level bandwidth resource allocation policy of the second group category is to allocate bandwidth resources by contention, the group level bandwidth resource allocation policy of the third group category is to allocate bandwidth resources according to a minimum level bandwidth resource, the group level bandwidth resource allocation policy of the third group category is to allocate bandwidth resources by contention with the second group level bandwidth resource, the group level bandwidth resources of the second group category is to a second group level bandwidth resource, or the group level bandwidth resource belongs to the first group category, the group category belongs to the second group category, and the group class bandwidth resource belongs to the fourth group category.
According to the first aspect of the application, the three-level structure comprising port-level bandwidth resource allocation information, group-level bandwidth resource allocation information and equipment-level bandwidth resource allocation information is established on the global level, so that the limitation of upper-layer service on the first port-related allocable bandwidth resources is met, the bandwidth resources occupied by equipment under the first port are not exceeded the maximum allowed bandwidth resources of the port level of the first port when the system is started and initialized and in the running process of the system, and the service stability is improved; and, by establishing the bandwidth resource allocation information at the group level, as an intermediate hierarchy between the bandwidth resource allocation information at the port level and the bandwidth resource allocation information at the device level, not only the minimum bandwidth resource required by the device level in order to ensure normal operation, that is, the minimum bandwidth resource required at the device level of each of the plurality of devices, but also how much to exert the self-performance of the device by dividing a specific device into groups belonging to the specific group category can be controlled, and whether to provide independent bandwidth resources for the device can be selected, which is helpful for flexibly adapting to the complex and variable bandwidth resource allocation needs and adapting to the increasing device scale.
In a possible implementation manner of the first aspect of the present application, dividing the plurality of devices into the at least two groups includes:
Dividing the plurality of devices into the at least two groups based on respective bandwidth allocation priorities of the plurality of devices and respective group-level bandwidth resource allocation policies of the at least two groups.
In a possible implementation manner of the first aspect of the present application, the plurality of devices includes a first device, the first device is divided into the first group when the bandwidth allocation priority of the first device is a low bandwidth allocation priority, and the first device is divided into the second group when the bandwidth allocation priority of the first device is a high bandwidth allocation priority.
In a possible implementation manner of the first aspect of the present application, when the first device is a storage device for non-real-time communication, the bandwidth allocation priority of the first device is a low bandwidth allocation priority, and when the first device is a network device for a data center, a game or a video, the bandwidth allocation priority of the first device is a high bandwidth allocation priority.
In a possible implementation manner of the first aspect of the present application, each of the at least two groups includes devices having the same device type or different device types.
In a possible implementation manner of the first aspect of the present application, bandwidth resources allocated by each of the devices included in the group belonging to the second group category in the at least two groups are all obtained by competing for the group-level maximum allowed bandwidth resources of the group.
In a possible implementation manner of the first aspect of the present application, the bandwidth resources allocated by each of the devices included in the group belonging to the third group category of the at least two groups include a minimum required bandwidth resource at the device level and are obtained at least in part by competing for a maximum allowed bandwidth resource at the group level for the group.
In a possible implementation manner of the first aspect of the present application, the plurality of devices includes a second device, the second device is divided into a third group of the at least two groups based on a bandwidth allocation priority of the second device, and the method further includes: and transferring the second device from the third group to a fourth group of the at least two groups based on the bandwidth usage degree of the second device, and reallocating bandwidth resources to the second device according to a group-level maximum allowed bandwidth resource and a group-level bandwidth resource allocation policy of the fourth group, wherein the group category of the fourth group is different from the group category of the third group.
In a possible implementation manner of the first aspect of the present application, the first group category, the second group category, the third group category and the fourth group category are arranged according to a group level priority from low to high, when the bandwidth usage level of the second device is higher than the first threshold, the group level priority of the group category to which the fourth group belongs is higher than the group level priority of the group category to which the third group belongs, and when the bandwidth usage level of the second device is lower than the second threshold, the group level priority of the group category to which the fourth group belongs is lower than the group level priority of the group category to which the third group belongs.
In a possible implementation manner of the first aspect of the present application, the bandwidth usage degree of the second device is a bandwidth resource utilization rate of the second device in a specified period of time, or a transceiving traffic of the second device in the specified period of time.
In a possible implementation manner of the first aspect of the present application, the device types of each of the plurality of devices include: storage device type, network device type, remote direct memory access device type, central processor device type, graphics processor device type.
In a possible implementation manner of the first aspect of the present application, the plurality of devices includes at least one physical device or at least one virtual device, and the at least one virtual device is generated by simulation of the data processing unit.
In a possible implementation manner of the first aspect of the present application, the first port belongs to a first bus, and the first bus is a peripheral device interconnection bus, a fast peripheral device interconnection bus, an advanced expandable interface bus or a computer high-speed interconnection bus.
In a second aspect, embodiments of the present application further provide a computer device, the computer device including a memory, a processor, and a computer program stored on the memory and executable on the processor, the processor implementing a method according to any one of the implementations of any one of the above aspects when the computer program is executed.
In a third aspect, embodiments of the present application also provide a computer-readable storage medium storing computer instructions that, when run on a computer device, cause the computer device to perform a method according to any one of the implementations of any one of the above aspects.
In a fourth aspect, embodiments of the present application also provide a computer program product comprising instructions stored on a computer-readable storage medium, which when run on a computer device, cause the computer device to perform a method according to any one of the implementations of any one of the above aspects.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present application, the drawings required for the description of the embodiments will be briefly described below, and it is obvious that the drawings in the following description are some embodiments of the present application, and other drawings may be obtained according to these drawings without inventive effort for a person skilled in the art.
Fig. 1 is a flow chart of a method for allocating bus bandwidth resources according to an embodiment of the present application;
fig. 2 is a schematic diagram of a shortcut peripheral device interconnection topology architecture according to an embodiment of the present application;
fig. 3 is a schematic structural diagram of a computing device according to an embodiment of the present application.
Detailed Description
Embodiments of the present application will be described in further detail below with reference to the accompanying drawings.
It should be understood that in the description of the application, "at least one" means one or more than one, and "a plurality" means two or more than two. In addition, the words "first," "second," and the like, unless otherwise indicated, are used solely for the purposes of description and are not to be construed as indicating or implying a relative importance or order.
Fig. 1 is a flow chart of a method for allocating bus bandwidth resources according to an embodiment of the present application. As shown in fig. 1, the method includes the following steps.
Step S110: a first port and a plurality of devices hooked under the first port are determined.
Step S120: determining a port level maximum allowed bandwidth resource for the first port, and determining a device level minimum required bandwidth resource and a device level maximum allowed bandwidth resource for each of the plurality of devices.
Step S130: dividing the plurality of devices into at least two groups.
Wherein each of the at least two groups belongs to one of a plurality of group categories, each of the plurality of group categories having a group level maximum allowed bandwidth resource and a group level bandwidth resource allocation policy, a sum of the group level maximum allowed bandwidth resources of each of the at least two groups not exceeding a port level maximum allowed bandwidth resource of the first port, a sum of the device level maximum allowed bandwidth resources of the devices included in each of the at least two groups not exceeding the group level maximum allowed bandwidth resources of the group. The plurality of group categories comprise a first group category, a second group category, a third group category and a fourth group category, wherein the group-level bandwidth resource allocation policy of the first group category allocates bandwidth resources according to minimum required bandwidth resources of a device level, the group-level bandwidth resource allocation policy of the second group category allocates bandwidth resources through competition, the group-level bandwidth resource allocation policy of the third group category allocates bandwidth resources according to a combination of minimum required bandwidth resources and bandwidth resources through competition, and the group-level bandwidth resource allocation policy of the fourth group category allocates bandwidth resources according to maximum allowed bandwidth resources of the device level. The at least two groups include a first group and a second group, the first group belonging to the first group category, the second group belonging to the second group category, the third group category, or the fourth group category.
Referring to fig. 1, a first port and a plurality of devices hooked under the first port are determined at step S110. As such, any bus standard may be adapted, such as the peripheral component interconnect (PERIPHERAL COMPONENT INTERCONNECT, PCI) bus standard or the peripheral component interconnect express (PERIPHERAL COMPONENT INTERCONNECT EXPRESS, PCIe) bus standard. In general, the PCI bus is a tree structure and is independent of the CPU bus and is operable in parallel with the CPU bus. PCI equipment and PCI bridge pieces can be hung on a PCI bus, only one PCI master equipment is allowed on the PCI bus, the other PCI slave equipment is all available, and the read-write operation can only be carried out between the master equipment and the slave equipment, and the data exchange between the slave equipment needs to be transferred through the master equipment. PCIe bus is a layered protocol consisting of a transaction layer, a data link layer, and a physical layer. Through a data processing unit or a virtualization technology, a plurality of standard PCIe devices of different types can be simulated for the host machine, and the whole PCIe topology structure can be simulated, so that an operating system of the host machine enumerates the PCIe topology structure and the PCIe devices, and further driving is realized. PCIe topology and PCIe devices are hooked under a certain port. Thus, the first port is determined in step S110, and the plurality of devices hooked under the first port are all devices performing bus operations through the first port. The first port may be a port in a PCI bus, a PCIe bus, or any other suitable bus.
With continued reference to fig. 1, in step S120, a port level maximum allowed bandwidth resource of the first port is determined, and a device level minimum required bandwidth resource and a device level maximum allowed bandwidth resource of each of the plurality of devices are determined. In this way, on the basis of determining the first port and the plurality of devices that are hooked under the first port, bandwidth resource allocation information of a port level, that is, a port level maximum allowed bandwidth resource of the first port, may be determined. Here, the maximum allowed bandwidth resource at the port level of the first port represents the highest bandwidth resource that can be occupied by all devices that perform bus operations (e.g., process upstream and downstream traffic, issue interrupts, etc.) through the first port. In other words, regardless of how the PCIe topology hooked under the first port changes, how devices hooked under the first port add, delete, or change is limited by port-level bandwidth resource allocation information. In addition, bandwidth resource allocation information of a device level, that is, a minimum required bandwidth resource of a device level and a maximum allowed bandwidth resource of a device level of each of the plurality of devices is also determined at step S120. Here, the minimum bandwidth resource required at the device level of each of the plurality of devices represents the minimum bandwidth resource required for the devices to operate normally, and may be set according to factory settings, product specifications, and application scenarios. For example, the minimum required bandwidth resource at the device level of a certain network card device may be 100 Megabytes (MB). The maximum allowable bandwidth resources at the device level for each of the plurality of devices represents the highest bandwidth resources that the devices can occupy and may be set according to device performance and design constraints. For example, the minimum required bandwidth resource at the device level of a certain network card device may be 100 Megabytes (MB), while the maximum allowed bandwidth resource at the device level of the network card device may be 1 Gigabyte (GB).
With continued reference to fig. 1, on the basis of determining port-level bandwidth resource allocation information and device-level bandwidth resource allocation information, the group-level bandwidth resource allocation information can be set in combination with user requirements, application scenarios and the like, so that bandwidth resource allocation requirements under different device scales, user requirements and application scenarios can be flexibly adapted. At step S130, the plurality of devices are partitioned into at least two groups. Here, each of the at least two groups belongs to one of a plurality of group categories, each of the plurality of group categories has a group-level maximum allowed bandwidth resource and a group-level bandwidth resource allocation policy, a sum of the group-level maximum allowed bandwidth resources of each of the at least two groups does not exceed a port-level maximum allowed bandwidth resource of the first port, and a sum of the device-level maximum allowed bandwidth resources of the devices included in each of the at least two groups does not exceed the group-level maximum allowed bandwidth resource of the group. Thus, by means of a plurality of group categories, different group-level maximum allowed bandwidth resources and group-level bandwidth resource allocation policies are provided, such that by dividing the plurality of devices into the at least two groups, a specific group category and corresponding group-level maximum allowed bandwidth resources and group-level bandwidth resource allocation policies can be corresponded. By defining that the sum of the maximum allowed bandwidth resources of the group level of each of the at least two groups does not exceed the maximum allowed bandwidth resources of the port level of the first port, and defining that the sum of the maximum allowed bandwidth resources of the device level of the device included in each of the at least two groups does not exceed the maximum allowed bandwidth resources of the group level of the group, a three-level structure comprising the bandwidth resource allocation information of the port level, the bandwidth resource allocation information of the group level and the bandwidth resource allocation information of the device level is established at the global level, the limitation of upper-layer business on the related allocable bandwidth resources of the first port can be met, and therefore, the bandwidth resources occupied by the device under the first port during the startup and the initialization of the system and the operation process of the system are not exceeded the maximum allowed bandwidth resources of the port level of the first port can be ensured, and the business stability is improved. In addition, by establishing the bandwidth resource allocation information of the group level, as an intermediate layer between the bandwidth resource allocation information of the port level and the bandwidth resource allocation information of the device level, the minimum bandwidth resource required by the device level to ensure normal operation, that is, the minimum required bandwidth resource of the device level of each of the plurality of devices, can be satisfied on the premise of ensuring that the limitation of the upper layer service on the maximum allowed bandwidth resource of the port level of the first port is satisfied. The following is a detailed description.
With continued reference to fig. 1, the plurality of group categories includes a first group category, a second group category, a third group category, and a fourth group category. The bandwidth resources of the first group class are allocated according to minimum required bandwidth resources of the device class, the bandwidth resources of the second group class are allocated by competition, the bandwidth resources of the third group class are allocated according to the combination of minimum required bandwidth resources and bandwidth resources allocated by competition, and the bandwidth resources of the fourth group class are allocated according to maximum allowed bandwidth resources of the device class. Thus, by setting the group level bandwidth resource allocation policy for each of the plurality of group categories, the complex and variable bandwidth resource allocation needs can be flexibly adapted. Wherein the group level bandwidth resource allocation policy of the first group class allocates bandwidth resources according to the device level minimum required bandwidth resources, which means that the bandwidth resources allocated to the devices belonging to the group of the first group class are allocated according to the device level minimum required bandwidth resources of the respective devices. For example, the minimum required bandwidth resource at the device level of a certain network card device may be 100 megabytes, and if the network card device is divided into groups belonging to the first group category, the bandwidth resource occupied by the network card device is 100 megabytes. In this way, by the group level bandwidth resource allocation policy of the first group class, it is possible to ensure that the minimum bandwidth resource required by the device level to ensure normal operation, that is, the minimum required bandwidth resource at the device level of each of the plurality of devices, is satisfied. The group level bandwidth resource allocation policy of the second group class allocates bandwidth resources by contention, which means that the bandwidth resources allocated to devices belonging to the group of the second group class are allocated as a result of contention allocation by the respective devices, and some devices may have a faster speed such as remote direct memory access devices and thus may occupy most or all of the allocatable bandwidth resources. Therefore, the performance of the equipment can be fully exerted through the group-level bandwidth resource allocation strategy of the second group category, so that the equipment with higher speed can occupy more bandwidth resources, and the utilization rate of the bandwidth resources can be improved. The group level bandwidth resource allocation policy of the third group category is a combination of allocating bandwidth resources according to minimum required bandwidth resources and allocating bandwidth resources by contention, which means that the bandwidth resources allocated to the devices in the group of the third group category are allocated in part according to the minimum required bandwidth resources and in part according to the result of the contention allocation of the respective devices. For example, the minimum required bandwidth resource at the device level of a certain network card device may be 100 megabytes, and if the network card device is divided into groups belonging to the third group category, the bandwidth resource occupied by the network card device is 100 megabytes plus the result of competing allocation of the network card device with other devices in the same group. Therefore, through the group-level bandwidth resource allocation strategy of the third group category, the performance of the device can be fully exerted and the bandwidth resource utilization rate can be improved on the basis of ensuring that the minimum bandwidth resource required by the device level for ensuring normal operation, namely the minimum required bandwidth resource of the device level of each of the plurality of devices is met. The group level bandwidth resource allocation policy of the fourth group class is to allocate bandwidth resources according to the maximum allowed bandwidth resources of the device level, which means that the devices in the group of the fourth group class are allocated bandwidth resources according to the maximum allowed bandwidth resources of the device level of each device, which means that each device can occupy the highest bandwidth resources that it is allowed to occupy. Therefore, the performance of the equipment can be exerted to the maximum extent through the group-level bandwidth resource allocation strategy of the fourth group category, and the competition conflict among the equipment is avoided through the maximum allowed bandwidth resources of the equipment levels allocated to the equipment, so that the allocated bandwidth resources of different equipment are ensured to be independent. It can be seen that the group level bandwidth resource allocation policy is from the minimum required bandwidth resource allocation bandwidth resource according to the device level, to the bandwidth resource allocation by contention, to the combination of the bandwidth resource allocation according to the minimum required bandwidth resource and the bandwidth resource allocation by contention, and finally to the maximum allowed bandwidth resource allocation bandwidth resource according to the device level, from the first group category to the second group category to the third group category to the fourth group category. Therefore, by setting the group level bandwidth resource allocation policy for each of the plurality of group categories, on the premise of ensuring that the limitation of the upper layer service on the maximum allowed bandwidth resource of the port level of the first port is met, the minimum bandwidth resource required by the device level for ensuring normal operation, that is, the minimum bandwidth resource required by the device level of each of the plurality of devices, is also met, and by dividing a device into groups belonging to a specific group category, the self performance of the device can be controlled to be exerted to the greatest extent, and whether independent bandwidth resources are provided for the device can be selected, so that the flexible adaptation of the bandwidth resource allocation needs with complex and variable requirements is facilitated. For example, when a particular device is partitioned to determine the groups in which the particular device is located, the group-level bandwidth resource allocation policy for each group and the priority of user demand may be combined. For users with lower priority demands, such as users of virtual storage devices like virtual hard disks, the virtual storage devices have a low probability of being required to initiate storage operation requests at the same time, so that only a part of the virtual storage devices generally need to utilize bandwidth resources for data reading and writing at the same time, so that the virtual storage devices can be divided into groups belonging to a second group category, bandwidth resources are allocated by competition, and the maximum allowable bandwidth resources at the group level can be fully utilized. For higher priority users, such as users of storage devices for data centers, games, video, who have high latency requirements and want stable data transmission performance, i.e. the fluctuation of bandwidth resources is as small as possible, so that these storage devices can be divided into groups belonging to the fourth group category, and bandwidth resources are allocated according to the maximum allowable bandwidth resources at the device level, so that it can be ensured that the allocated bandwidth resources of these storage devices are independent of each other, thus reducing the fluctuation of bandwidth resources, which is beneficial to ensuring satisfaction of latency requirements and stability requirements of data transmission performance.
With continued reference to fig. 1, on the basis of determining port-level bandwidth resource allocation information and device-level bandwidth resource allocation information, and on the basis of flexibly adapting to complex and diverse bandwidth resource allocation needs by setting group-level bandwidth resource allocation information, by defining the at least two groups to include a first group belonging to the first group category and a second group belonging to the second group category, the third group category or the fourth group category. By establishing the bandwidth resource allocation information of the group level as an intermediate hierarchy between the bandwidth resource allocation information of the port level and the bandwidth resource allocation information of the device level, the minimum bandwidth resource required by the device level to ensure normal operation, that is, the minimum required bandwidth resource of the device level of each of the plurality of devices, can be satisfied on the premise of ensuring that the limitation of the upper layer service on the maximum allowed bandwidth resource of the port level of the first port is satisfied. The first group belongs to the first group category, the second group belongs to the second group category, the third group category or the fourth group category, so that a hierarchical group level bandwidth resource allocation strategy of the at least two groups is established, and the maximum allowed bandwidth resources of the at least two groups are combined, so that a three-level structure comprising port level bandwidth resource allocation information, group level bandwidth resource allocation information and device level bandwidth resource allocation information is established on a global level, and the limitation of upper layer business on the related allocable bandwidth resources of the first port can be met, and therefore, the bandwidth resources occupied by equipment under the first port can not exceed the maximum allowed bandwidth resources of the port level of the first port during the system operation process, and the business stability is improved.
In summary, the method for bus bandwidth resource allocation shown in fig. 1 establishes a three-level structure including port-level bandwidth resource allocation information, group-level bandwidth resource allocation information and device-level bandwidth resource allocation information on a global level, thereby implementing the limitation of meeting the upper layer service on the first port-related allocable bandwidth resources, ensuring that the bandwidth resources occupied by devices under the first port do not exceed the maximum allowed bandwidth resources of the port level of the first port when the system is on-line and initialized and in the running process of the system, and improving the service stability; and, by establishing the bandwidth resource allocation information at the group level, as an intermediate hierarchy between the bandwidth resource allocation information at the port level and the bandwidth resource allocation information at the device level, not only the minimum bandwidth resource required by the device level in order to ensure normal operation, that is, the minimum bandwidth resource required at the device level of each of the plurality of devices, but also how much to exert the self-performance of the device by dividing a specific device into groups belonging to the specific group category can be controlled, and whether to provide independent bandwidth resources for the device can be selected, which is helpful for flexibly adapting to the complex and variable bandwidth resource allocation needs and adapting to the increasing device scale.
Fig. 2 is a schematic diagram of a shortcut peripheral device interconnection topology according to an embodiment of the present application. As shown in fig. 2, the plurality of devices that are hooked under the port 202 are divided into three groups. The three groups are group A210, group B220, and group C230, respectively. The devices in group a210 include a storage device a211, a graphics processor a212, a storage device B213, and a network device E214. The devices in group B220 include graphics processor B221, remote direct memory access device 222, network device F223, storage device C224. The devices in group C230 include network device a231, network device B232, network device C233, and network device D234. It can be seen that the devices in the same group may be of the same type, may be of different types, may be of the same system or may be of different systems. Referring to the method for bus bandwidth resource allocation shown in fig. 1 above, the sum of the group level maximum allowed bandwidth resources of each of the at least two groups does not exceed the port level maximum allowed bandwidth resources of the first port. Thus, the sum of the group level maximum allowed bandwidth resources for each of group a210, group B220, and group C230 does not exceed the port level maximum allowed bandwidth resources for port 202. This ensures that regardless of changes in at least two groups that are hooked under the port 202, such as changes in PCIe topology, devices that are hooked under the port 202 are limited by port-level bandwidth resource allocation information. In addition, the sum of the device-level maximum allowable bandwidth resources of the devices included in each of the at least two groups does not exceed the group-level maximum allowable bandwidth resources of the group, and thus, the sum of the device-level maximum allowable bandwidth resources of the devices included in each of the group a210, the group B220, and the group C230 does not exceed the group-level maximum allowable bandwidth resources of the group. For example, the devices in group C230, i.e., network device a231, network device B232, network device C233, and network device D234 each have a device level maximum allowable bandwidth resource that does not exceed the sum of the maximum allowable bandwidth resources of group C230.
With continued reference to fig. 2, the group-level bandwidth resource allocation policy is from minimum required bandwidth resources allocation bandwidth resources according to the device level, to bandwidth resources allocation by contention, to bandwidth resources allocation by combination of minimum required bandwidth resources and bandwidth resources allocation by contention, and finally to bandwidth resources allocation by maximum allowed bandwidth resources at the device level, so that devices are bandwidth resources that are allowed to exert their own performance to a greater degree and also have higher independence, in order from the first group class to the fourth group class. In some embodiments, the group level maximum allowed bandwidth resources are incremented in order from the first group category to the fourth group category. For example, let port 202 have a port level maximum allowed bandwidth resource of 100 gigabytes, where group A210 belongs to a first group class and group A210 has a group level maximum allowed bandwidth resource of 10 gigabytes, group B220 belongs to a second group class and group B220 has a group level maximum allowed bandwidth resource of 30 gigabytes, group C230 belongs to a fourth group class and group C230 has a group level maximum allowed bandwidth resource of 60 gigabytes. Thus, under the design purpose of maximizing bandwidth resource utilization, the maximum bandwidth of an upper-layer service adaptation port and the bandwidth resource allocation requirement of the lower-layer equipment can be fully met by flexibly adjusting the allocated actual bandwidth resource of each equipment or enabling the equipment to self-contend for the bandwidth resource or combining the two, and dividing each equipment into a specific group with a specific group-level maximum allowable bandwidth resource and a specific group-level bandwidth resource allocation strategy at a more macroscopic level.
Referring to fig. 1 and 2, in one possible implementation, dividing the plurality of devices into the at least two groups includes:
dividing the plurality of devices into the at least two groups based on respective bandwidth allocation priorities of the plurality of devices and respective group-level bandwidth resource allocation policies of the at least two groups. The group level bandwidth resource allocation policy is from minimum required bandwidth resources allocation bandwidth resources according to device level, to bandwidth resources allocation by contention, to bandwidth resources allocation by combination of minimum required bandwidth resources allocation bandwidth resources and bandwidth resources allocation by contention, and finally to bandwidth resources allocation by maximum allowed bandwidth resources according to device level, so that devices are bandwidth resources which are allowed to exert their own performance to a greater degree and also have higher independence in the order from the first group class to the fourth group class. Thus, based on the bandwidth allocation priority of a device, it can be determined how much self-performance the device is allowed to exert and how highly independent bandwidth resources are provided. In this way, the devices with higher bandwidth allocation priorities can be divided into the groups belonging to the fourth group category by combining the bandwidth allocation priorities of the devices and the group-level bandwidth resource allocation policies of the at least two groups, so that bandwidth resources are allocated according to the maximum allowable bandwidth resources of the device level, the performance of the devices can be exerted to the maximum extent, and the independence of the allocated bandwidth resources of the devices can be ensured. In addition, the devices with lower bandwidth allocation priority can be divided into groups belonging to the first group category, so that bandwidth resources are allocated according to minimum required bandwidth resources of the device level, thus ensuring that the minimum bandwidth resources required by the device level in order to ensure normal operation, namely the minimum required bandwidth resources of the device levels of the devices, can provide more bandwidth resources for the devices with higher bandwidth allocation priority under the condition of limited maximum allowed bandwidth resources of the port level, and can better match the bandwidth allocation priority of each device. As such, flexible adaptation to complex and diverse bandwidth resource allocation needs is facilitated as well as to an increasing device size.
In some embodiments, the plurality of devices includes a first device that is partitioned into the first group when the bandwidth allocation priority of the first device is a low bandwidth allocation priority, and is partitioned into the second group when the bandwidth allocation priority of the first device is a high bandwidth allocation priority. In this way, the bandwidth allocation priorities of the devices and the group-level bandwidth resource allocation policies of the at least two groups are combined, and the first group belongs to the first group category and the second group belongs to the second group category, the third group category or the fourth group category, which is combined, so that the flexible adaptation of complex and changeable bandwidth resource allocation needs and the adaptation of the increasing device scale are facilitated.
In some embodiments, the bandwidth allocation priority of the first device is a low bandwidth allocation priority when the first device is a storage device for non-real time communications, and a high bandwidth allocation priority when the first device is a network device for data centers, games or video. In this manner, the group-level bandwidth resource allocation policy for each group and the priority of user demand may be integrated into consideration when partitioning a particular device to determine the group in which the particular device is located. Storage devices that communicate in non-real time typically only occupy a portion of the bandwidth resources for bus operations at the same time, and the associated user demands relatively little time scalability. Network devices for data centers, games or video often need to handle large-scale data traffic for concurrency, and the associated user demands relatively high temporal ductility. As such, flexible adaptation to complex and diverse bandwidth resource allocation needs is facilitated as well as to an increasing device size.
In a possible embodiment, the devices comprised by each of the at least two groups have the same device type or different device types. The devices in the same group may be of the same type, may be of different types, may be of the same system or may be of different systems. Thus, under the design purpose of maximizing bandwidth resource utilization, by flexibly adjusting the actual bandwidth resource allocated to each device or letting the device self-contend for the bandwidth resource, or both, and by dividing each device into a specific group with a specific group-level maximum allowable bandwidth resource and a specific group-level bandwidth resource allocation strategy at a more macroscopic level, the maximum bandwidth of an upper-layer service adaptation port and the bandwidth resource allocation requirements of the lower-layer device can be fully met.
In a possible implementation, the bandwidth resources allocated by each of the devices included in the group belonging to the second group category of the at least two groups are all obtained by competing for the group-level maximum allowed bandwidth resources of the group. Therefore, the performance of the equipment can be fully exerted through the group-level bandwidth resource allocation strategy of the second group category, so that the equipment with higher speed can occupy more bandwidth resources, and the utilization rate of the bandwidth resources can be improved.
In a possible implementation, the bandwidth resources each allocated by a device comprised by a group belonging to the third group category of the at least two groups comprises a device-level minimum required bandwidth resource and is obtained at least in part by competing for a group-level maximum allowed bandwidth resource of the group. Therefore, through the group-level bandwidth resource allocation strategy of the third group category, the performance of the device can be fully exerted and the bandwidth resource utilization rate can be improved on the basis of ensuring that the minimum bandwidth resource required by the device level for ensuring normal operation, namely the minimum required bandwidth resource of the device level of each of the plurality of devices is met.
In one possible implementation, the plurality of devices includes a second device that is partitioned into a third group of the at least two groups based on a bandwidth allocation priority of the second device, the method further comprising: and transferring the second device from the third group to a fourth group of the at least two groups based on the bandwidth usage degree of the second device, and reallocating bandwidth resources to the second device according to a group-level maximum allowed bandwidth resource and a group-level bandwidth resource allocation policy of the fourth group, wherein the group category of the fourth group is different from the group category of the third group. As mentioned above, the plurality of devices are partitioned into the at least two groups based on their respective bandwidth allocation priorities and their respective group-level bandwidth resource allocation policies. Thus, devices are bandwidth resources that are allowed to exert their own performance to a greater degree and also have a higher independence, in order from the first group category to the fourth group category. Based on the bandwidth allocation priority of a device, it can be determined how much self-performance the device is allowed to perform and how highly independent bandwidth resources are provided. Here, an adjustment may be made to a previous division result based on a bandwidth usage degree of the second device, the second device is transferred from the third group to a fourth group of the at least two groups, and bandwidth resources are reallocated to the second device according to a group-level maximum allowable bandwidth resource and a group-level bandwidth resource allocation policy of the fourth group. And, the group class to which the fourth group belongs is different from the group class to which the third group belongs, which means that the group-level bandwidth resource allocation policies of different group classes are sequentially applicable to the second device. Thus, the method is beneficial to improving the utilization rate of the whole bandwidth resources by combining the actual application condition of the bandwidth resources of the equipment.
In some embodiments, the first group category, the second group category, the third group category, and the fourth group category are ranked by group level priority from low to high, the group level priority of the group category to which the fourth group belongs being higher than the group level priority of the group category to which the third group belongs when the bandwidth usage level of the second device is above a first threshold, and the group level priority of the group category to which the fourth group belongs being lower than the group level priority of the group category to which the third group belongs when the bandwidth usage level of the second device is below a second threshold. Thus, the method is beneficial to improving the utilization rate of the whole bandwidth resources by combining the actual application condition of the bandwidth resources of the equipment.
In some embodiments, the bandwidth usage degree of the second device is a bandwidth resource utilization rate of the second device in a specified period of time, or a transceiving traffic of the second device in the specified period of time. Thus, the method is beneficial to improving the utilization rate of the whole bandwidth resources by combining the actual application condition of the bandwidth resources of the equipment.
In one possible implementation, the device types of each of the plurality of devices include: storage device type, network device type, remote direct memory access device type, central processor device type, graphics processor device type. Therefore, the maximum bandwidth of the upper layer service adaptation port and the bandwidth resource allocation requirement of the lower layer equipment can be fully met.
In one possible embodiment, the plurality of devices includes at least one physical device or at least one virtual device, the at least one virtual device being generated by the data processing unit simulation. Therefore, the maximum bandwidth of the upper layer service adaptation port and the bandwidth resource allocation requirement of the lower layer equipment can be fully met. It should be appreciated that the virtual device may be provided by the data processing unit or any suitable virtualization technique, or may be hooked up to a physical device that is actually present, such as a slot of a board card inserted into the data processing unit.
In one possible implementation, the first port belongs to a first bus, which is a peripheral device interconnect bus, a fast peripheral device interconnect bus, an advanced extensible interface bus (Advanced eXtensible Interface, AXI) or a computer high-speed interconnect bus (Compute Express Link, CXL). Therefore, any bus standard can be adapted, and the maximum bandwidth of an upper-layer service adaptation port and the bandwidth resource allocation requirement of lower-layer equipment can be fully met.
Fig. 3 is a schematic structural diagram of a computing device according to an embodiment of the present application, where the computing device 300 includes: one or more processors 310, a communication interface 320, and a memory 330. The processor 310, the communication interface 320 and the memory 330 are interconnected by a bus 340. Optionally, the computing device 300 may further include an input/output interface 350, where the input/output interface 350 is connected to an input/output device for receiving parameters set by a user, etc. The computing device 300 can be used to implement some or all of the functionality of the device embodiments or system embodiments of the present application described above; the processor 310 can also be used to implement some or all of the operational steps of the method embodiments described above in connection with the embodiments of the present application. For example, specific implementations of the computing device 300 performing various operations may refer to specific details in the above-described embodiments, such as the processor 310 being configured to perform some or all of the steps of the above-described method embodiments or some or all of the operations of the above-described method embodiments. For another example, in an embodiment of the present application, the computing device 300 may be configured to implement some or all of the functionality of one or more components of the apparatus embodiments described above, and the communication interface 320 may be configured to implement communication functions and the like necessary for the functionality of the apparatus, components, and the processor 310 may be configured to implement processing functions and the like necessary for the functionality of the apparatus, components.
It should be appreciated that the computing device 300 of fig. 3 may include one or more processors 310, and that the plurality of processors 310 may cooperatively provide processing power in a parallelized connection, a serialized connection, a serial-parallel connection, or any connection, or the plurality of processors 310 may constitute a processor sequence or processor array, or the plurality of processors 310 may be separated into primary and secondary processors, or the plurality of processors 310 may have different architectures such as employing heterogeneous computing architectures. In addition, the computing device 300 shown in FIG. 3, the associated structural and functional descriptions are exemplary and not limiting. In some example embodiments, computing device 300 may include more or fewer components than shown in fig. 3, or combine certain components, or split certain components, or have a different arrangement of components.
Processor 310 may take many specific forms, for example, processor 310 may include one or more combinations of a central processing unit (central processing unit, CPU), a graphics processor (graphic processing unit, GPU), a neural network processor (neural-network processing unit, NPU), a tensor processor (tensor processing unit, TPU), or a data processor (data processing unit, DPU), and embodiments of the present application are not limited in this respect. Processor 310 may also be a single-core processor or a multi-core processor. The processor 310 may be formed by a combination of a CPU and a hardware chip. The hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (programmable logic device, PLD), or a combination thereof. The PLD may be a complex programmable logic device (complex programmable logic device, CPLD), a field-programmable gate array (FPGA) GATE ARRAY, generic array logic (GENERIC ARRAY logic, GAL), or any combination thereof. Processor 310 may also be implemented solely with logic devices incorporating processing logic, such as an FPGA or Digital Signal Processor (DSP), etc. The communication interface 320 may be a wired interface, which may be an ethernet interface, a local area network (local interconnect network, LIN), etc., or a wireless interface, which may be a cellular network interface, or use a wireless lan interface, etc., for communicating with other modules or devices.
The memory 330 may be a nonvolatile memory such as a read-only memory (ROM), a Programmable ROM (PROM), an erasable programmable ROM (erasable PROM, EPROM), an electrically erasable programmable EPROM (EEPROM), or a flash memory. Memory 330 may also be volatile memory, which may be random access memory (random access memory, RAM) used as external cache memory. By way of example, and not limitation, many forms of RAM are available, such as static random access memory (STATIC RAM, SRAM), dynamic random access memory (DYNAMIC RAM, DRAM), synchronous Dynamic Random Access Memory (SDRAM), double data rate synchronous dynamic random access memory (double DATA RATE SDRAM, DDR SDRAM), enhanced synchronous dynamic random access memory (ENHANCED SDRAM, ESDRAM), synchronous link dynamic random access memory (SYNCHLINK DRAM, SLDRAM), and direct memory bus random access memory (direct rambus RAM, DR RAM). Memory 330 may also be used to store program code and data such that processor 310 invokes the program code stored in memory 330 to perform some or all of the operational steps of the method embodiments described above, or to perform corresponding functions in the apparatus embodiments described above. Moreover, computing device 300 may contain more or fewer components than shown in FIG. 3, or may have a different configuration of components.
Bus 340 may be a peripheral component interconnect express (PERIPHERAL COMPONENT INTERCONNECT EXPRESS, PCIe) bus, or an extended industry standard architecture (extended industry standard architecture, EISA) bus, a unified bus (unified bus, ubus or UB), a computer quick link (compute express link, CXL), a cache coherent interconnect protocol (cache coherent interconnect for accelerators, CCIX), or the like. The bus 340 may be divided into an address bus, a data bus, a control bus, and the like. The bus 340 may include a power bus, a control bus, a status signal bus, and the like in addition to a data bus. But is shown with only one bold line in fig. 3 for clarity of illustration, but does not represent only one bus or one type of bus.
The method and the device provided by the embodiment of the application are based on the same inventive concept, and because the principle of solving the problem by the method and the device is similar, the embodiment, the implementation, the example or the implementation of the method and the device can be mutually referred, and the repetition is not repeated. Embodiments of the present application also provide a system comprising a plurality of computing devices, each of which may be structured as described above. The functions or operations that may be implemented by the system may refer to specific implementation steps in the above method embodiments and/or specific functions described in the above apparatus embodiments, which are not described herein.
Embodiments of the present application also provide a computer-readable storage medium having stored therein computer instructions which, when executed on a computer device (e.g., one or more processors), implement the method steps of the method embodiments described above. The specific implementation of the processor of the computer readable storage medium in executing the above method steps may refer to specific operations described in the above method embodiments and/or specific functions described in the above apparatus embodiments, which are not described herein again.
It will be appreciated by those skilled in the art that embodiments of the present application may be provided as a method, system, or computer program product. The application can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Embodiments of the application may be implemented, in whole or in part, in software, hardware, firmware, or any other combination. When implemented in software, the above-described embodiments may be implemented in whole or in part in the form of a computer program product. The present application may take the form of a computer program product embodied on one or more computer-usable storage media having computer-usable program code embodied therein. The computer program product includes one or more computer instructions. When loaded or executed on a computer, produces a flow or function in accordance with embodiments of the present application, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a computer network, or other programmable apparatus. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center by a wired (e.g., coaxial cable, fiber optic, digital subscriber line), or wireless (e.g., infrared, wireless, microwave, etc.). Computer readable storage media can be any available media that can be accessed by a computer or data storage devices, such as servers, data centers, etc. that contain one or more collections of available media. Usable media may be magnetic media (e.g., floppy disks, hard disks, tape), optical media, or semiconductor media. The semiconductor medium may be a solid state disk, or may be a random access memory, flash memory, read only memory, erasable programmable read only memory, electrically erasable programmable read only memory, register, or any other form of suitable storage medium.
The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the application. Each flow and/or block of the flowchart and/or block diagrams, and combinations of flows and/or blocks in the flowchart and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks. These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks. These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
In the foregoing embodiments, the descriptions of the embodiments are emphasized, and for parts of one embodiment that are not described in detail, reference may be made to the related descriptions of other embodiments. It will be apparent to those skilled in the art that various modifications and variations can be made to the embodiments of the present application without departing from the spirit or scope of the embodiments of the application. The steps in the method of the embodiment of the application can be sequentially adjusted, combined or deleted according to actual needs; the modules in the system of the embodiment of the application can be divided, combined or deleted according to actual needs. The present application is also intended to include such modifications and alterations if they come within the scope of the claims and the equivalents thereof.
Claims (15)
1. A method for bus bandwidth resource allocation, the method comprising:
determining a first port and a plurality of devices hooked under the first port;
determining a port level maximum allowed bandwidth resource of the first port, and determining a device level minimum required bandwidth resource and a device level maximum allowed bandwidth resource of each of the plurality of devices;
Dividing the plurality of devices into at least two groups, wherein each of the at least two groups belongs to one of a plurality of group categories, each of the plurality of group categories having a group level maximum allowed bandwidth resource and a group level bandwidth resource allocation policy, a sum of the group level maximum allowed bandwidth resources of each of the at least two groups not exceeding a port level maximum allowed bandwidth resource of the first port, a sum of the device level maximum allowed bandwidth resources of the devices included in each of the at least two groups not exceeding the group level maximum allowed bandwidth resource of the group,
Wherein the plurality of group categories includes a first group category, a second group category, a third group category, and a fourth group category, wherein the group-level bandwidth resource allocation policy of the first group category allocates bandwidth resources according to the minimum device-level required bandwidth resources, the group-level bandwidth resource allocation policy of the second group category allocates bandwidth resources through contention, the group-level bandwidth resource allocation policy of the third group category allocates bandwidth resources according to a combination of the minimum required bandwidth resources and bandwidth resources through contention, the group-level bandwidth resource allocation policy of the fourth group category allocates bandwidth resources according to the maximum device-level allowed bandwidth resources,
The at least two groups include a first group and a second group, the first group belonging to the first group category, the second group belonging to the second group category, the third group category, or the fourth group category.
2. The method of claim 1, wherein dividing the plurality of devices into the at least two groups comprises:
Dividing the plurality of devices into the at least two groups based on respective bandwidth allocation priorities of the plurality of devices and respective group-level bandwidth resource allocation policies of the at least two groups.
3. The method of claim 2, wherein the plurality of devices includes a first device, the first device being partitioned into the first group when the bandwidth allocation priority of the first device is a low bandwidth allocation priority, the first device being partitioned into the second group when the bandwidth allocation priority of the first device is a high bandwidth allocation priority.
4. The method of claim 3, wherein the bandwidth allocation priority of the first device is a low bandwidth allocation priority when the first device is a storage device for non-real-time communications, and wherein the bandwidth allocation priority of the first device is a high bandwidth allocation priority when the first device is a network device for data centers, games, or video.
5. The method of claim 1, wherein the devices included in each of the at least two groups have the same device type or different device types.
6. The method of claim 1, wherein the bandwidth resources each allocated by a device included in a group belonging to the second group category of the at least two groups are all obtained by competing for a group-level maximum allowed bandwidth resource for the group.
7. The method of claim 1, wherein the bandwidth resources each allocated by a device included in a group belonging to the third group category of the at least two groups comprises a device-level minimum required bandwidth resource and is obtained at least in part by competing for a group-level maximum allowed bandwidth resource for the group.
8. The method of claim 2, wherein the plurality of devices includes a second device that is partitioned into a third group of the at least two groups based on a bandwidth allocation priority of the second device, the method further comprising:
And transferring the second device from the third group to a fourth group of the at least two groups based on the bandwidth usage degree of the second device, and reallocating bandwidth resources to the second device according to a group-level maximum allowed bandwidth resource and a group-level bandwidth resource allocation policy of the fourth group, wherein the group category of the fourth group is different from the group category of the third group.
9. The method of claim 8, wherein the first group category, the second group category, the third group category, and the fourth group category are ranked by group level priority from low to high, wherein the group level priority of the group category to which the fourth group belongs is higher than the group level priority of the group category to which the third group belongs when the bandwidth usage level of the second device is above a first threshold, and wherein the group level priority of the group category to which the fourth group belongs is lower than the group level priority of the group category to which the third group belongs when the bandwidth usage level of the second device is below a second threshold.
10. The method of claim 9, wherein the bandwidth usage level of the second device is a bandwidth resource utilization of the second device for a specified period of time or a transceiving traffic of the second device for the specified period of time.
11. The method of claim 1, wherein the device types of each of the plurality of devices comprise: storage device type, network device type, remote direct memory access device type, central processor device type, graphics processor device type.
12. The method of claim 1, wherein the plurality of devices comprises at least one physical device or at least one virtual device, the at least one virtual device being generated by a data processing unit simulation.
13. The method of claim 1, wherein the first port belongs to a first bus, the first bus being a peripheral device interconnect bus, a fast peripheral device interconnect bus, an advanced extensible interface bus, or a computer high speed interconnect bus.
14. A computer device, characterized in that it comprises a memory, a processor and a computer program stored on the memory and executable on the processor, which processor implements the method according to any of claims 1 to 13 when executing the computer program.
15. A computer readable storage medium storing computer instructions which, when run on a computer device, cause the computer device to perform the method of any one of claims 1 to 13.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410453737.2A CN118055077B (en) | 2024-04-16 | 2024-04-16 | Method, computer device and medium for bus bandwidth resource allocation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410453737.2A CN118055077B (en) | 2024-04-16 | 2024-04-16 | Method, computer device and medium for bus bandwidth resource allocation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118055077A CN118055077A (en) | 2024-05-17 |
CN118055077B true CN118055077B (en) | 2024-06-18 |
Family
ID=91054018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410453737.2A Active CN118055077B (en) | 2024-04-16 | 2024-04-16 | Method, computer device and medium for bus bandwidth resource allocation |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118055077B (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103229580A (en) * | 2012-12-21 | 2013-07-31 | 华为技术有限公司 | Resource scheduling method and device |
WO2017008841A1 (en) * | 2015-07-14 | 2017-01-19 | Sony Corporation | Method and apparatus for bandwidth dependent access coordination to a shared transmission medium |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7688863B2 (en) * | 2001-10-19 | 2010-03-30 | Renesas Technology America, Inc. | Methods and apparatus for sharing network bandwidth |
CA2748791A1 (en) * | 2010-12-22 | 2012-06-22 | Psion Inc. | Method and system for connection management and resource sharing |
US9900903B1 (en) * | 2014-01-13 | 2018-02-20 | Marvell Israel (M.I.S.L) Ltd. | Weighted periodic scheduling of a shared resource |
CN110874265A (en) * | 2019-11-15 | 2020-03-10 | 厦门物通博联网络科技有限公司 | Method, device and equipment for rapidly acquiring data and storage medium |
CN117135055A (en) * | 2023-08-28 | 2023-11-28 | 苏州浪潮智能科技有限公司 | Bandwidth resource control method and device, storage medium and electronic device |
-
2024
- 2024-04-16 CN CN202410453737.2A patent/CN118055077B/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103229580A (en) * | 2012-12-21 | 2013-07-31 | 华为技术有限公司 | Resource scheduling method and device |
WO2017008841A1 (en) * | 2015-07-14 | 2017-01-19 | Sony Corporation | Method and apparatus for bandwidth dependent access coordination to a shared transmission medium |
Also Published As
Publication number | Publication date |
---|---|
CN118055077A (en) | 2024-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107690622B (en) | Method, equipment and system for realizing hardware acceleration processing | |
JP5510556B2 (en) | Method and system for managing virtual machine storage space and physical hosts | |
US8762999B2 (en) | Guest-initiated resource allocation request based on comparison of host hardware information and projected workload requirement | |
JP2015115059A (en) | Method, information handling system and computer program for dynamically changing cloud computing environment | |
US20210075745A1 (en) | Methods and apparatus for improved polling efficiency in network interface fabrics | |
US11940915B2 (en) | Cache allocation method and device, storage medium, and electronic device | |
CN115129621B (en) | Memory management method, device, medium and memory management module | |
US20200226093A1 (en) | System and Method of Asymmetric System Description for Optimized Scheduling | |
CN115857995B (en) | Method, medium and computing device for upgrading interconnection device | |
CN114860387B (en) | I/O virtualization method of HBA controller for virtualization storage application | |
CN117493237B (en) | Computing device, server, data processing method, and storage medium | |
CN111158905A (en) | Method and device for adjusting resources | |
CN115934624B (en) | Method, equipment and medium for managing multi-host remote direct memory access network | |
CN117909031A (en) | Message processing method, computer equipment and medium for data processing unit | |
CN115705247A (en) | Process running method and related equipment | |
CN116483740B (en) | Memory data migration method and device, storage medium and electronic device | |
CN118055077B (en) | Method, computer device and medium for bus bandwidth resource allocation | |
CN115858116A (en) | Case scheduling method, computer equipment and computer-readable storage medium | |
CN116483553A (en) | Computing device, data processing method, system and related device | |
CN114281516A (en) | Resource allocation method and device based on NUMA attribute | |
KR20230015334A (en) | inference from memory | |
CN118012796B (en) | Interrupt resource management method, computer device and medium | |
CN117519908B (en) | Virtual machine thermomigration method, computer equipment and medium | |
CN116303154B (en) | Base address register resource allocation method and medium for data processing unit | |
CN117331861B (en) | Direct memory mapping method, device, equipment, cluster and medium |
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 |