System, processor, electronic equipment, arbiter and request arbitration method

By introducing an arbitrator into the Internet network system, adaptively changing the order of arbitration application, solving the problem of low access efficiency of Internet network buses in high-performance parallel computing, and achieving more efficient storage access efficiency.

CN119557247AActive Publication Date: 2025-03-04北京天数智芯半导体科技有限公司
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
CN202510122219.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-01-26
Publication Date
2025-03-04
Estimated Expiration
2045-01-26

AI Technical Summary

Technical Problem

In high-performance parallel computing, the L1 cache storage space is limited, resulting in data being mainly stored in device memory, which in turn leads to low bus access efficiency of the Internet network and affects storage access efficiency.

Method used

Design an Internet network system, including multiple L2 caches, multiple computing units and arbitrators. When there is an access conflict, the arbitrator decides whether to maintain the bus path unchanged based on the number of access objects and the amount of requested data of the access requested, and adaptively changes the order of arbitration application to reduce blockage on the bus path.

Benefits of technology

By improving the efficiency of the bus, it significantly improves the efficiency of storage access and reduces system crashes or performance degradation caused by resource contention.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119557247A_ABST
    Figure CN119557247A_ABST
Patent Text Reader

Abstract

The invention relates to an internet system, a processor, electronic equipment, an arbiter and an arbitration request method, and belongs to the technical field of electronics. The internet system comprises a plurality of L2 caches, a plurality of computing units and an arbiter, the arbiter is used for acquiring a request data volume sent to an access object by each request sending end if the access number of the access object of the access request is greater than or equal to a first threshold value when a plurality of access requests with access conflicts are acquired; and for each request sending end, according to a request data volume sent by the request sending end to the access object, determining whether a bus path between the request sending end and the access object is maintained unchanged, one request sending end being one of the plurality of computing units, and the other request sending end being one of the plurality of computing units. The access objects of the plurality of access requests are the same. According to the invention, the bus access efficiency of the internet can be improved, and the storage access efficiency is further improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application belongs to the field of electronic technology, and specifically relates to an Internet system, a processor, an electronic device, an arbitrator, and a method for requesting arbitration. Background Art

[0002] In high-performance parallel computing, a large amount of data needs to be calculated, but the storage space of L1 cache is limited. Data is mainly stored in device memory. Multiple L1 caches are connected to device memory through the Internet. In high-performance parallel computing, a large amount of storage access is involved. Storage access efficiency is one of the key factors that determine overall performance. With the explosive growth of data volume and the increasing complexity of computing requirements, how to improve the bus access efficiency of the Internet is relatively important for improving storage access efficiency. Summary of the invention

[0003] In view of this, the purpose of the present application is to provide an Internet system, a processor, an electronic device, an arbitrator and a request arbitration method to improve the bus access efficiency of the Internet and further improve the storage access efficiency.

[0004] The embodiment of the present application is implemented as follows: In a first aspect, an embodiment of the present application provides an Internet network system, comprising: multiple L2 caches, multiple computing units and an arbitrator; each of the computing units can access each L2 cache in the multiple L2 caches; the arbitrator is connected to each of the computing units, and is connected to each of the L2 caches through a bus; the arbitrator is used to, when obtaining multiple access requests with access conflicts, obtain the amount of request data sent by each request sender to the access object if the number of accesses to the access object of the access request is greater than or equal to a first threshold; and for each request sender, determine whether to maintain the bus path between the request sender and the access object unchanged according to the amount of request data sent by the request sender to the access object; wherein one of the request senders is one of the multiple computing units, and the access objects of the multiple access requests are the same.

[0005] In the above embodiment, when there are multiple access requests with access conflicts, if the access quantity of the access object of the access request is greater than or equal to the first threshold value, it will determine whether to maintain the bus path between the request sending end and the access object unchanged based on the amount of request data sent by the request sending end to the access object, and can adaptively change the arbitration application order to allow the subsequent access requests to be processed first. Compared with the traditional fair polling arbitration mechanism, it can effectively reduce the congestion on the bus path, can more effectively improve the utilization efficiency of the bus, improve the bus access efficiency of the Internet, and thus improve the storage access efficiency.

[0006] In combination with a possible implementation manner of the embodiment of the first aspect, the arbitrator is used to: if the amount of request data sent by the request sending end to the access object is greater than or equal to a second threshold, maintain the bus path between the request sending end and the access object unchanged, so as to give priority to processing the access requests for accessing the access object among all the access requests cached by the cache queue of the request sending end at the current moment; or, if the amount of request data sent by the request sending end to the access object is less than the second threshold, switch the bus path between the request sending end and the access object to the bus path between the request sending end and other access objects, so as to give priority to processing the access requests for accessing the other access objects among all the access requests cached by the cache queue of the request sending end at the current moment.

