Request allocation method, device, electronic device and storage medium for on-chip network

By prioritizing multiple resource requests at the same time in the on-chip network and establishing a wavefront allocation model, the resource conflict problem is solved, improving the accuracy of resource allocation and the feedback efficiency of high-priority resource requests.

CN119396598BActive Publication Date: 2025-04-18BEIJING INSTITUTE OF OPEN SOURCE CHIP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411997215.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-12-31
Publication Date
2025-04-18
Estimated Expiration
2044-12-31

AI Technical Summary

Technical Problem

In the on-chip network, multiple resource requests are initiated at the same time, resulting in frequent resource conflicts, affecting performance.

Method used

A request allocation method for on-chip network is proposed. By grouping multiple resource requests received at the same time according to priority levels, a wavefront allocation model is established, and resources are allocated to each resource request group in sequence in order from high to low priority levels.

Benefits of technology

Through accurate resource request allocation, resource conflicts on the on-chip network are reduced and feedback efficiency of high-priority resource requests is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119396598B_ABST
    Figure CN119396598B_ABST
Patent Text Reader

Abstract

The embodiment of the present invention provides a method, device, electronic device and storage medium for allocating requests for a network on chip, and relates to the field of computer technology. The method includes: grouping multiple resource requests received at the same time according to priority to obtain several resource request groups; a resource request group contains several resource requests with the same priority, and resource requests in different resource request groups have different priorities; a wavefront allocation model is established for the resources of the network on chip and multiple resource requests; and the resources of the network on chip are allocated to each resource request group in order from high to low priority based on the wavefront allocation model. The wavefront model is more targeted and therefore more accurate, and the resource allocation of resource requests based on the allocation model has higher accuracy, which can reduce resource conflicts in the network on chip.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of computer technology, and in particular to a request allocation method for a network on chip, a request allocation device for a network on chip, an electronic device and a storage medium. Background Art

[0002] Network-on-Chip (NoC) is an interconnection architecture of System-on-Chip (SoC). It has broad application prospects due to its advantages such as higher bandwidth.

[0003] In a network on chip, multiple resource requests may be received at the same time. Multiple resource requests may request the same resource at the same time, which will cause resource conflicts. At present, there is a lack of accurate resource request allocation method, which leads to frequent resource conflicts and affects the performance of the network on chip. Summary of the invention

[0004] In view of the above problems, an embodiment of the present invention is proposed to provide a request allocation method for a network on chip that overcomes the above problems or at least partially solves the above problems, so as to reduce resource conflicts.

[0005] In a first aspect, the present invention provides a request allocation method for a network on chip, comprising:

[0006] A plurality of resource requests received at the same time are grouped according to priorities to obtain a plurality of resource request groups; one resource request group includes a plurality of resource requests with the same priority, and resource requests in different resource request groups have different priorities;

[0007] Establishing a wavefront allocation model for resources of the network on chip and the plurality of resource requests;

[0008] In descending order of priority, and based on the wavefront allocation model, the resources of the network on chip are allocated to each of the resource request groups in turn.

[0009] In a second aspect, the present invention provides a request allocation device for a network on chip, comprising:

[0010] A grouping module, used for grouping multiple resource requests received at the same time according to priorities to obtain a plurality of resource request groups; one resource request group includes a plurality of resource requests with the same priority, and resource requests in different resource request groups have different priorities;

[0011] A model building module, used for building a wavefront allocation model for resources of the on-chip network and the plurality of resource requests;

[0012] The allocation module is used to allocate the resources of the on-chip network to each of the resource request groups in sequence according to the order of priority from high to low based on the wavefront allocation model.

[0013] In a third aspect, the present invention provides an electronic device, comprising: a processor, a memory, and a computer program stored in the memory and executable on the processor, wherein the processor implements the above-mentioned request allocation method for the on-chip network when executing the program.

[0014] In a fourth aspect, the present invention provides a readable storage medium, which, when instructions in the storage medium are executed by a processor of an electronic device, enables the electronic device to execute the above-mentioned request allocation method for on-chip network.

