A system, a processor, an electronic device, an arbiter, and a request arbitration method
By introducing an arbitrator into the Internet network system, adaptively adjusting the arbitration application sequence and bus path, the problem of low bus access efficiency in high-performance parallel computing is solved, and more efficient storage access efficiency is achieved.
Patent Information
- Application Number
- CN202510122219.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-01-26
- Publication Date
- 2025-07-01
- Estimated Expiration
- 2045-01-26
AI Technical Summary
In high-performance parallel computing, the L1 cache storage space is limited, resulting in data being mainly stored in device memory, which in turn causes the problem of low bus access efficiency in Internet network systems.
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 adjusts the arbitration application order to reduce blockage on the bus path.
By improving bus access efficiency, it significantly improves storage access efficiency and reduces system crashes or performance degradation caused by resource contention.
Smart Images

Figure CN119557247B_ABST
Abstract
Description
Technical Field
[0001] This application belongs to the field of electronic technology, and particularly relates to an Internet system, a processor, an electronic device, an arbiter, and a request arbitration method. Background Art
[0002] In high-performance parallel computing, a large amount of data needs to be calculated. However, the storage space of the L1 cache is limited, and the data is mainly stored in the device memory. Multiple L1 caches are connected to the device memory through an Internet system. A large number of memory accesses are involved in high-performance parallel computing, and the memory access efficiency is one of the key factors determining the overall performance. With the explosive growth of data volume and the increasing complexity of computing requirements, it is important to improve the bus access efficiency of the Internet system for improving the memory access efficiency. Summary of the Invention
[0003] In view of this, the purpose of this application is to provide an Internet system, a processor, an electronic device, an arbiter, and a request arbitration method to improve the bus access efficiency of the Internet system, and thus improve the memory access efficiency.
[0004] The embodiments of this application are implemented as follows:
[0005] In a first aspect, an embodiment of this application provides an Internet system, including: multiple L2 caches, multiple computing units, and an arbiter; each of the computing units can access each of the multiple L2 caches; the arbiter is connected to each of the computing units and is connected to each of the L2 caches through a bus; the arbiter is configured to, when obtaining multiple access requests with access conflicts, if the access quantity of the access object of the access request is greater than or equal to a first threshold, obtain the request data quantity sent by each request sender to the access object; and for each request sender, determine whether to keep the bus path between the request sender and the access object unchanged according to the request data quantity sent by the request sender to the access object; where one of the request senders is one of the multiple computing units, and the access objects of the multiple access requests are the same.
[0006] 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, it is determined whether to keep the bus path between the request sender and the access object unchanged according to the request data quantity sent by the request sender to the access object, which can adaptively change the arbitration application order and allow subsequent access requests to be processed first. Compared with the traditional fair round-robin arbitration mechanism, it can effectively reduce the congestion on the total line path, more effectively improve the utilization efficiency of the bus, improve the bus access efficiency of the Internet system, and thus improve the memory access efficiency.
[0007] In a possible implementation manner combining with the embodiments of the first aspect, the arbiter is configured 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, keep the bus path between the request sender and the access object unchanged, so as to preferentially process the access requests for the access object among all the access requests cached in 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, so as to preferentially process the access requests for the other access objects among all the access requests cached in the cache queue of the request sender at the current moment.
[0008] In the above embodiment, if the amount of request data sent by the request sender to the access object is relatively large (i.e., greater than or equal to the second threshold), the access requests for the access object among all the access requests cached in the cache queue at the current moment are preferentially processed, which can avoid the cache queue from being blocked, resulting in new requests being unable to enter the cache queue and reducing the access efficiency. On the contrary, if the amount of request data sent by the request sender to the access object is relatively small (i.e., less than the second threshold), the access requests for other access objects among all the access requests cached in the cache queue are preferentially processed, which can improve the access efficiency.
[0009] In a possible implementation manner combining with the embodiments of the first aspect, the arbiter is further configured to: determine the 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 moment, determine that there is an access conflict among the multiple access requests.
[0010] 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 crashes or performance degradation caused by resource contention.
[0011] In a possible implementation manner combining with the embodiments of the first aspect, the arbiter is further configured 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 by each request sender to the access object, where the polling strategy includes the number of access requests sent by each request sender to the access object each time.
[0012] In the above embodiments, when the access count of the accessed object is less than the first threshold, a polling method is adopted to process the access requests with access conflicts. During arbitration, the number of access requests sent by each request sender to the accessed object each time during polling can be adjusted according to the amount of request data sent by each request sender to the accessed object. For example, the more the request data volume, the more access requests can be sent to the accessed object each time. This is beneficial to load balancing and helps reduce conflicts.
[0013] Combined with a possible implementation manner of the first aspect of the embodiment, the arbiter includes: an object determination module, a load balancing module, and an arbitration module; the object determination module is configured to determine the accessed object of each received access request. Among them, if multiple access requests with the same accessed object are received at the same time, there are access conflicts among the multiple access requests; the load balancing module is connected to the object determination module, and the load balancing module is configured to determine the access count of each accessed object; the arbitration module is respectively connected to the object determination module and the load balancing module. When the arbitration module obtains multiple access requests with access conflicts, if the access count of the accessed object of the access request is greater than or equal to the first threshold, it obtains the amount of request data sent by each request sender to the accessed object; and for each request sender, it determines whether to keep the bus path between the request sender and the accessed object unchanged according to the amount of request data sent by the request sender to the accessed object.
[0014] In the above embodiments, by using the arbiter with the above structure, through improving the traditional arbiter and adding an object determination module and a load balancing module, through the mutual cooperation of the object determination module, the load balancing module, and the arbitration module, when there are access conflicts, the arbitration application order can be adaptively changed, effectively reducing the blockage on the path, and improving the utilization efficiency of the bus more than the traditional fair polling arbitration mechanism.
[0015] Second aspect, embodiments of the present application further provide an Internetworking system, including a plurality of Internetworking structures, the plurality of Internetworking structures are connected by a bus, and each Internetworking structure includes a plurality of L2 caches, a plurality of computing units, and an arbiter; the arbiter is connected to each computing unit, and is connected to each L2 cache through the bus; each computing unit can access each L2 cache in the plurality of L2 caches; the arbiter is configured to, when obtaining a plurality of access requests with access conflicts, if the access quantity of the access object of the access request is greater than or equal to a first threshold, obtain the request data quantity sent by each request sender to the access object; and for each request sender, determine whether to keep the bus path between the request sender and the access object unchanged according to the request data quantity sent by the request sender to the access object; wherein, one request sender is one of the plurality of computing units, and the access objects of the plurality of access requests are the same.
[0016] In the above embodiments, by splitting the Internetworking system into a plurality of Internetworking structures, each Internetworking structure can perform accesses in parallel, which can improve the access efficiency, and further, can reduce the number of buses and improve the utilization rate of the on-chip bus.
[0017] Third aspect, embodiments of the present application further provide a processor, including the Internetworking system provided in any possible implementation manner of the first aspect embodiment above, or the Internetworking system provided in the second aspect embodiment above.
[0018] Fourth aspect, embodiments of the present application further provide an electronic device, such as the processor provided in the third aspect embodiment above.
[0019] Fifth aspect, embodiments of the present application further provide an arbiter, including: an object determination module, a load balancing module, and an arbitration module; the object determination module is configured to determine the access object of each received access request, wherein if a plurality of access requests with the same access object are received at the same time, there is an access conflict for the plurality of access requests; the load balancing module is connected to the object determination module, and the load balancing module is configured to determine the access quantity of each access object; the arbitration module is respectively connected to the object determination module and the load balancing module, and the load balancing module is configured to, when obtaining a plurality of access requests with access conflicts, if the access quantity of the access object of the access request is greater than or equal to a first threshold, obtain the request data quantity sent by each request sender to the access object; and for each request sender, determine whether to keep the bus path between the request sender and the access object unchanged according to the request data quantity sent by the request sender to the access object.
[0020] Sixth aspect, an embodiment of the present application further provides a request arbitration method, which is applied to an arbiter. The method includes: when multiple access requests with access conflicts are obtained, determining the access quantity of the access object of the access requests; where the access objects of the multiple access requests are the same; obtaining the request data volume 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 a first threshold, for each request sender, determining whether to keep the bus path between the request sender and the access object unchanged according to the request data volume sent by the request sender to the access object.
[0021] Other features and advantages of the present application will be described in the subsequent specification. The objectives and other advantages of the present application can be achieved and obtained through the structures specifically pointed out in the written specification and the drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0022] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the following will briefly introduce the drawings required in the embodiments. Obviously, the drawings in the following description are only some embodiments of the present application. For those of ordinary skill in the art, other drawings can also be obtained according to these drawings. As shown in the drawings, the above-mentioned and other objectives, features, and advantages of the present application will become clearer.
[0023] Figure 1a FIG. 12 shows a schematic structural diagram of a first interconnection network system connected to a device memory provided by an embodiment of the present application.
[0024] Figure 1b FIG. 16 shows a schematic structural diagram of a second interconnection network system connected to a device memory provided by an embodiment of the present application.
[0025] Figure 2 FIG. 20 shows a schematic structural diagram of an arbiter provided by an embodiment of the present application.
[0026] Figure 3 FIG. 24 shows a schematic structural diagram of an arbitration module provided by an embodiment of the present application.
[0027] Figure 4 FIG. 28 shows a schematic structural diagram of a third interconnection network system connected to a device memory provided by an embodiment of the present application.
[0028] Figure 5 FIG. 32 shows a schematic flowchart of a request arbitration method provided by an embodiment of the present application.
[0029] Figure 6 FIG. 36 shows a schematic structural diagram of an electronic device provided by an embodiment of the present application. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0030] The technical solutions in the embodiments of the present application will be described below with reference to 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 the embodiments. The following embodiments can be used as examples to more clearly illustrate the technical solutions of the present application, but cannot be used to limit the protection scope of the present application. Those skilled in the art can understand that, without conflict, the features in the following embodiments and the embodiments can be combined with each other.
[0031] It should be noted that similar reference numerals and letters denote similar items in the following drawings. Therefore, once an item is defined in one drawing, it does not need to be further defined and explained in subsequent drawings. At the same time, in the description of the present 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 actual relationship or order between these entities or operations. Moreover, the term "comprising", "including" or any other variation thereof is intended to cover a non-exclusive inclusion, such that a process, method, article or device comprising a series of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such process, method, article or device.
[0032] Furthermore, the term "and / or" in the present application is only a description of the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B may represent: A exists alone, A and B exist simultaneously, and B exists alone.
[0033] In the description of the embodiments of the present application, unless otherwise clearly specified and limited, the technical term "connection" may be a direct connection or an indirect connection through an intermediate medium.
[0034] To improve the storage access efficiency, an interconnection network system is provided in the embodiments of the present application. The following will be combined with Figure 1a 、 Figure 1b to illustrate the interconnection network system provided in the embodiments of the present application. As Figure 1a 、 Figure 1b shown, the interconnection network system includes multiple L2 caches, multiple computing units, and an arbiter. Among them, when the arbiter is connected to each computing unit, it can be connected through a bus or not through a bus. For example, Figure 1a the arbiter is respectively connected to each computing unit and each L2 cache through a bus. In Figure 1b the arbiter is not connected to each computing unit through a bus, and the arbiter is connected to each L2 cache through a bus.
[0035] Figure 1aIn the example shown, an interconnected network system including 8 L2 caches and 4 computing units is shown. Among them, 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 respectively. The 4 computing units are computing unit 1, computing unit 2, computing unit 3, and computing unit 4 respectively. Among them, multiple may refer to 2 or more than 2. Therefore, the number of L2 caches and computing units is not limited to the values in the above example.
[0036] Each computing unit can access each of the multiple L2 caches. In a possible implementation, each computing unit includes an L1 cache. When obtaining the data required for computing, it can first look up the local L1 cache. If the L1 cache misses, an access request is then sent to the L2 cache through an arbiter.
[0037] In some possible implementations, multiple L2 caches are all 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 and is divided into several, and each of these several corresponds to a device memory. In this example, each device memory corresponds to 8 L2 caches.
[0038] Among them, 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), Electrically Erasable Programmable Read-Only Memory (EEPROM), etc.
[0039] The arbiter is mainly used to resolve resource conflicts when access conflicts occur. The arbiter determines which computing unit obtains the access right first through certain rules and priorities, thereby avoiding system crashes or performance degradation caused by resource contention.
[0040] In some embodiments, an arbiter is configured to, when multiple access requests with access conflicts are obtained, where the access objects of the multiple access requests with access conflicts are the same; if the access count 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, where a request sender is one of multiple computing units; and for each request sender, determine whether to keep 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 are access conflicts, this application can adaptively change the arbitration application order based on the principle of reducing application conflicts. Compared with the traditional fair round-robin arbitration mechanism, it can effectively reduce the congestion on the total line path and improve the utilization efficiency of the bus more effectively.
[0041] The multiple access requests with access conflicts come from multiple request senders. For example, at a certain moment, each request sender can send only one access conflict. The access requests in this application can be read requests.
[0042] Wherein, after the access count of the access object is greater than or equal to the first threshold, the access object can no longer receive new access requests and needs to wait for the access object to release the access request before it can continue to receive new access requests.
[0043] In some embodiments, when the arbiter determines whether to keep 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, it is specifically configured 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, keep the bus path between the request sender and the access object unchanged to preferentially process the access requests to the access object among all the access requests cached in 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 preferentially process the access requests to other access objects among all the access requests cached in the cache queue of the request sender at the current moment.
[0044] In a possible embodiment, each request sender, that is, each computing unit, includes a cache queue for storing access requests. The amount of request data sent by the request sender to the access object can refer to the amount of request data sent to the access object among all the access requests cached in the cache queue of the request sender at the current moment. The cache queue in this application is not a FIFO (first-in-first-out) queue and allows requests that enter the queue later to be processed first.
[0045] After the access object is unable to receive new access requests, if the amount of request data sent to the access object among all the access requests cached in the cache queue at the current moment is relatively large (i.e., greater than or equal to the second threshold), at this time, the access requests to the access object among all the access requests cached in the cache queue at the current moment are preferentially processed, so as to avoid congestion in the cache queue, resulting in new requests being unable to enter the cache queue and reducing the access efficiency. If the amount of request data sent to the access object among all the access requests cached in the cache queue at the current moment is relatively small (i.e., less than the second threshold), at this time, the access requests to other access objects among all the access requests cached in the cache queue are preferentially processed, which can improve the access efficiency.
[0046] For example, assume that there are 5 access requests in the cache queue at the current moment. Among them, 4 access requests are to access L2 cache 1, and 1 access request is to access L2 cache 2. At this time, the bus path between the request sender and the access object (L2 cache 1) is maintained unchanged, and the 4 access requests in the cache queue are preferentially sent to L2 cache 1 for processing, so as to release the storage space of the cache queue and avoid congestion in the cache queue.
[0047] Suppose there are multiple access requests with access conflicts from 3 request senders (i.e., computing units). These 3 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).
[0048] The second threshold can be determined according to the number of access requests cached in the cache queue. For example, the second threshold can be greater than or equal to 70% of this number. Suppose the cache queue caches 10 access requests, then the second threshold can be set to 7.
[0049] In some possible embodiments, the arbiter is further configured to: if the access count of 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, where the polling strategy includes the number of access requests sent by each request sender to the access object each time. In this embodiment, if the access object can continue to receive new access requests, the polling method is used to process the 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. The more the amount of request data, the more access requests can be sent to the access object each time, which is beneficial to load balancing and reducing conflicts.
[0050] Suppose there are 3 request senders sending access requests to the same access object at the same time. If the access object can continue to receive new access requests (i.e., the access count of the access object is less than the first threshold), at this time, the polling method is used to process the access requests with access conflicts. For example, suppose the number of access requests sent by the 3 request senders to the access object are 6, 5, and 3 respectively, and these 3 request senders are request sender 1, request sender 2, and request sender 3 respectively. Then in the first round of arbitration, it can be: first send 2 access requests of request sender 1 to the access object, then send 2 access requests of request sender 2 to the access object, and finally send 1 access request of request sender 3 to the access object; in the second round of arbitration, it can be: again first send 2 access requests of request sender 1 to the access object, then send 2 access requests of request sender 2 to the access object, and finally send 1 access request of request sender 3 to the access object; in the third round of arbitration, it can be: again first send 2 access requests of request sender 1 to the access object, then send 1 access request of request sender 2 to the access object, and finally send 1 access request of request sender 3 to the access object.
[0051] When performing polling, it can be done according to the priority of the request senders, and the ones with higher priority are processed first.
[0052] In some embodiments, the arbiter is further configured to: determine the access object of each access request among multiple access requests. If the access objects of multiple access requests are the same at the same time, it is determined that there is an access conflict among the multiple access requests. In this embodiment, the arbiter will determine the access object of the access requests from each computing unit. 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 these 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 to perform arbitration, and the access requests can be directly sent to the access object of the object.
[0053] The access object is the above-mentioned L2 cache. Each L2 cache among multiple L2 caches has a unique identifier for differentiation. Each access request contains an access object identifier, and the corresponding access object can be determined according to the access object identifier contained in the access request.
[0054] In some possible implementation manners, such as Figure 2 As shown, the arbiter 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 respectively connected to the object determination module and the load balancing module. By improving the traditional arbiter and adding an object determination module and a load balancing module, when there is an access conflict, the arbitration application order can be adaptively changed, effectively reducing the blockage on the path, and improving the bus utilization efficiency more than the traditional fair round-robin arbitration mechanism.
[0055] The object determination module is used to determine the access object of each received access request and inform the determined access object to the load balancing module and the arbitration module. Among them, if multiple access requests with the same access object are received at the same time, there is an access conflict among these multiple access requests. The load balancing module is used to determine the access quantity of each access object. In some possible implementation manners, the load balancing module is also used to determine whether the access quantity of each access object is greater than or equal to a first threshold and inform the determination result to the arbitration module. Among them, every time the arbitration module sends an access request to an access object, the load balancing module will count, such as adding 1, and 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 access quantity of the access requests that are currently accessing each access object. The arbitration module is used to, when obtaining 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, obtain the request data volume sent by each request sender to the access object; and for each request sender, determine whether to keep the bus path between the request sender and the access object unchanged according to the request data volume sent by the request sender to the access object.
[0056] For example, when the request sender sends an access request to the arbitration module, it will also send the request to the object determination module. The object determination module determines the access object of each received access request, and then informs the determined access object to the load balancing module and the arbitration module. The load balancing module can determine whether the access quantity of the access object is greater than or equal to the first threshold and inform the determination result to the arbitration module. When there is an access conflict, the arbitration module can analyze the request data volume of the access requests accessing the access object among all the access requests cached in the cache queues of multiple request senders with access conflicts, and then determine whether to keep the bus path between the request sender and the access object unchanged according to the request data volume.
[0057] The arbitration module is specifically configured to, if the amount of request data sent by the request sender to the access object is greater than or equal to the second threshold, keep the bus path between the request sender and the access object unchanged, so as to preferentially process the access requests for the access object among all the access requests cached in 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, so as to preferentially process the access requests for other access objects among all the access requests cached in the cache queue of the request sender at the current moment.
[0058] In some possible implementation manners, the arbitration module is further configured to, if the access count of the access object is less than the first threshold, adjust the polling policy during arbitration according to the amount of request data sent by each request sender to the access object, where the polling policy includes the number of access requests sent by each request sender to the access object each time.
[0059] In some possible implementation manners, the arbitration module can be implemented based on a programmable logic device. In some possible implementation manners, as Figure 3 shown, the arbitration module includes a request statistics unit, a threshold judgment unit, and a request selection unit. The object determination module is respectively connected to each request statistics unit, and the load balancing module is connected to the request selection unit.
[0060] The request statistics unit is configured to count the amount of request data sent by each request sender to each access object. The access object of each access request can be obtained from the object determination module.
[0061] The threshold judgment unit is configured to judge whether the amount of request data sent by the request sender to the access object is greater than or equal to the second threshold.
[0062] In some implementation manners, if the access count of the access object of the access request is greater than or equal to the first threshold, the request selection unit is configured to select whether to keep the bus path between the request sender and the access object unchanged or to switch the bus path between the request sender and the access object to the bus path between the request sender and other access objects. In still some other implementation manners, if the access count of the access object of the access request is less than the first threshold, the request selection unit is configured to adjust the polling policy during arbitration according to the amount of request data sent by each request sender to the access object.
[0063] In a possible implementation manner, the internetworking system includes a plurality of internetworking structures, and the plurality of internetworking structures are connected through a bus and an intermediate module, where each internetworking structure includes the above-mentioned plurality of L2 caches, a plurality of computing units, and an arbiter, and the structure of each internetworking structure is as described above Figure 1a orFigure 1b As shown. In this implementation, the schematic diagram of the Internet system is as Figure 4 shown. In some possible implementations, the Internet system may also include 2 structures such as Figure 1a or Figure 1b shown. By dividing the Internet system into 2 parts, if each part needs to access the L2 cache on the opposite side, it needs to be transferred through the intermediate module.
[0064] Among them, the intermediate module contains an intra-queue, in which the data that wants to access the other half is cached. For example, if the Internet structure on the left wants to access the L2 cache in the Internet structure on the right, it will first look for it in the internal queue. If it misses, it will send the request to the other side; similarly, the Internet structure on the right accessing the L2 cache in the Internet structure on the left is the same. By adding an intermediate module, the number of lines required for cross-network connections can be reduced.
[0065] In Figure 4 the example shown, the Internet system includes multiple Internet structures with the same structure and a load balancing module, which is also used to evenly distribute access requests to multiple Internet structures to prevent any single Internet structure from degrading or crashing due to overload.
[0066] Based on the same inventive concept, the embodiment of the present application also provides an arbiter, the structure of which is as the above Figure 2 shown. The arbiter provided by the embodiment of the present application has the same implementation principle and technical effects as those of the foregoing Internet system embodiment. For a brief description, for the parts not mentioned in the arbiter embodiment, reference may be made to the corresponding content in the foregoing Internet system embodiment.
[0067] Based on the same inventive concept, the embodiment of the present application also provides a request arbitration method, which can be applied to the arbiter in the above Internet system. The method will be described below in combination with Figure 5 this.
[0068] S1: When multiple access requests with access conflicts are obtained, determine the access quantity of the access object of the access request.
[0069] S2: Obtain the request data volume sent by each request sender to the access object.
[0070] It may be to obtain the request data volume sent by each request sender corresponding to multiple access requests with access conflicts to the access object, or it may be to obtain the request data volume sent by the access object in the cache queue of the request sender at the current moment among all the cached access requests.
[0071] S3: Determine whether the access count of the access object of the access request is greater than or equal to the first threshold.
[0072] If the access count of the access object of the access request is greater than or equal to the first threshold, execute S4; if the access count of the access object of the access request is less than the first threshold, execute S5.
[0073] S4: For each request sender, determine whether to keep 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.
[0074] In this process, it can be that if the amount of request data sent by the request sender to the access object is greater than or equal to the second threshold, keep the bus path between the request sender and the access object unchanged to preferentially process the access requests for the access object cached in 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 preferentially process the access requests for the other access objects cached in the cache queue of the request sender at the current moment.
[0075] S5: Adjust the polling strategy during arbitration according to the amount of request data sent by each request sender to the access object.
[0076] The implementation principle and the technical effects produced by the method embodiment are the same as those of the arbiter embodiment in the foregoing Internetworking system. For the sake of brief description, for the parts not mentioned in the method embodiment, reference may be made to the corresponding content in the foregoing Internetworking system embodiment.
[0077] Based on the same inventive concept, an embodiment of the present application further provides a processor, which includes the foregoing Internetworking system. In some possible implementation manners, the processor may also include the foregoing arbiter.
[0078] 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).
[0079] 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.
[0080] 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.
[0081] 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.
[0082] 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), Electric Erasable Programmable Read-Only Memory (EEPROM), etc.
[0083] The processor may be an integrated circuit chip with signal processing capabilities. The above-mentioned processor may be a general-purpose processor, including Central Processing Unit (CPU), Graphic Processing Unit (GPU), Network Processor (NP), Graphics Processing Unit (GPU), Accelerated Processing Unit, Multimedia Application Processor (MAP), microprocessor, etc.; it may also be a Digital Signal Processor (DSP), Application Specific Integrated Circuit (ASIC), Field Programmable Gate Array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components. Or the processor may also be any conventional processor, etc.
[0084] Among them, the above-mentioned electronic devices include, but are not limited to, computers, servers, etc.
[0085] It should be noted that the various embodiments in this specification are described in a progressive manner. Each embodiment focuses on the differences from other embodiments. For the same or similar parts among the various embodiments, reference can be made to each other.
[0086] In several embodiments provided by 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 illustrative. For example, the flowcharts and block diagrams in the accompanying drawings show the possible architectures, functions, and operations of devices, methods, and computer program products according to multiple embodiments of the present application. In this regard, each block in the flowchart or block diagram may represent a module, a program segment, or a part of code, and the module, program segment, or part of 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 blocks may occur in a different order from that marked in the accompanying drawings. For example, two consecutive blocks can actually be executed substantially in parallel, and they can sometimes be executed in the reverse order, depending on the functions involved. It should also be noted that each block in the block diagram and / or flowchart, as well as the combination of blocks in the block diagram and / or flowchart, can be implemented by a dedicated hardware-based system for performing the specified functions or actions, or can be implemented by a combination of dedicated hardware and computer instructions.
[0087] In addition, each functional module in various embodiments of the present application can be integrated together to form an independent part, or each module can exist alone, or two or more modules can be integrated to form an independent part.
[0088] As described above, the above are only the specific embodiments of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art within the technical scope disclosed by the present application can easily think of changes or substitutions, which should be covered by the protection scope of the present application. Therefore, the protection scope of the present application should be subject to 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; Wherein, one of the request sending ends is one of the multiple computing units, and the access objects of the multiple access requests are the same; 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.
2. 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.
3. 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.
4. 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; an arbitration module, connected to the object determination module and the load balancing module respectively, and configured to, when obtaining a plurality of access requests with access conflicts, obtain the amount of request data sent by each request sending end to the access object if the number of accesses of 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; The arbitration module is used for: 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, so as to give priority to processing the access request to 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.
5. 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; Wherein, one of the request sending ends is one of the multiple computing units, and the access objects of the multiple access requests are the same; 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.
6. A processor, characterized in that: Comprising an internet network system as described in any one of claims 1-5.
7. An electronic device, characterized in that: A processor as claimed in claim 6.
8. 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; an arbitration module, connected to the object determination module and the load balancing module respectively, the load balancing module being used for, when obtaining a plurality of access requests with access conflicts, obtaining the amount of request data sent by each request sending end to the access object if the number of accesses 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; The arbitration module is used for: 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, so as to give priority to processing the access request to 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.
9. 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 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; Wherein, 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 includes: 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, so as to give priority to processing the access request to 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.
Citation Information
Patent Citations
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