[0007] In the above embodiment, if the amount of request data sent by the request sending end to the access object is relatively large (i.e. greater than or equal to the second threshold), priority is given to processing access requests for accessing the access object among all access requests cached by the cache queue at the current moment. This can avoid clogging of the cache queue, which causes new requests to be unable to enter the cache queue and reduce access efficiency. Conversely, if the amount of request data sent by the request sending end to the access object is relatively small (i.e. less than the second threshold), priority is given to processing access requests for accessing other access objects among all access requests cached by the cache queue. This can improve access efficiency.

[0008] In combination with a possible implementation manner of the embodiment of the first aspect, the arbitrator is also used to: determine an access object of each access request among the multiple access requests, and if the access objects of the multiple access requests are the same at the same time, determine that there is an access conflict among the multiple access requests.

[0009] In the above embodiment, by determining the access object of each access request, it is possible to quickly determine whether there is an access conflict, and then quickly perform an arbitration mechanism to resolve the resource conflict, thereby avoiding system crash or performance degradation caused by resource contention.

[0010] In combination with a possible implementation manner of the embodiment of the first aspect, the arbitrator is also used to: if the number of accesses to the access object is less than the first threshold, adjust the polling strategy during arbitration according to the amount of request data sent to the access object by each request sender, wherein the polling strategy includes the number of access requests sent by each request sender to the access object each time.

[0011] In the above embodiment, when the number of accesses to the access object is less than the first threshold, a polling method is used to handle access requests with access conflicts. During arbitration, the number of access requests sent by each request sender to the access object each time during polling can be adjusted according to the amount of request data sent by each request sender to the access object. For example, the greater the amount of request data, the greater the number of access requests that can be sent to the access object each time. This is beneficial to load balancing and reducing conflicts.

[0012] In combination with a possible implementation manner of the embodiment of the first aspect, the arbitrator includes: an object determination module, a load balancing module and an arbitration module; the object determination module is used to determine the access object of each access request received, wherein if multiple access requests with the same access object are received at the same time, there is an access conflict among the multiple access requests; the load balancing module is connected to the object determination module, and the load balancing module is used to determine the number of accesses to each access object; the arbitration module is connected to the object determination module and the load balancing module respectively, and the arbitration module is used to, when multiple access requests with access conflicts are obtained, if the number of accesses to the access object of the access request is greater than or equal to a first threshold, obtain the amount of request data sent by each request sending end to the access object; and for each request sending end, determine whether to maintain the bus path between the request sending end and the access object unchanged according to the amount of request data sent by the request sending end to the access object.

[0013] In the above embodiment, the arbitrator using the above structure is improved by adding an object determination module and a load balancing module to the traditional arbitrator. Through the mutual cooperation of the object determination module, the load balancing module and the arbitration module, when there is an access conflict, the arbitration application order can be adaptively changed, which can effectively reduce the congestion on the path and improve the utilization efficiency of the bus compared with the traditional fair polling arbitration mechanism.

[0014] In a second aspect, an embodiment of the present application further provides an interconnection network system, comprising a plurality of interconnection network structures, wherein the plurality of interconnection network structures are connected via a bus, and each of the interconnection network structures comprises a plurality of L2 caches, a plurality of computing units, and an arbitrator; the arbitrator is connected to each of the computing units, and is connected to each of the L2 caches via a bus; each of the computing units can access each of the plurality of L2 caches; the arbitrator is used to, when obtaining a plurality of access requests with access conflicts, obtain the amount of request data sent by each request sender to the access object if the number of accesses to the access object of the access request is greater than or equal to a first threshold; and for each request sender, determine whether to maintain the bus path between the request sender and the access object unchanged according to the amount of request data sent by the request sender to the access object; wherein one of the request senders is a computing unit among the plurality of computing units, and the access objects of the plurality of access requests are the same.

[0015] In the above embodiment, by splitting the Internet system into multiple Internet structures, each Internet structure can be accessed in parallel, which can improve access efficiency and reduce the number of buses, thereby improving the utilization rate of on-chip buses.

[0016] In a third aspect, an embodiment of the present application further provides a processor, comprising an Internet system provided by any possible implementation manner of the embodiment of the first aspect above, or an Internet system provided by the embodiment of the second aspect above.

[0017] In a fourth aspect, an embodiment of the present application further provides an electronic device, such as the processor provided in the embodiment of the third aspect above.