[0015] In a fifth aspect, the present invention provides a computer program product, comprising instructions, which, when executed by a processor in an electronic device, enable the electronic device to execute any one of the aforementioned on-chip network request allocation methods.

[0016] The present invention includes the following advantages:

[0017] In the present application, on the one hand, the above-mentioned wavefront allocation model is established specifically for multiple resource requests received at the same time and the resources of the on-chip network. The wavefront model is more targeted and therefore more accurate. Therefore, the resource allocation of resource requests based on the allocation model has higher accuracy and can reduce resource conflicts in the on-chip network. On the other hand, the present application allocates resources to resource requests with high priority in order of priority, thereby giving priority to the allocation of high-priority resources and improving the feedback efficiency of high-priority resource requests. BRIEF DESCRIPTION OF THE DRAWINGS

[0018] In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the accompanying drawings required for use in the description of the embodiments of the present invention will be briefly introduced below. Obviously, the accompanying drawings in the following description are only some embodiments of the present invention. For ordinary technicians in this field, other accompanying drawings can be obtained based on these accompanying drawings without paying creative labor.

[0019] Figure 1 A flowchart showing a first embodiment of a method for allocating network-on-chip requests according to the present invention;

[0020] Figure 2 A flow chart showing the steps of an embodiment of a second on-chip network request allocation method of the present invention;

[0021] Figure 3 A structural block diagram showing an embodiment of a request allocation device for a network on chip of the present invention is shown;

[0022] Figure 4 It is a structural diagram of an electronic device provided by an embodiment of the present invention. DETAILED DESCRIPTION

[0023] The following will be combined with the drawings in the embodiments of the present invention to clearly and completely describe the technical solutions in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.

[0024] Reference Figure 1 The request allocation method of the on-chip network may specifically include the following steps.

[0025] Step 101: Group multiple resource requests received at the same time into several resource request groups according to their priorities; one resource request group contains several resource requests with the same priority, and resource requests in different resource request groups have different priorities.

[0026] At the same time, the network on chip may receive multiple resource requests, and the resources here may be various types of resources of the network on chip, and the specific resource types are not limited. For example, the resources here may be hardware resources, software resources, etc. For another example, the resources here may include but are not limited to virtual channels, etc.

[0027] Resource requests are usually given priorities, and resource requests with high priorities usually require priority responses or priority allocation to resources. This step is mainly to group multiple resource requests received at the same time according to their priorities to obtain several resource request groups. A resource request group contains several resource requests with the same priority, and the priorities of resource requests in different resource request groups are different. There is no specific limit on the number of resource requests contained in a resource request group, and the number of resource requests in different resource request groups can be the same or different. The priority of a resource request group is the priority of the resource requests in the resource request group. There is no specific limit on the number of resource requests received at the same time.

[0028] Step 102: Establish a wavefront allocation model for the resources of the network on chip and the multiple resource requests.

[0029] The wavefront distributor is a hardware algorithm that regulates requests and resources and optimizes and distributes them fairly. In the on-chip network, wavefront allocation is responsible for managing and distributing the transmission of data packets or data blocks (usually called Flits) in the router. In the router of the on-chip network, local information needs to be distributed to the downstream routers that are closer to the target node, and the information is transmitted on the network through such layer-by-layer routing. However, each router can only select a limited number of resource requests for routing each time. At this time, a distributor is needed to distribute requests as efficiently and fairly as possible. The wavefront allocation model provided in this application is a relatively high-performance allocation method. It can also correctly simulate hardware functions and provide certain references and guidance for the establishment of a wavefront distributor.

[0030] In the present application, the wavefront allocation model has a corresponding relationship with the aforementioned multiple resource requests received at the same time and the currently available resources in the on-chip network. The wavefront allocation model can determine which resources to allocate to those resource requests based on the current resource availability, and then which Flits can enter the cross switch for transmission, which can ensure that under limited resource conditions, data packets can be transmitted through the network as efficiently as possible. The above wavefront allocation model is established specifically for multiple resource requests received at the same time and the resources of the on-chip network. The wavefront model is more targeted and therefore more accurate. The resource allocation of resource requests based on the allocation model has a higher accuracy and can reduce resource conflicts in the on-chip network.