[0018] In the fifth aspect, an embodiment of the present application also provides an arbitrator, including: an object determination module, a load balancing module and an arbitration module; the object determination module is used to determine the access object of each access request received, wherein if multiple access requests with the same access object are received at the same time, there is an access conflict between the multiple access requests; the load balancing module is connected to the object determination module, and the load balancing module is used to determine the number of accesses to each access object; the arbitration module is connected to the object determination module and the load balancing module respectively, and the load balancing module is used to, when multiple access requests with access conflicts are obtained, if the number of accesses to the access object of the access request is greater than or equal to a first threshold, obtain the amount of request data sent by each request sending end to the access object; and for each request sending end, determine whether to maintain the bus path between the request sending end and the access object unchanged according to the amount of request data sent by the request sending end to the access object.

[0019] In a sixth aspect, an embodiment of the present application further provides a request arbitration method, which is applied to an arbitrator, and the method includes: when multiple access requests with access conflicts are obtained, determining the access quantity of the access object of the access request; wherein the access objects of the multiple access requests are the same; obtaining the amount of request data sent by each request sending end to the access object; if the access quantity of the access object of the access request is greater than or equal to a first threshold, for each request sending end, determining whether to maintain the bus path between the request sending end and the access object unchanged according to the amount of request data sent by the request sending end to the access object.

[0020] Other features and advantages of the present application will be described in the following description. The purpose and other advantages of the present application can be realized and obtained through the structures specifically pointed out in the written description and the drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0021] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments. Obviously, the drawings described below are only some embodiments of the present application. For those of ordinary skill in the art, other drawings can also be obtained based on these drawings. The above and other purposes, features and advantages of the present application will be more clearly shown in the drawings.

[0022] Figure 1a A structural schematic diagram of the first Internet system provided in an embodiment of the present application being connected to a device memory is shown.

[0023] Figure 1b A schematic diagram of the structure of a second Internet system connected to a device memory provided in an embodiment of the present application is shown.

[0024] Figure 2 A schematic diagram of the structure of an arbitrator provided in an embodiment of the present application is shown.

[0025] Figure 3 A schematic diagram of the structure of an arbitration module provided in an embodiment of the present application is shown.

[0026] Figure 4 A schematic diagram of the structure of a third Internet system connected to a device memory provided in an embodiment of the present application is shown.

[0027] Figure 5 A flowchart of a method for requesting arbitration provided in an embodiment of the present application is shown.

[0028] Figure 6 A schematic structural diagram of an electronic device provided in an embodiment of the present application is shown. DETAILED DESCRIPTION

[0029] The technical solutions in the embodiments of the present application will be described below in conjunction with the accompanying drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all of the embodiments. The following embodiments can be used as examples to more clearly illustrate the technical solutions of the present application, and cannot be used to limit the scope of protection of the present application. It will be appreciated by those skilled in the art that, in the absence of conflict, the features in the following embodiments and embodiments can be combined with each other.

[0030] It should be noted that similar numbers and letters represent similar items in the following figures, so once an item is defined in one figure, it does not need to be further defined and explained in subsequent figures. At the same time, in the description of this application, relational terms such as "first", "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 "comprise", "include" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or 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 device.

[0031] Furthermore, the term "and / or" in this application is merely a term used to describe the association relationship between associated objects, indicating that three relationships may exist. For example, A and / or B may represent three situations: A exists alone, A and B exist at the same time, and B exists alone.

[0032] In the description of the embodiments of the present application, unless otherwise clearly specified or limited, the technical term "connection" may refer to a direct connection or an indirect connection through an intermediate medium.

[0033] In order to improve storage access efficiency, the present application embodiment provides an Internet network system. Figure 1a , Figure 1b The Internet network system provided in the embodiment of the present application is described. Figure 1a , Figure 1b As shown, the interconnection network system includes multiple L2 caches, multiple computing units, and an arbiter. The arbiter can be connected to each computing unit through a bus or not. For example, Figure 1a The arbiter is connected to each computing unit and each L2 cache through a bus. Figure 1b The arbiter is connected to each computing unit not through a bus, and the arbiter is connected to each L2 cache through a bus.

[0034] Figure 1aIn the example shown, an interconnection network system including 8 L2 caches and 4 computing units is shown, wherein the 8 L2 caches are L2 cache 1, L2 cache 2, L2 cache 3, L2 cache 4, L2 cache 5, L2 cache 6, L2 cache 7, and L2 cache 8. The 4 computing units are computing unit 1, computing unit 2, computing unit 3, and computing unit 4. The term "multiple" may refer to 2 or more, and therefore, the number of L2 caches and computing units is not limited to the values ​​in the above example.