[0031] Optionally, a hardware modeling language may be used to establish a wavefront allocation model, and the hardware modeling language here may include: Systemc (System C), Verilog (Verilog Hardware Description Language), etc. Systemc has certain advantages in more abstract modeling, because SystemC uses the object-oriented characteristics of C++ and rich standard libraries, and has good scalability and portability.

[0032] Step 103 : Allocate network-on-chip resources to each resource request group in order of priority from high to low based on the wavefront allocation model.

[0033] Multiple resource requests received at the same time are grouped according to priority to obtain several resource request groups, and the several resource request groups here may include: the resource request group with the highest priority, the resource request group with the second highest priority, and so on, until the resource request group with the lowest priority. Here, it is the wavefront allocation model that first allocates resources to each resource request in the resource request group with the highest priority, and then allocates resources to each resource request in the resource request group with the second highest priority, and so on, until each resource request in the resource request group with the lowest priority is allocated resources, that is, multiple resource requests received at the same time are allocated resources.

[0034] The present application allocates resources to resource requests with high priority in order of priority, thereby ensuring the allocation of high-priority resources and improving the feedback efficiency of high-priority resource requests.

[0035] Figure 2 The flowchart of the second embodiment of the request allocation method of the on-chip network of the present invention is shown. Figure 2 The request allocation method of the on-chip network may specifically include the following steps.

[0036] Step 201: Group multiple resource requests received at the same time into several resource request groups according to their priorities; one resource request group contains several resource requests with the same priority, and resource requests in different resource request groups have different priorities.

[0037] Step 201 may refer to the aforementioned step 101, and will not be described again here to avoid repetition.

[0038] Step 202: Establish an allocation matrix for each resource request group; the allocation matrix is ​​used to allocate the same resource currently available in the on-chip network to only one resource request in one resource request group at the same time, and for the same resource request in the resource request group, only allocate one resource to the resource request at the same time.

[0039] Here, a corresponding allocation matrix will be established for each resource request group. Currently available resources refer to: resources that can be used in the on-chip network at the current moment or resources that are not allocated to other resource requests at the current moment. The allocation matrix corresponding to a resource request group may include row and column directions, and the row direction may include the resources required or requested by each resource request in the resource request group, and the column direction may include each resource request in the resource request group. The allocation matrix corresponding to a resource request group can be characterized as follows: for the resource requests in the resource request group, the resources that can be used in the on-chip network at the current moment are allocated to that resource request to ensure that at the same time, only the same resource currently available in the on-chip network is allocated to which resource request in the resource request group to avoid resource conflicts, and for the same resource request in the resource request group, only one resource is allocated to the resource request at the same time to improve parallelism, that is, the present application realizes mutual exclusion of resources and resource request requesters through the allocation matrix, thereby avoiding resource conflicts and improving parallelism.

[0040] Step 203: Establish a shielding matrix; the shielding matrix is ​​used to shield the allocated resources from the resources of the on-chip network.

[0041] Before allocating resources to resource requests in a resource request group with a lower priority, the resources that have been allocated in the on-chip network are shielded to avoid re-allocating the resources that have been allocated to the resource requests in the resource request group with a higher priority. The shielding matrix here can be to set the resources that have been allocated in the on-chip network to 0, which is used to indicate that the resource has been allocated.

[0042] That is to say, the wavefront allocation model in the present application may include an allocation matrix and a shielding matrix, and a group of resource requests that are mutually exclusive of resources and resource requesters can be directly obtained through the allocation matrix, and resource stratification is mainly performed according to resource requests of different priorities. After allocation, a higher priority resource request will shield a portion of resources to ensure that the resource request allocated to the high priority can first serve the high priority resource request, and then use the remaining resources after shielding a portion of the resources to allocate to lower priority resources. The lower priority resource request enters its corresponding allocation matrix, and resources are allocated to the low priority resource request from the remaining resources at the current moment, and so on, until all resource requests received at the same time are allocated.

[0043] Step 204: Allocate resources to each of the resource requests in the first resource request group from currently available resources of the on-chip network based on the allocation matrix corresponding to the first resource request group.

[0044] The first resource request group here is a resource request group among the aforementioned several resource request groups, and the first resource request group is not the resource request group with the lowest priority among the several resource request groups. For example, the first resource request group here can be the resource request group with the highest priority, the resource request group with the second highest priority, and the resource request group with the second highest priority from the several resource request groups.

[0045] The available resources of the on-chip network at the current moment refer to: the resources that have not been allocated to other resource requests by the on-chip network before allocating resources to the first resource request group. For example, if the first resource request group is the resource request group with the highest priority among several resource request groups, then the available resources of the on-chip network at the current moment may be all the available resources in the on-chip network; if the first resource request group may be the resource request group with the second highest priority among several resource request groups, then the available resources of the on-chip network at the current moment may be the remaining resources after removing the resources allocated to the resource request group with the highest priority from all the available resources in the on-chip network; and so on, the available resources corresponding to each resource request group are obtained.

[0046] Since the aforementioned allocation matrix is ​​used to allocate the same resource currently available in the on-chip network to only one resource request in one resource request group at the same time, and for the same resource request in the resource request group, only one resource is allocated to the resource request at the same time. Therefore, the result of this step is: only the same available resource of the on-chip network at the current moment is allocated to one resource request in the first resource request group, and for the same resource request in the first resource request group, only one resource is allocated to the resource request at the same time, so as to reduce resource conflicts and improve parallelism.

[0047] Step 205: Based on the masking matrix, mask the resources that have been allocated to the first resource request group from the available resources to obtain remaining resources.

[0048] Through the shielding matrix, the resources that have been allocated to the first resource request group are shielded from the available resources to obtain the remaining resources, thereby avoiding the resources that have been allocated to the first resource request group being re-allocated to the resource requests in the resource request group of the next priority. The remaining resources obtained here are the available resources corresponding to the second resource request group that is one level lower than the first resource request group at the current moment.

[0049] Step 206: Allocate resources to each of the resource requests in the second resource request group from the remaining resources based on the allocation matrix corresponding to the second resource request group; the first resource request group and the second resource request group are both resource request groups among the several resource request groups, and the first resource request group is a resource request group with a priority one level higher than that of the second resource request group.

[0050] The second resource request group here is a resource request group among the aforementioned several resource request groups, and the second resource request group is not the resource request group with the highest priority among the several resource request groups. For example, the second resource request group here can be the resource request group with the second highest priority among the several resource request groups...the resource request group with the second highest priority from the bottom, the resource request group with the highest priority from the bottom. The priority of the second resource request group is one level lower than that of the first resource request group. For example, the first resource request group is the resource request group with the highest priority among the aforementioned several resource request groups, and the second resource request group is the resource request group with the second highest priority among the aforementioned several resource request groups.

[0051] The result of this step is: the same available resource of the on-chip network at the current moment is only allocated to one resource request in the second resource request group, and for the same resource request in the second resource request group, only one resource is allocated to the resource request at the same time to reduce resource conflicts and improve parallelism.

[0052] Optionally, before the aforementioned step 202, the method may further include: establishing an initial two-dimensional matrix; in the initial two-dimensional matrix, the row direction is the resource required by each of the multiple resource requests, and the column direction is the resource request received by each of the resources of the on-chip network at the same time; the initial two-dimensional matrix is ​​composed of 1 and 0, 0 represents that the resource in the column at the same time has not received the resource request in the row, or the resource request in the row at the same time has not applied for the resource in the column; 1 represents that the resource in the column at the same time has received the resource request in the row, or the resource request in the row at the same time has applied for the resource in the column. The initial two-dimensional matrix is ​​a two-dimensional matrix of the multiple resource requests received at the same time, the resource requests corresponding to the available resources of the on-chip network at the same time, and the resources. The number of resource requests received at the same time is the number of rows of the initial two-dimensional matrix; the number of available resources of the on-chip network at the same time is the number of columns of the initial two-dimensional matrix. The position where the row and column intersect is set with 0 or 1, 0 represents that the resources in the column at the same time mentioned above did not receive the resource request of the row, or the resource request in the row at the same time mentioned above did not apply for the resources in the column; 1 represents that the resources in the column at the same time mentioned above received the resource request of the row, or the resource request in the row at the same time mentioned above applied for the resources in the column.