[0035] Each computing unit can access each L2 cache in multiple L2 caches. In one possible implementation, each computing unit includes an L1 cache. When obtaining data required for calculation, it can first search the local L1 cache. If the L1 cache does not hit, an access request is initiated to the L2 cache through the arbiter.

[0036] In some possible implementations, multiple L2 caches are connected to a device memory. By setting multiple L2 caches, the device memory can be accessed simultaneously, thereby improving the access efficiency of the device memory. The L2 cache is a cache before the device memory, which is divided into several parts, each of which corresponds to a device memory. In this example, each device memory corresponds to 8 L2 caches.

[0037] The device memory includes, but is not limited to, random access memory (RAM), read only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), and electrically erasable read-only memory (EEPROM).

[0038] The arbitrator is mainly used to resolve resource conflicts when access conflicts occur. The arbitrator determines which computing unit has priority access through certain rules and priorities, thereby avoiding system crashes or performance degradation caused by resource contention.

[0039] In some embodiments, the arbitrator is used to obtain multiple access requests with access conflicts, wherein the access objects of the multiple access requests with access conflicts are the same; if the access quantity of the access object of the access request is greater than or equal to a first threshold, obtain the amount of request data sent by each request sender to the access object, wherein a request sender is a computing unit among multiple computing units; and for each request sender, determine whether to maintain the bus path between the request sender and the access object unchanged according to the amount of request data sent by the request sender to the access object. When there is an access conflict, the present application can adaptively change the arbitration application order based on the principle of reducing application conflicts. Compared with the traditional fair polling arbitration mechanism, it can effectively reduce the congestion on the bus path and can more effectively improve the utilization efficiency of the bus.

[0040] The multiple access requests with access conflicts come from multiple request senders. For example, each request sender may send only one access conflict at a certain moment. The access request in the present application may be a read request.

[0041] When the access quantity of the access object is greater than or equal to the first threshold, the access object will no longer be able to receive new access requests, and can continue to receive new access requests only after the access object releases the access request.

[0042] In some embodiments, when the arbitrator determines whether to maintain the bus path between the request sender and the access object unchanged based on the amount of request data sent by the request sender to the access object, it is specifically used to: if the amount of request data sent by the request sender to the access object is greater than or equal to a second threshold, maintain the bus path between the request sender and the access object unchanged to give priority to processing access requests for accessing the access object among all access requests cached by the cache queue of the request sender at the current moment; or, if the amount of request data sent by the request sender to the access object is less than the second threshold, switch the bus path between the request sender and the access object to the bus path between the request sender and other access objects to give priority to processing access requests for accessing other access objects among all access requests cached by the cache queue of the request sender at the current moment.

[0043] In one possible implementation, each request sending end, that is, each computing unit, includes a cache queue for storing access requests. The amount of request data sent by the request sending end to the access object may refer to the amount of request data sent to the access object among all access requests cached by the cache queue in the request sending end at the current moment. The cache queue in this application is a non-FIFO (first in, first out) queue, which allows requests that enter the queue later to be processed first.

[0044] After the access object cannot receive new access requests, if the amount of request data sent to the access object among all the access requests cached by the cache queue at the current moment is relatively large (i.e., greater than or equal to the second threshold), the access requests to the access object among all the access requests cached by the cache queue at the current moment are preferentially processed, thereby avoiding the cache queue from being blocked, resulting in new requests being unable to enter the cache queue and reducing access efficiency. If the amount of request data sent to the access object among all the access requests cached by the cache queue at the current moment is relatively small (i.e., less than the second threshold), the access requests to other access objects among all the access requests cached by the cache queue are preferentially processed, thereby improving access efficiency.

[0045] For example, suppose there are 5 access requests in the cache queue at the current moment, of which 4 access requests are for accessing L2 cache 1 and 1 access request is for accessing L2 cache 2. At this time, the bus path between the request sender and the access object (L2 cache 1) continues to remain unchanged, and the 4 access requests in the cache queue are preferentially sent to L2 cache 1 for processing. In this way, the storage space of the cache queue can be released to avoid cache queue congestion.

[0046] Assume that multiple access requests with access conflicts come from three request senders (i.e., computing units), and these three request senders are request sender 1, request sender 2, and request sender 3. If the amount of request data sent by request sender 1 to the access object is relatively large, the bus path between request sender 1 and the access object is maintained unchanged; if the amount of request data sent by request sender 2 to the access object is relatively large, the bus path between request sender 2 and the access object is maintained unchanged; if the amount of request data sent by request sender 3 to the access object is relatively small, the bus path between request sender 3 and the access object is switched to the bus path between request sender 3 and other access objects (such as access object 2).