[0053] The aforementioned step 202 may include: step 2021 and step 2022. Step 2021, selecting from the initial two-dimensional matrix the rows and columns corresponding to each of the resource requests in the resource request group with the highest priority among the several resource request groups, and setting the remaining positions to 0, to obtain a two-dimensional matrix of requests and resources for the resource request group with the highest priority; the dimensions of the two-dimensional matrix of requests and resources are the same as the dimensions of the initial two-dimensional matrix. The corresponding dimensions here mean that in the two-dimensional matrix of requests and resources of the resource request group with the highest priority, the number of columns and the number of rows are the same as those of the initial two-dimensional matrix, and in the two-dimensional matrix of requests and resources of the resource request group with the highest priority, the row direction is also the resources required for each of the multiple resource requests, and the column direction is the resource requests received by each resource of the on-chip network at the same time. The only difference here is that in the row direction, except for the row where the resource requests in the resource request group with the highest priority are located, the other rows are all 0. The correspondence between the two-dimensional matrix of requests and resources means that the resource requests of the remaining resource request groups except the resource request group with the highest priority are shielded from the multiple resource requests received at the same time mentioned above, and here only resources are allocated to the resource requests in the resource request group with the highest priority.

[0054] Step 2022, select a part with only one 1 in a row and only one 1 in a column from the request and resource two-dimensional matrix, and set the remaining positions to 0, to obtain the allocation matrix corresponding to the resource request group with the highest priority; the dimension of the allocation matrix corresponding to the resource request group with the highest priority is the same as the dimension of the initial two-dimensional matrix.

[0055] The same dimension correspondence here means that: in the allocation matrix corresponding to the resource request group with the highest priority, the number of columns and the number of rows are the same as those of the initial two-dimensional matrix, and in the allocation matrix corresponding to the resource request group with the highest priority, the row direction is also the resources required by each resource request in the multiple resource requests, and the column direction is the resource request received by each resource of the on-chip network at the same time. The only difference here is that in the row direction, except for the row where the resource request in the resource request group with the highest priority is located, the other rows are all 0, and there is only one 1 in a row and only one 1 in a column, and the rest are all 0. The representation of the allocation matrix means that the resource requests of the resource request groups other than the resource request group with the highest priority are shielded from the multiple resource requests received at the same time, and here only the resource requests in the resource request group with the highest priority are allocated resources, and in the process of allocating resources to the resource requests in the resource request group with the highest priority, at the same time, only the same resource currently available in the on-chip network is allocated to one of the resource requests in the resource request group with the highest priority, and for the same resource request in the resource request group with the highest priority, only one resource is allocated to the resource request at the same time.

[0056] In a similar manner, a shielding matrix is ​​used to shield the resources allocated to the highest priority resource request group from the resources of the on-chip network, and then the allocation matrix corresponding to the second highest priority resource request group is used to continue allocating resources to the second highest priority resource request group. This resource allocation method ends after resources are allocated to the lowest priority resource request group.

[0057] Optionally, before grouping several resource requests received at the same time into several groups, the method may further include: when a resource request requests multiple resources, splitting the resource request into multiple resource requests that only request one resource respectively, thereby improving the degree of parallelism. For example, if resource request 1 requests three resources, namely resource A, resource B, and resource C, then before grouping, resource request 1 is split into three resource requests, which are a resource request that only requests resource A, a resource request that only requests resource B, and a resource request that only requests resource C.

[0058] It should be noted that, for the sake of simplicity, the method embodiments are described as a series of action combinations, but those skilled in the art should be aware that the embodiments of the present invention are not limited by the order of the actions described, because according to the embodiments of the present invention, certain steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in the specification are all preferred embodiments, and the actions involved are not necessarily required by the embodiments of the present invention.

[0059] Reference Figure 3 , Figure 3 A structural block diagram of an embodiment of a request allocation device for an on-chip network of the present invention is shown, which may specifically include the following modules: a grouping module 301, used to group multiple resource requests received at the same time according to priority to obtain a plurality of resource request groups; one resource request group contains a plurality of resource requests with the same priority, and resource requests in different resource request groups have different priorities; a model building module 302, used to establish a wavefront allocation model for the resources of the on-chip network and the plurality of resource requests; an allocation module 303, used to allocate the resources of the on-chip network to each of the resource request groups in order from high to low priority based on the wavefront allocation model.

[0060] Optionally, the model building module 302 includes: an allocation matrix building submodule, used to build an allocation matrix for each of the resource request groups; the allocation matrix is ​​used to allocate the same resource currently available to the on-chip network to only one resource request in one of the resource request groups at the same time, and for the same resource request in the resource request group, only one resource is allocated to the resource request at the same time; a shielding matrix building submodule, used to build a shielding matrix; the shielding matrix is ​​used to shield already allocated resources from the resources of the on-chip network.

[0061] Optionally, the allocation module 303 includes: a first allocation submodule, configured to allocate resources to each of the resource requests in the first resource request group from available resources of the on-chip network at the current moment based on an allocation matrix corresponding to the first resource request group;

[0062] The request allocation device of the network on chip further includes: a masking module, configured to mask the resources that have been allocated to the first resource request group from the available resources based on the masking matrix to obtain remaining resources;

[0063] The allocation module 303 also includes: a second allocation sub-module, used to allocate resources to each of the resource requests in the second resource request group from the remaining resources based on the allocation matrix corresponding to the second resource request group; the first resource request group and the second resource request group are both resource request groups among the several resource request groups, and the first resource request group is a resource request group with a priority one level higher than that of the second resource request group.

[0064] Optionally, the request allocation device of the network on chip further includes: an initial two-dimensional matrix establishment module, used to establish an initial two-dimensional matrix; in the initial two-dimensional matrix, the row direction is the resources required by each of the multiple resource requests, and the column direction is the resource request received by each of the resources of the network on chip at the same time; the initial two-dimensional matrix is ​​composed of 1 and 0, 0 represents that the resource in the column at the same time has not received the resource request in the row, or the resource request in the row at the same time has not applied for the resource in the column; 1 represents that the resource in the column at the same time has received the resource request in the row, or the resource request in the row at the same time has applied for the resource in the column;

[0065] The allocation matrix establishment submodule includes:

[0066] a request and resource two-dimensional matrix establishing unit, configured to select rows and columns corresponding to each resource request in the resource request group with the highest priority among the plurality of resource request groups from the initial two-dimensional matrix, and set the remaining positions to 0, so as to obtain a request and resource two-dimensional matrix of the resource request group with the highest priority; the dimension of the request and resource two-dimensional matrix is ​​the same as the dimension of the initial two-dimensional matrix;

[0067] an allocation matrix establishing unit, configured to select a portion having only one 1 in a row and only one 1 in a column from the request and resource two-dimensional matrix, and set the remaining positions to 0, to obtain an allocation matrix corresponding to the resource request group with the highest priority; the dimension of the allocation matrix corresponding to the resource request group with the highest priority is the same as the dimension of the initial two-dimensional matrix;

[0068] The first allocation submodule includes:

[0069] The first allocation unit is used to allocate the resources in the column where 1 is located in the allocation matrix corresponding to the resource request group with the highest priority to the resource request in the row where 1 is located.

[0070] Optionally, the request allocation device of the on-chip network further includes: a splitting module, which is used to split the resource request into multiple resource requests each requesting only one resource when one resource request requests multiple resources.

[0071] Figure 4 is a structural diagram of an electronic device provided by an embodiment of the present invention. Figure 4 The present invention also provides an electronic device, see Figure 4 , including: a processor 501, a memory 502, and a computer program 5021 stored in the memory and executable on the processor, wherein when the processor executes the program, the steps of each embodiment of the request allocation of the above-mentioned network on chip are implemented.

[0072] The present invention also provides a readable storage medium. When the instructions in the storage medium are executed by a processor of an electronic device, the electronic device can execute the steps of each embodiment of the above-mentioned request allocation method for on-chip network.

[0073] The present invention also provides a computer program product, comprising instructions, which, when executed by a processor in an electronic device, enable the electronic device to execute the steps of any one of the aforementioned embodiments of the request allocation method for an on-chip network.