[0047] The second threshold can be determined according to the number of access requests cached by the cache queue. For example, the second threshold can be greater than or equal to 70% of the number. Assuming that the cache queue caches 10 access requests, the second threshold can be set to 7.

[0048] In some possible implementations, the arbitrator is also used to: if the number of accesses to the access object is less than a first threshold, adjust the polling strategy during arbitration according to the amount of request data sent by each request sender to the access object, wherein the polling strategy includes the number of access requests sent by each request sender to the access object each time. In this implementation, if the access object can continue to receive new access requests, a polling method is used to handle access requests with access conflicts, and during arbitration, the number of access requests sent by each request sender to the access object each time during polling can be adjusted according to the amount of request data sent by each request sender to the access object. The more the request data, the more access requests can be sent to the access object each time, which is beneficial to load balancing and conflict reduction.

[0049] Assume that three request senders send access requests to the same access object at the same time. If the access object can continue to receive new access requests (that is, the number of access requests to the access object is less than the first threshold), at this time, a polling method is used to handle access requests with access conflicts. For example, suppose that the number of access requests sent by the three request senders to the access object is 6, 5, and 3 respectively, and the three request senders are request sender 1, request sender 2, and request sender 3 respectively. In the first round of arbitration, it can be: first send the two access requests of request sender 1 to the access object, and then send the two access requests of request sender 1 to the access object. In the first round of arbitration, the two access requests from request sender 2 are sent to the access object, and finally the one access request from request sender 3 is sent to the access object; in the second round of arbitration, the two access requests from request sender 1 are sent to the access object first, and then the two access requests from request sender 2 are sent to the access object, and finally the one access request from request sender 3 is sent to the access object; in the third round of arbitration, the two access requests from request sender 1 are sent to the access object first, and then the one access request from request sender 2 is sent to the access object, and finally the one access request from request sender 3 is sent to the access object.

[0050] When polling is performed, polling may be performed according to the priority of the request sender, and the request with the highest priority is processed first.

[0051] In some embodiments, the arbitrator is also used to: determine the access object of each access request among multiple access requests, and if the access objects of multiple access requests are the same at the same time, determine that there is an access conflict among the multiple access requests. In this embodiment, the arbitrator will determine the access object of the access request from each computing unit, and if multiple access requests with the same access object are received at the same time, it is determined that there is an access conflict among the multiple access requests, and then arbitration will be performed. At the same time, if the access objects of the access requests sent by each computing unit are different, there is no need for arbitration, and the access request can be directly sent to the access object of the object.

[0052] The access object is the above-mentioned L2 cache, and each of the multiple L2 caches has a unique identifier for distinction. Each access request includes an access object identifier, and the corresponding access object can be determined according to the access object identifier included in the access request.

[0053] In some possible implementations, such as Figure 2 As shown, the arbitrator includes: an object determination module, a load balancing module and an arbitration module. The load balancing module is connected to the object determination module, and the arbitration module is connected to the object determination module and the load balancing module respectively. By improving the traditional arbitrator, the object determination module and the load balancing module are added, so that when there is an access conflict, the arbitration application order can be adaptively changed, which can effectively reduce the congestion on the path and improve the utilization efficiency of the bus compared with the traditional fair polling arbitration mechanism.

[0054] The object determination module is used to determine the access object of each access request received, and inform the load balancing module and the arbitration module of the determined access object. If multiple access requests with the same access object are received at the same time, there is an access conflict between these multiple access requests. The load balancing module is used to determine the number of accesses to each access object. In some possible implementations, the load balancing module is also used to determine whether the number of accesses to each access object is greater than or equal to a first threshold, and inform the arbitration module of the judgment result. Each time the arbitration module sends an access request to the access object, the load balancing module will count, such as adding 1. After the access object releases the access request, the load balancing module will update the count, such as subtracting 1, so that the load balancing module can obtain the number of accesses currently being accessed by each access object. The arbitration module is used to obtain the amount of request data sent by each request sender to the access object if the number of accesses of the access object of the access request is greater than or equal to the first threshold when multiple access requests with access conflicts are obtained; and for each request sender, according to the amount of request data sent by the request sender to the access object, determine whether to maintain the bus path between the request sender and the access object unchanged.

[0055] For example, when the request sending end sends the access request to the arbitration module, it also sends the request to the object determination module, and the object determination module determines the access object of each access request received, and then informs the load balancing module and the arbitration module of the determined access object. The load balancing module can determine whether the number of accesses to the access object is greater than or equal to the first threshold, and inform the arbitration module of the judgment result. When there is an access conflict, the arbitration module can analyze the request data volume of the access request to the access object in all the access requests cached in the cache queues of the multiple request sending ends with the access conflict, and then determine whether to maintain the bus path between the request sending end and the access object unchanged based on the request data volume.

[0056] The arbitration module is specifically used to maintain the bus path between the request sending end and the access object unchanged if the amount of request data sent by the request sending end to the access object is greater than or equal to a second threshold value, so as to give priority to processing the access request for accessing the access object among all the access requests cached by the cache queue of the request sending end at the current moment; or, if the amount of request data sent by the request sending end to the access object is less than the second threshold value, switch the bus path between the request sending end and the access object to the bus path between the request sending end and other access objects, so as to give priority to processing the access request for accessing other access objects among all the access requests cached by the cache queue of the request sending end at the current moment.

[0057] In some possible implementations, the arbitration module is also used to adjust the polling strategy during arbitration according to the amount of request data sent to the access object by each request sender if the number of accesses to the access object is less than a first threshold, wherein the polling strategy includes the number of access requests sent by each request sender to the access object each time.

[0058] In some possible implementations, the arbitration module may be implemented based on a programmable logic device. Figure 3 As shown, the arbitration module includes a request statistics unit, a threshold judgment unit and a request selection unit. The object determination module is connected to each request statistics unit respectively, and the load balancing module is connected to the request selection unit.

[0059] The request statistics unit is used to count the amount of request data sent by each request sending end to each access object. The access object of each access request can be learned from the object determination module.

[0060] The threshold determination unit is used to determine whether the amount of request data sent by the request sending end to the access object is greater than or equal to a second threshold.

[0061] In some embodiments, if the number of accesses to the access object of the access request is greater than or equal to a first threshold, the request selection unit is used to select whether to maintain the bus path between the request sending end and the access object unchanged, or to switch the bus path between the request sending end and the access object to the bus path between the request sending end and other access objects. In some other embodiments, if the number of accesses to the access object of the access request is less than the first threshold, the request selection unit is used to adjust the polling strategy during arbitration according to the amount of request data sent by each request sending end to the access object.

[0062] In a possible implementation, the interconnection network system includes multiple interconnection network structures, which are connected through a bus and an intermediate module, wherein each interconnection network structure includes the above-mentioned multiple L2 caches, multiple computing units and an arbitrator, and the result of each interconnection network structure is as described above. Figure 1a or Figure 1b In this implementation mode, the schematic diagram of the Internet system is as shown in Figure 4 In some possible implementations, the Internet system may also include two Figure 1a or Figure 1b The structure shown in the figure. By dividing the Internet system into two parts, if each part needs to access the L2 cache on the opposite side, it needs to go through the intermediate module.

[0063] The middle module contains an intra-queue, which caches the data that the other half wants to access. For example, if the left interconnection network structure wants to access the L2 cache in the right interconnection network structure, it will first search in the internal queue. If it does not hit, it will send the request to the other side. Similarly, the right interconnection network structure accesses the L2 cache in the left interconnection network structure. Adding an intermediate module can reduce the number of lines required for cross-network connections.

[0064] exist Figure 4 In the example shown, the internetwork system includes multiple internetwork structures with the same structure, and the load balancing module is also used to evenly distribute access requests to multiple internetwork structures to prevent any single internetwork structure from performance degradation or collapse due to overload.

[0065] Based on the same inventive concept, the present application embodiment also provides an arbitrator, whose structure is as described above. Figure 2 As shown, the arbitrator provided in the embodiment of the present application has the same implementation principle and technical effects as those in the aforementioned Internet system embodiment. For the sake of brief description, for matters not mentioned in the arbitrator embodiment, reference may be made to the corresponding contents in the aforementioned Internet system embodiment.

[0066] Based on the same inventive concept, the embodiment of the present application further provides a request arbitration method, which can be applied to the arbitrator in the above-mentioned Internet system. Figure 5 The method is described.

[0067] S1: When multiple access requests with access conflicts are obtained, determine the access quantity of the access objects of the access requests.

[0068] S2: Obtain the amount of request data sent by each request sender to the access object.

[0069] It may be to obtain the amount of request data sent to the access object by each request sender corresponding to multiple access requests with access conflicts, or it may be to obtain the amount of request data sent to the access object from all access requests cached in the cache queue in the request sender at the current moment.

[0070] S3: Determine whether the access quantity of the access object of the access request is greater than or equal to a first threshold.

[0071] If the access quantity of the access object of the access request is greater than or equal to the first threshold, S4 is executed; if the access quantity of the access object of the access request is less than the first threshold, S5 is executed.