[0074] The various embodiments in this specification are described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same or similar parts between the various embodiments can be referenced to each other.

[0075] It will be appreciated by those skilled in the art that the embodiments of the present invention may be provided as methods, devices, or computer program products. Therefore, the embodiments of the present invention may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, the embodiments of the present invention may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.

[0076] The embodiments of the present invention are described with reference to the flowcharts and / or block diagrams of the methods, terminal devices (systems), and computer program products according to the embodiments of the present invention. It should be understood that each process and / or block in the flowchart and / or block diagram, as well as the combination of the processes and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data transmission terminal device to generate a machine, so that the instructions executed by the processor of the computer or other programmable data transmission terminal device generate instructions for implementing the process in the flowchart. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0077] These computer program instructions may also be stored in a computer readable memory capable of directing a computer or other programmable data transmission terminal device to operate in a predictable manner, so that the instructions stored in the computer readable memory produce a manufactured product including an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.

[0078] These computer program instructions can also be loaded onto a computer or other programmable data transmission terminal device so that a series of operating steps are executed on the computer or other programmable terminal device to produce a computer-implemented process, thereby providing instructions for executing on the computer or other programmable terminal device to implement the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.

[0079] Although the preferred embodiments of the present invention have been described, those skilled in the art may make additional changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications that fall within the scope of the embodiments of the present invention.

[0080] Finally, it should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or terminal device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or terminal device. In the absence of further restrictions, the elements defined by the sentence "comprise a ..." do not exclude the existence of other identical elements in the process, method, article or terminal device including the elements.

[0081] The above is a detailed introduction to a method and device for allocating requests for a network on a chip, an electronic device and a storage medium provided by the present invention. Specific examples are used in this article to illustrate the principles and implementation methods of the present invention. The description of the above embodiments is only used to help understand the method of the present invention and its core idea. At the same time, for those skilled in the art, according to the idea of ​​the present invention, there will be changes in the specific implementation methods and application scopes. In summary, the content of this specification should not be understood as a limitation on the present invention.

Claims

1. A request allocation method for a network on chip, characterized in that: The method comprises: A plurality of resource requests received at the same time are grouped according to priorities to obtain a plurality of resource request groups; one resource request group includes a plurality of resource requests with the same priority, and resource requests in different resource request groups have different priorities; Establishing a wavefront allocation model for the resources of the network on chip and the multiple resource requests; the wavefront allocation model has a corresponding relationship with the multiple resource requests received at the same time and the currently available resources in the network on chip; Allocating network-on-chip resources to each resource request group in order of priority from high to low based on the wavefront allocation model; The establishing of a wavefront allocation model for the resources of the network on chip and the multiple resource requests includes: An allocation matrix is ​​established for each resource request group; the allocation matrix corresponding to the resource request group includes: a row direction and a column direction, the row direction includes the resources required or requested by each resource request in the resource request group, and the column direction includes each resource request in the resource request group; a group of resource requests in which both the resources and the requesters of the resource requests are mutually exclusive are obtained through the allocation matrix.

2. The method for allocating requests for a network on chip according to claim 1, characterized in that: The allocation matrix is ​​used to allocate the same resource currently available to the on-chip network to only one resource request in one resource request group at the same time, and for the same resource request in the resource request group, only one resource is allocated to the resource request at the same time; The step of establishing a wavefront allocation model for the resources of the network on chip and the multiple resource requests further includes: Create a shielding matrix; The shielding matrix is ​​used to shield the allocated resources from the resources of the network on chip.

3. The method for allocating requests for a network on chip according to claim 2, characterized in that: The allocating the resources of the network on chip to each of the resource request groups in order from high to low priority based on the wavefront allocation model includes: Allocate resources to each of the resource requests in the first resource request group from available resources of the network on chip at the current moment based on an allocation matrix corresponding to the first resource request group; The method further comprises: Based on the masking matrix, masking the resources that have been allocated to the first resource request group from the available resources to obtain remaining resources; The allocating the resources of the network on chip to each resource request group in order from high to low priority based on the wavefront allocation model also includes: Based on the allocation matrix corresponding to the second resource request group, resources are allocated to each of the resource requests in the second resource request group from the remaining resources; the first resource request group and the second resource request group are both resource request groups among the several resource request groups, and the first resource request group is a resource request group with a priority one level higher than that of the second resource request group.