[0072] S4: For each request sending end, determine whether to maintain the bus path between the request sending end and the access object unchanged according to the amount of request data sent by the request sending end to the access object.

[0073] In this process, if the amount of request data sent by the request sending end to the access object is greater than or equal to a second threshold, the bus path between the request sending end and the access object is maintained unchanged to give priority to processing access requests to the access object among all access requests cached by the cache queue of the request sending end at the current moment; or, if the amount of request data sent by the request sending end to the access object is less than the second threshold, the bus path between the request sending end and the access object is switched to a bus path between the request sending end and other access objects to give priority to processing access requests to the other access objects among all access requests cached by the cache queue of the request sending end at the current moment.

[0074] S5: adjusting the polling strategy during arbitration according to the amount of request data sent by each request sender to the access object.

[0075] The implementation principle and technical effects provided by the method embodiment are the same as those of the arbitrator embodiment in the aforementioned Internet system. For the sake of brief description, for matters not mentioned in the method embodiment, reference may be made to the corresponding contents in the aforementioned Internet system embodiment.

[0076] Based on the same inventive concept, an embodiment of the present application further provides a processor, which includes the above-mentioned Internet system. In some possible implementations, the processor may also include the above-mentioned arbitrator.

[0077] The processor provided in the embodiment of the present application may include at least one of a central processing unit (CPU), a graphics processing unit (GPU), an artificial intelligence (AI) processor, a neural network processor (NPU), an image signal processor (ISP), a display processor (DPU), a video processing unit (VPU), and a digital signal processor (DSP).

[0078] The Internet system provided by the processor embodiment has the same implementation principle and technical effects as those of the aforementioned Internet system embodiment. For the sake of brief description, for matters not mentioned in the processor embodiment, reference can be made to the corresponding contents in the aforementioned Internet system embodiment. Based on the same inventive concept, the present application embodiment further provides an electronic device, which includes the above-mentioned processor. In some possible implementations, the structural block diagram of the electronic device provided by the present application embodiment is as follows: Figure 6 The electronic device comprises: a transceiver, a memory, a communication bus and a processor. The transceiver, the memory, and the processor are electrically connected to each other directly or indirectly to achieve data transmission or interaction. For example, these elements can be electrically connected to each other through one or more communication buses or signal lines. The transceiver is used to send and receive data. The memory is used to store computer programs or data, wherein the computer program includes at least one software function module that can be stored in the memory in the form of software or firmware or solidified in the operating system (OS) of the electronic device. The processor is used to execute the software function module or computer program stored in the memory.

[0079] Among them, the memory can be, but is not limited to, random access memory (RAM), read only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable read-only memory (EEPROM), etc.

[0080] The processor may be an integrated circuit chip with signal processing capabilities. The above-mentioned processor may be a general-purpose processor, including a central processing unit (CPU), a graphics processing unit (GPU), a network processor (NP), a graphics processing unit (GPU), an accelerated processing unit (Accelerated Processing Unit), a multimedia application processor (MAP), a microprocessor, etc.; it may also be a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. Or the processor may also be any conventional processor, etc.

[0081] The above-mentioned electronic devices include but are not limited to computers, servers, etc.

[0082] It should be noted that 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.

[0083] In several embodiments provided in the present application, it should be understood that the disclosed devices and methods can also be implemented in other ways. The device embodiments described above are merely schematic. For example, the flowcharts and block diagrams in the accompanying drawings show the possible architecture, functions and operations of the devices, methods and computer program products according to multiple embodiments of the present application. In this regard, each box in the flowchart or block diagram can represent a module, a program segment or a part of a code, and the module, a program segment or a part of a code contains one or more executable instructions for implementing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order from the order marked in the accompanying drawings. For example, two consecutive boxes can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flowchart, and the combination of boxes in the block diagram and / or flowchart can be implemented with a dedicated hardware-based system that performs a specified function or action, or can be implemented with a combination of dedicated hardware and computer instructions.

[0084] In addition, the functional modules in the various embodiments of the present application may be integrated together to form an independent part, or each module may exist separately, or two or more modules may be integrated to form an independent part.

[0085] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any technician familiar with the technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.

Claims

1. An Internet system, characterized in that: include: Multiple L2 caches; a plurality of computing units, each of the computing units being capable of accessing each of the plurality of L2 caches; Arbitrator; connected to each of the computing units, and connected to each of the L2 caches via a bus; The arbitrator is used for, when obtaining multiple access requests with access conflicts, obtaining the amount of request data sent by each request sending end to the access object if the access quantity of the access object of the access request is greater than or equal to a first threshold; and for each request sending end, determining whether to maintain the bus path between the request sending end and the access object unchanged according to the amount of request data sent by the request sending end to the access object; Among them, one of the request sending ends is a computing unit among the multiple computing units, and the access objects of the multiple access requests are the same.