4. The method for allocating requests for a network on chip according to claim 3, characterized in that: Before establishing the allocation matrix for each resource request group, the method further includes: Establish an initial two-dimensional matrix; in the initial two-dimensional matrix, the row direction is the resource required by each of the multiple resource requests, and the column direction is the resource request received by each of the resources of the on-chip network at the same time; the initial two-dimensional matrix is ​​composed of 1 and 0, 0 represents that the resource in the column at the same time has not received the resource request in the row, or the resource request in the row at the same time has not applied for the resource in the column; 1 represents that the resource in the column at the same time has received the resource request in the row, or the resource request in the row at the same time has applied for the resource in the column; The step of establishing an allocation matrix for each resource request group includes: Selecting rows and columns corresponding to each resource request in the resource request group with the highest priority among the plurality of resource request groups from the initial two-dimensional matrix, and setting the remaining positions to 0, to obtain a two-dimensional matrix of requests and resources of the resource request group with the highest priority; the dimension of the two-dimensional matrix of requests and resources is the same as the dimension of the initial two-dimensional matrix; Select a portion with only one 1 in a row and only one 1 in a column from the request and resource two-dimensional matrix, and set the remaining positions to 0, to obtain an allocation matrix corresponding to the resource request group with the highest priority; the dimension of the allocation matrix corresponding to the resource request group with the highest priority is the same as the dimension of the initial two-dimensional matrix; The allocating resources to each resource request in the first resource request group from available resources of the network on chip at the current moment based on the allocation matrix corresponding to the first resource request group includes: In the allocation matrix corresponding to the resource request group with the highest priority, the resources in the column where 1 is located are allocated to the resource request in the row where 1 is located.

5. The method for allocating requests for a network on chip according to any one of claims 1 to 4, characterized in that: Before grouping a plurality of resource requests received at the same time into a plurality of groups, the method further comprises: In the case where one resource request requests multiple resources, the resource request is split into multiple resource requests each requesting only one resource.

6. The method for allocating requests for a network on chip according to any one of claims 1 to 4, characterized in that: The step of establishing a wavefront allocation model comprises: The wavefront allocation model is established using hardware modeling language.

7. A request allocation device for a network on chip, characterized in that: include: A grouping module, used for grouping multiple resource requests received at the same time according to priority to obtain a number of resource request groups; One resource request group includes a plurality of resource requests with the same priority, and resource requests in different resource request groups have different priorities; A model building module, used to build a wavefront allocation model for the resources of the network on chip and the multiple resource requests; the wavefront allocation model has a corresponding relationship with the multiple resource requests received at the same time and the currently available resources in the network on chip; An allocation module, configured to allocate the resources of the on-chip network to each of the resource request groups in order from high to low priority based on the wavefront allocation model; The model building module comprises: An allocation matrix establishment submodule is used to establish an allocation matrix for each resource request group; the allocation matrix corresponding to the resource request group includes: a row direction and a column direction, the row direction includes the resources required or requested by each resource request in the resource request group, and the column direction includes each resource request in the resource request group; a group of resource requests in which both the resources and the requesters of the resource requests are mutually exclusive are obtained through the allocation matrix.

8. An electronic device, characterized in that: include: A processor, a memory, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the program, the request allocation method for the network on chip as claimed in any one of claims 1 to 6 is implemented.

9. A readable storage medium, characterized in that: When the instructions in the storage medium are executed by a processor of an electronic device, the electronic device is enabled to execute the request allocation method for a network on chip according to any one of claims 1 to 6.

10. A computer program product, characterized in that The invention comprises instructions, which, when executed by a processor in an electronic device, enable the electronic device to execute the request allocation method for a network on chip according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • Robust, reliable and rapid hybrid cloud platform resource dynamic allocation method and system

    CN117931422A

  • Resource allocation method, device and equipment of localized internet-of-things operating system and storage medium

    CN118860631A