2. The Internet system according to claim 1, characterized in that: The arbitrator is used to: If the amount of request data sent by the request sending end to the access object is greater than or equal to a second threshold, maintaining the bus path between the request sending end and the access object unchanged, so as to give priority to processing the access request for accessing the access object among all the access requests cached by the cache queue of the request sending end at the current moment; or, If the amount of request data sent by the request sender to the access object is less than the second threshold, the bus path between the request sender and the access object is switched to the bus path between the request sender and other access objects, so as to give priority to processing access requests to the other access objects among all access requests cached in the cache queue of the request sender at the current moment.

3. The Internet system according to claim 1, characterized in that: The arbitrator is also used to: An access object of each access request among the multiple access requests is determined, and if the access objects of the multiple access requests are the same at the same time, it is determined that there is an access conflict among the multiple access requests.

4. The Internet system according to claim 1, characterized in that: The arbitrator is also used to: If the number of accesses to the access object is less than the first threshold, the polling strategy during arbitration is adjusted according to the amount of request data sent by each request sender to the access object, wherein the polling strategy includes the number of access requests sent by each request sender to the access object each time.

5. The Internet system according to claim 1, characterized in that: The arbitrator comprises: An object determination module, used to determine an access object of each received access request, wherein if multiple access requests with the same access object are received at the same time, there is an access conflict among the multiple access requests; A load balancing module, connected to the object determination module, and configured to determine the number of visits to each access object; The arbitration module is connected to the object determination module and the load balancing module respectively. The arbitration module is used to obtain the amount of request data sent by each request sending end to the access object when multiple access requests with access conflicts are obtained, if the number of accesses to the access object of the access request is greater than or equal to a first threshold; and for each request sending end, determine whether to maintain the bus path between the request sending end and the access object unchanged according to the amount of request data sent by the request sending end to the access object.

6. An Internet system, characterized in that: include: A plurality of interconnection network structures, the plurality of interconnection network structures are connected via a bus, each of the interconnection network structures comprises a plurality of L2 caches, a plurality of computing units and an arbitrator; the arbitrator is connected to each of the computing units, and is connected to each of the L2 caches via the bus; Each of the computing units can access each of the plurality of L2 caches; The arbitrator is used for, when obtaining multiple access requests with access conflicts, obtaining the amount of request data sent by each request sending end to the access object if the access quantity of the access object of the access request is greater than or equal to a first threshold; and for each request sending end, determining whether to maintain the bus path between the request sending end and the access object unchanged according to the amount of request data sent by the request sending end to the access object; Among them, one of the request sending ends is a computing unit among the multiple computing units, and the access objects of the multiple access requests are the same.

7. A processor, characterized in that: Comprising an internet system as described in any one of claims 1-6.

8. An electronic device, characterized in that: A processor as claimed in claim 7.

9. An arbitrator, characterized in that: include: An object determination module, used to determine an access object of each received access request, wherein if multiple access requests with the same access object are received at the same time, there is an access conflict among the multiple access requests; A load balancing module, connected to the object determination module, and configured to determine the number of visits to each access object; The arbitration module is connected to the object determination module and the load balancing module respectively. The load balancing module is used to obtain the amount of request data sent by each request sending end to the access object when multiple access requests with access conflicts are obtained, if the number of accesses to the access object of the access request is greater than or equal to a first threshold; and for each request sending end, determine whether to maintain the bus path between the request sending end and the access object unchanged according to the amount of request data sent by the request sending end to the access object.

10. A method for requesting arbitration, characterized in that: Applied to an arbitrator, the method comprises: When multiple access requests with access conflicts are obtained, determining the access quantity of the access object of the access request; wherein the access objects of the multiple access requests are the same; Obtaining the amount of request data sent by each request sender to the access object; If the access quantity of the access object of the access request is greater than or equal to the first threshold, for each request sending end, determine whether to maintain the bus path between the request sending end and the access object unchanged according to the amount of request data sent by the request sending end to the access object.

Citation Information

Patent Citations

  • Common priority information for multiple resource arbitration

    CN110297710A

  • Arbiter, arbitration method, controller and chip

    CN114185823A

  • Two-stage cache interconnection structure based on multi-bus protocol flexible conversion

    CN114416632A

  • Multi-port arbitration method, device and equipment and computer readable storage medium

    CN114567607A

  • On-chip cache structure, AI chip and electronic equipment

    CN117762859A