Hybrid network-on-chip system and arbitration method

By setting connection paths and arbitration modules in a hybrid on-chip network system, the problem that multiple master devices in the prior art cannot access multiple slave devices is solved, and efficient device access and resource conservation are achieved.

CN115811495BActive Publication Date: 2025-08-26AXERA SEMICON (SHANGHAI) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211313726.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-10-25
Publication Date
2025-08-26
Estimated Expiration
2042-10-25

AI Technical Summary

Technical Problem

The existing on-chip network cannot achieve access to multiple masters and slaves with fewer connections.

Method used

Using a hybrid on-chip network system, by setting a connection path between the main router of the first Mesh network and the slave router of the second Mesh network, and using an arbitration module to arbitrate a fixed path when multiple paths exist, simplifying the routing algorithm and shortening the computing time.

Benefits of technology

Access to multiple slave devices by multiple master devices with fewer connections is realized, simplifying the routing algorithm and saving computing resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115811495B_ABST
    Figure CN115811495B_ABST
Patent Text Reader

Abstract

The present application provides a hybrid on-chip network system and arbitration method, wherein the hybrid on-chip network system includes a first Mesh network, a second Mesh network, and an arbitration module. A connection path can be set between the ath master router of the first Mesh network and the bth slave router of the second Mesh network. The arbitration module is used to arbitrate a first path when there are multiple paths for the i-th master device to access the destination address of the j-th slave device, so that each time the i-th master device accesses the destination address of the j-th slave device, the access is achieved through the first path. Through this connection path, multiple master devices of the first Mesh network can access multiple slave devices of the second Mesh network. When any master device accesses any slave device, the first path arbitrated by the arbitration module must pass through a connection path, thereby simplifying the routing algorithm, shortening the calculation time, and saving computing resources.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of network-on-chip technology, and in particular to a hybrid network-on-chip system and an arbitration method. Background Art

[0002] Network on chip (NOC) is a communication network on a SoC. The main structures of NOC include star, crossbar, mesh, bus, and ring.

[0003] Mesh networks are a typical type of NOC network, with 2D mesh being the most widely used. In the basic 2D Mesh architecture, each router corresponds to a processing node. Except for edge routers, each router is connected to other routers in four directions: up, down, left, and right, forming a mesh structure. Multiple communication paths can exist between any two routers, with routing algorithms selecting the optimal path. However, mesh networks are not suitable for situations where a master device frequently broadcasts data to multiple slave devices.

[0004] In a crossbar architecture, a master device directly connects to multiple slave devices simultaneously, enabling simultaneous data transmission between them and enabling a single master device to broadcast data to multiple slave devices. This architecture is primarily designed for systems with ultra-high bandwidth requirements, or where the master device frequently broadcasts data to multiple slave devices. However, this interconnection technology is complex, posing significant challenges to digital backend design.

[0005] Therefore, existing on-chip networks cannot implement access from multiple master devices to multiple slave devices with fewer connections. Summary of the Invention

[0006] The purpose of the embodiments of the present application is to provide a hybrid on-chip network system and arbitration method to solve the problem that the existing on-chip network cannot realize access of multiple master devices to multiple slave devices when there are few connections.

[0007] An embodiment of the present application provides a hybrid network-on-chip system, comprising:

[0008] The first Mesh network includes n main routers; the i-th main router among the n main routers is connected to the i-th main device; where i = 1, 2, ..., n;

[0009] The second Mesh network includes m slave routers; the jth slave router among the m slave routers is connected to the jth slave device; wherein j = 1, 2, ..., m;

[0010] A connection path can be set between the ath master router of the first mesh network and the bth slave router of the second mesh network; wherein the ath master router is one of n master routers, and the bth slave router is one of m slave routers;

[0011] The arbitration module is used to arbitrate a first path when there are multiple paths for the i-th master device to access the destination address of the j-th slave device, so that each time the i-th master device accesses the destination address of the j-th slave device, the access is achieved through the first path.

[0012] In the above technical solution, a connection path is established between the master router a in the first mesh network and the slave router b in the second mesh network, enabling multiple master devices in the first mesh network to access multiple slave devices in the second mesh network. Furthermore, when any master device accesses any slave device, the first path arbitrated by the arbitration module must pass through a connection path, thereby simplifying the routing algorithm, shortening calculation time, and conserving computing resources.

[0013] In some optional implementations, the arbitration module includes: a first arbitration module provided on the first Mesh network side;

[0014] The first arbitration module is used to: when there are multiple paths for the i-th master device to access the destination address of the b-th slave device, arbitrate a third path so that each time the i-th master device accesses the destination address of the b-th slave device, the access is achieved through the third path.

[0015] In the above technical solution, multiple paths exist for the i-th master device to access the destination address of the b-th slave device, namely, for master devices other than the a-th master device to access the b-th slave device. When multiple paths exist for the i-th master device to access the destination address of the b-th slave device, the first arbitration module, located on the first mesh network side, only needs to arbitrate the first segment of the third path on the first mesh network side, namely, the path from the j-th master device to the a-th master device. This simplifies the routing algorithm, shortens calculation time, and conserves computing resources.

[0016] In some optional embodiments, the arbitration module includes: a second arbitration module provided on the second Mesh network side;

[0017] The second arbitration module is used to arbitrate a second path when there are multiple paths for the ath master device to access the destination address of the jth slave device, so that each time the ath master device accesses the destination address of the jth slave device, the access is achieved through the second path.

[0018] In the above technical solution, multiple paths exist for master device a to access the destination address of slave device j, i.e., master device a can access all slave devices except slave device b. This is because master router a is directly connected to slave device b via a unique connection path. Therefore, there is only one path for master device a to access slave device b. When multiple paths exist for master device a to access the destination address of slave device j, the second arbitration module, located on the second mesh network side, only needs to arbitrate the second path on the second mesh network side, i.e., the path from slave device b to slave device j. This simplifies the routing algorithm, shortens calculation time, and conserves computing resources.

[0019] In some optional embodiments, the arbitration module includes: a first arbitration module provided on the first Mesh network side, and a second arbitration module provided on the second Mesh network side;

[0020] When there are multiple paths for the i-th master device to access the destination address of the j-th slave device, and i is not equal to a, and j is not equal to b, the first arbitration module is used to arbitrate a front-end path of a fourth path from the multiple paths between the i-th master router and the a-th master router, and the second arbitration module is used to arbitrate a back-end path of the fourth path from the multiple paths between the b-th slave router and the j-th slave router, so that each time the i-th master device accesses the destination address of the j-th slave device, the access is achieved through the front-end path, the connection path, and the back-end path.

[0021] In the above technical solution, multiple paths exist for the i-th master device to access the destination address of the j-th slave device, and i is not equal to a, and j is not equal to b. That is, multiple paths exist from the i-th master device to the a-th master device, and multiple paths also exist from the b-th slave device to the j-th slave device. In this case, the first arbitration module, located on the first mesh network side, only needs to arbitrate the front-end path of the fourth path on the first mesh network side, i.e., the path from the j-th master device to the a-th master device. The second arbitration module, located on the second mesh network side, only needs to arbitrate the back-end path of the fourth path on the second mesh network side, i.e., the path from the b-th slave device to the j-th slave device. This simplifies the routing algorithm, shortens calculation time, and conserves computing resources.

[0022] In some optional implementations, the arbitration module is configured to:

[0023] Perform CRC calculation on the destination address to obtain the CRC check code;

[0024] Arbitration is performed based on the CRC check code.

[0025] In the above technical solution, to avoid write-after-write errors, a fixed communication path is selected based on the value of the destination address during arbitration. Specifically, in this embodiment, a CRC calculation is performed on the destination address, and arbitration is performed based on the resulting CRC checksum. This can prevent the influence of the characteristics of the destination address value itself on the arbitration result while ensuring that a fixed communication path is selected based on the value of the destination address. For example, under the data format requirements of some hardware modules, the last bit of multiple addresses to which data is written is fixed to 0. If a fixed path is arbitrated based on the last bit of the destination address, then these multiple addresses will all select the same fixed path, causing the router on the fixed path to be busy, and writing efficiency will be affected.

[0026] In some optional embodiments, the n master routers are connected in a ring manner, and the m slave routers are connected in a ring manner;

[0027] There are two paths between the i-th primary router and the a-th primary router, and the previous path is one of the two paths;

[0028] There are two paths between the j-th slave router and the b-th slave router, and the latter path is one of the two paths.

[0029] In the above technical solution, n master routers are connected in a ring. Therefore, there are two paths from each master router except the a-th master router to the a-th master router. Only one of these two paths needs to be selected during arbitration. m slave routers are connected in a ring. Therefore, there are two paths from each slave router except the b-th slave router to the b-th slave router. Only one of these two paths needs to be selected during arbitration.

[0030] In some optional implementations, in performing arbitration according to the CRC check code, the arbitration module is specifically configured to:

[0031] Perform bitwise XOR operation on the CRC check code to obtain the calculation result;

[0032] The front path and the back path are selected according to the calculation results.

[0033] In the above technical solution, a bitwise XOR operation is performed on the CRC check code to obtain a calculation result of 1 or 0, and one of the two paths is selected based on the calculation result of 1 or 0. It should be understood that in some other embodiments, the bitwise XOR operation on the CRC check code may be replaced with other operations on the CRC check code, such as a bitwise XOR operation on the CRC check code.

[0034] An arbitration method for a hybrid network-on-chip provided in an embodiment of the present application is applied to any of the above hybrid network-on-chip systems, and the method includes:

[0035] When there are multiple paths for the i-th master device to access the destination address of the j-th slave device, a first path is arbitrated so that each time the i-th master device accesses the destination address of the j-th slave device, the access is achieved through the first path.

[0036] In the above technical solution, when any master device accesses any slave device, the first path arbitrated by the arbitration module must pass through a connection path, thereby simplifying the routing algorithm, shortening the calculation time, and saving computing resources.

[0037] In some optional implementations, arbitrating the first path includes: performing a CRC calculation on the destination address to obtain a CRC check code; and arbitrating according to the CRC check code.

[0038] In the above technical solution, to avoid write-after-write errors, a fixed communication path is selected based on the value of the destination address during arbitration. Specifically, in this embodiment, a CRC calculation is performed on the destination address, and arbitration is performed based on the resulting CRC checksum. This can prevent the influence of the characteristics of the destination address value itself on the arbitration result while ensuring that a fixed communication path is selected based on the value of the destination address. For example, under the data format requirements of some hardware modules, the last bit of multiple addresses to which data is written is fixed to 0. If a fixed path is arbitrated based on the last bit of the destination address, then these multiple addresses will all select the same fixed path, causing the router on the fixed path to be busy, and writing efficiency will be affected.

[0039] In some optional implementations, arbitration is performed based on the CRC check code, including: performing a bitwise XOR operation on the CRC check code to obtain a calculation result; and selecting a front-end path and a back-end path based on the calculation result.

[0040] In the above technical solution, a bitwise XOR operation is performed on the CRC check code to obtain a calculation result of 1 or 0, and one of the two paths is selected based on the calculation result of 1 or 0. It should be understood that in some other embodiments, the bitwise XOR operation on the CRC check code may be replaced with other operations on the CRC check code, such as a bitwise XOR operation on the CRC check code.

[0041] An electronic device provided in an embodiment of the present application includes: a processor and a memory, wherein the memory stores machine-readable instructions executable by the processor, and when the machine-readable instructions are executed by the processor, any of the above methods is performed.

[0042] An embodiment of the present application provides a computer-readable storage medium, which stores a computer program. When the computer program is executed by a processor, any of the above methods is executed. BRIEF DESCRIPTION OF THE DRAWINGS

[0043] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the following is a brief introduction to the drawings required for use in the embodiments of the present application. It should be understood that the following drawings only show certain embodiments of the present application and therefore should not be regarded as limiting the scope. For ordinary technicians in this field, other relevant drawings can be obtained based on these drawings without creative work.

[0044] Figure 1 A schematic diagram of a hybrid network-on-chip system provided in an embodiment of the present application;

[0045] Figure 2 A schematic diagram of the structure of a hybrid on-chip network provided in an embodiment of the present application;

[0046] Figure 3 A schematic diagram of a possible structure of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0047] The technical solutions in the embodiments of the present application will be described below in conjunction with the drawings in the embodiments of the present application.

[0048] Please refer to Figure 1 , Figure 1 An embodiment of the present application provides a schematic diagram of a hybrid on-chip network system, which includes a first Mesh network, a second Mesh network, and an arbitration module.

[0049] The first mesh network includes n master routers; the i-th master router among the n master routers is connected to the i-th master device, where i = 1, 2, ..., n. The second mesh network includes m slave routers; the j-th slave router among the m slave routers is connected to the j-th slave device, where j = 1, 2, ..., m. A connection path can be set between the a-th master router of the first mesh network and the b-th slave router of the second mesh network; the a-th master router is one of the n master routers, and the b-th slave router is one of the m slave routers. The arbitration module is configured to arbitrate a first path when multiple paths exist for the i-th master device to access the destination address of the j-th slave device, so that each time the i-th master device accesses the destination address of the j-th slave device, access is achieved through the first path.

[0050] In this embodiment of the present application, a connection path is established between the master router a in the first mesh network and the slave router b in the second mesh network, enabling multiple master devices in the first mesh network to access multiple slave devices in the second mesh network. Furthermore, when any master device accesses any slave device, the first path arbitrated by the arbitration module must pass through a connection path, thereby simplifying the routing algorithm, shortening calculation time, and conserving computing resources.

[0051] In some optional embodiments, the arbitration module includes: a first arbitration module arranged on the first Mesh network side, the first arbitration module being used to: when there are multiple paths for the i-th master device to access the destination address of the b-th slave device, arbitrate a third path, so that each time the i-th master device accesses the destination address of the b-th slave device, the access is achieved through the third path.

[0052] In this embodiment of the present application, multiple paths exist for the i-th master device to access the destination address of the b-th slave device, i.e., master devices other than the a-th master device access the b-th slave device. When multiple paths exist for the i-th master device to access the destination address of the b-th slave device, the first arbitration module disposed on the first mesh network side only needs to arbitrate the third path, i.e., the path from the j-th master device to the a-th master device, thereby simplifying the routing algorithm, shortening calculation time, and conserving computing resources.

[0053] In some optional embodiments, the arbitration module includes: a second arbitration module arranged on the second Mesh network side, the second arbitration module being used to: when there are multiple paths for the a-th master device to access the destination address of the j-th slave device, arbitrate a second path, so that each time the a-th master device accesses the destination address of the j-th slave device, access is achieved through the second path.

[0054] In this embodiment of the present application, multiple paths exist for the ath master device to access the destination address of the jth slave device, i.e., the ath master device accesses all slave devices except the bth slave device. This is because the ath master router is directly connected to the bth slave device via a unique connection path. Therefore, there is only one path for the ath master device to access the bth slave device. When multiple paths exist for the ath master device to access the destination address of the jth slave device, the second arbitration module, located on the second mesh network side, only needs to arbitrate the second path on the second mesh network side, i.e., the path from the bth slave device to the jth slave device. This simplifies the routing algorithm, shortens calculation time, and conserves computing resources.

[0055] In some optional embodiments, the arbitration module includes: a first arbitration module provided on the first Mesh network side, and a second arbitration module provided on the second Mesh network side. When there are multiple paths for the i-th master device to access the destination address of the j-th slave device, and i is not equal to a, and j is not equal to b, the first arbitration module is used to arbitrate a front-end path of a fourth path from the multiple paths between the i-th master router and the a-th master router, and the second arbitration module is used to arbitrate a back-end path of the fourth path from the multiple paths between the b-th slave router and the j-th slave router, so that each time the i-th master device accesses the destination address of the j-th slave device, access is achieved through the front-end path, the connection path, and the back-end path.

[0056] In this embodiment of the present application, multiple paths exist for the i-th master device to access the destination address of the j-th slave device, and i is not equal to a, and j is not equal to b. That is, multiple paths exist from the i-th master device to the a-th master device, and multiple paths also exist from the b-th slave device to the j-th slave device. In this case, the first arbitration module, located on the first Mesh network side, only needs to arbitrate the front-end path of the fourth path on the first Mesh network side, i.e., the path from the j-th master device to the a-th master device. The second arbitration module, located on the second Mesh network side, only needs to arbitrate the back-end path of the fourth path on the second Mesh network side, i.e., the path from the b-th slave device to the j-th slave device. This simplifies the routing algorithm, shortens calculation time, and conserves computing resources.

[0057] In some optional implementations, the arbitration module is used to: perform CRC calculation on the destination address to obtain a CRC check code; and perform arbitration based on the CRC check code. Among them, cyclic redundancy check (CRC) is a channel coding technology that generates a short fixed-bit check code based on data such as network data packets or computer files. It is mainly used to detect or verify errors that may occur after data transmission or storage. It uses the principles of division and remainder to achieve error detection. CRC check calculation speed is fast, error detection capability is strong, and it is easy to implement using hardware circuits such as encoders. In terms of error detection accuracy, speed, cost, etc., it has advantages over parity check and other check methods. Therefore, CRC has become the most common check method in the field of computer information communication. CRC includes many versions, such as CRC-5, CRC-8, CRC-16, etc.

[0058] In an embodiment of the present application, in order to avoid write-after-write errors, a fixed communication path is selected according to the value of the destination address during arbitration. Specifically, in this embodiment, a CRC calculation is performed on the destination address, and arbitration is performed based on the obtained CRC checksum. This can avoid the influence of the characteristics of the destination address value itself on the arbitration result under the premise of selecting a fixed communication path based on the value of the destination address. For example, under the data format requirements of some hardware modules, the last bit of multiple addresses to which data is written is fixed to 0. If a fixed path is arbitrated based on the last bit of the destination address, then these multiple addresses will all select the same fixed path, causing the router on the fixed path to be busy, and the writing efficiency will be affected.

[0059] In some optional embodiments, n master routers are connected in a ring manner, and m slave routers are connected in a ring manner; there are two paths between the i-th master router and the a-th master router, and the front path is one of the two paths; there are two paths between the j-th slave router and the b-th slave router, and the back path is one of the two paths.

[0060] In this embodiment of the present application, n master routers are connected in a ring. In this case, there are two paths from each master router except the a-th master router to the a-th master router. Only one of these two paths needs to be selected during arbitration. In this embodiment, m slave routers are connected in a ring. In this case, there are two paths from each slave router except the b-th slave router to the b-th slave router. Only one of these two paths needs to be selected during arbitration.

[0061] In some optional implementations, in the arbitration based on the CRC check code, the arbitration module is specifically used to: perform a bitwise XOR operation on the CRC check code to obtain a calculation result; and select the front-end path and the back-end path according to the calculation result.

[0062] In the embodiment of the present application, a bitwise XOR operation is performed on the CRC check code to obtain a calculation result of 1 or 0, and one of the two paths is selected based on the calculation result of 1 or 0. It should be understood that in some other embodiments, the bitwise XOR operation on the CRC check code may also be used to perform other operations on the CRC check code, such as a bitwise XOR operation on the CRC check code.

[0063] Please refer to Figure 2 , Figure 2 A schematic diagram of the structure of a hybrid on-chip network provided in an embodiment of the present application. In this embodiment, PU0, PU1, PU2 and PU3 are four master devices, and these four master devices are interconnected with a 2D Mesh network Mesh0, which includes four main routers (i.e. Figure 200, 01, 02 and 03 in ). M0, M1, M2 and M3 are 4 slave devices, and these 4 slave devices are interconnected with another 2D Mesh network Mesh1, which includes 4 slave routers (i.e. Figure 2 10, 11, 12, and 13 in Figure 1). A connection path (Router 02 to Router 12) is established between the two networks, Mesh0 and Mesh1. This hybrid on-chip network combines the characteristics of both mesh and crossbar network structures, enabling multiple master devices to access multiple slave devices even with a limited number of connections. For example, a master device accesses a slave device when the master is a processing unit and the slave device is a storage unit, with the processing unit reading data from the storage unit or writing data to the storage unit.

[0064] In this embodiment, when the master device PU0 wants to access the slave device M2, the routing function will generate two paths: "master device PU0-router 00-router 02-router 03-router 12-slave device M2" and "master device PU0-router 00-router 01-router 02-router 12-slave device M2". Therefore, we need to design an arbitration method to decide which path to select from the two paths.

[0065] If arbitration fairness is considered and consecutive write operations are alternately assigned to paths 0 and 1, a write-after-write error may occur. For example, assume the write data is 16 bits wide and the write address wr_addr[7:0] is 8 bits. Suppose that in cycle N, data 0x1234 is written to address 0x01 in M2, and in cycle N+1, data 0x2356 is also written to address 0x01. Assuming the arbitration method is designed to assign the write access in cycle N to path 0, then the write access in cycle N+1 will be assigned to path 1. If router 03 is busy during cycles N and N+1, data 0x1234 will be buffered at router 03 and wait for router 03 to pass through. If router 01 is idle during cycles N and N+1, data 0x2345 will be written to address 0x01 first. In this case, data 0x1234 is written to address 0x01 after data 0x2345, resulting in a write-after-write error.

[0066] To avoid the aforementioned write-after-write errors, a fixed communication path can be selected based on the write address value. For example, arbitration can be performed based on the parity of the least significant bit of the write address: if the least significant bit is 0, the path is arbitrated to path 0, and if the least significant bit is 1, the path is arbitrated to path 1. This method will arbitrate write accesses to address 0x01 to path 1, ensuring that the same write address will arbitrate to a fixed path, avoiding write-after-write errors. However, this method also has drawbacks. For example, if PU0 continuously writes data to M2 with write addresses 0x01, 0x03, 0x05, and 0x07, respectively, and the least significant bit of these addresses is 1, the communication path will always be arbitrated as the path "Master PU0 - Router 00 - Router 01 - Router 02 - Router 12 - Slave M2." In this case, data writing relies on the various routers along the path "Master PU0 - Router 00 - Router 01 - Router 02 - Router 12 - Slave M2" for a long time. For example, when Router 01 is busy with access from PU1, PU0's data writing to M2 will be suspended. This affects write efficiency. Furthermore, because requests along the path "Master PU0 - Router 00 - Router 01 - Router 02 - Router 12 - Slave M2" are not executed, Router 00 also accumulates access requests, reducing the performance of the entire Mesh 0 network.

[0067] Correspondingly, in this embodiment, the workflow of the arbitration module is as follows:

[0068] Step 1: Assuming the write address is 8 bits (it should be noted that the present invention has no limitation on the number of write address bits and can be any value such as 16 bits, 32 bits, etc., and only 8 bits are used as an example for explanation), select the CRC-5 version for verification calculation (other versions can also be selected. The present invention does not need to verify the correctness of the write address data itself, only uses its verification code. Selecting CRC-5 can reduce hardware resource consumption) to obtain a 5-bit verification code. Assuming the write address is 0x34, the CRC-5 calculation results in a verification code of 10110;

[0069] Step 2: Perform bitwise XOR operation on the above check code to obtain the 1-bit calculation result. The bitwise XOR operation of 10110 is 1;

[0070] Step 3: Arbitrate based on the above calculation results. If the result is 0, the access to the write address will be arbitrated to path 0; if the result is 1, the access to the write address will be arbitrated to path 1. For example, the bitwise XOR result of 10110 is 1, and the write address access will be arbitrated to path 1.

[0071] Using the write address CRC checksum for arbitration ensures that write requests to the same address are arbitrated to a fixed path, preventing write-after-write errors. Furthermore, the random nature of the CRC checksum ensures a relatively even probability of arbitration to two paths, without impacting mesh network performance. The randomness of the CRC checksum means that the CRC checksum lacks the service-specific characteristics of the address; it depends solely on the address's numerical value. Furthermore, the hardware structure implementing this arbitration method is very simple, requiring minimal hardware resources and generating low power consumption.

[0072] An arbitration method for a hybrid network-on-chip provided in an embodiment of the present application is applied to any of the above hybrid network-on-chip systems. The method specifically includes: when there are multiple paths for the i-th master device to access the destination address of the j-th slave device, arbitrating a first path so that each time the i-th master device accesses the destination address of the j-th slave device, the access is achieved through the first path.

[0073] In the embodiment of the present application, when any master device accesses any slave device, the first path arbitrated by the arbitration module must pass through a connection path, thereby simplifying the routing algorithm, shortening the calculation time, and saving computing resources.

[0074] In some optional implementations, arbitrating the first path includes: performing CRC calculation on the destination address to obtain a CRC check code; and arbitrating according to the CRC check code. In an embodiment of the present application, in order to avoid write-after-write errors, a fixed communication path is selected according to the value of the destination address during arbitration. Specifically, in this embodiment, a CRC calculation is performed on the destination address, and arbitration is performed according to the obtained CRC check code. This can avoid the influence of the characteristics of the destination address value itself on the arbitration result under the premise of selecting a fixed communication path according to the value of the destination address. For example, under the data format requirements of some hardware modules, the last bit of multiple addresses to which data is written is fixed to 0. If a fixed path is arbitrated according to the last bit of the destination address, then the same fixed path will be selected for these multiple addresses, causing the router on the fixed path to be busy, and the writing efficiency will be affected.

[0075] In some optional implementations, arbitration is performed based on the CRC check code, including: performing a bitwise XOR operation on the CRC check code to obtain a calculation result; and selecting a front-end path and a back-end path based on the calculation result. In an embodiment of the present application, a bitwise XOR operation is performed on the CRC check code to obtain a calculation result of 1 or 0, and one of the two paths is selected based on the calculation result of 1 or 0. It should be understood that in some other embodiments, the bitwise XOR operation is performed on the CRC check code, and other operations may also be performed on the CRC check code, such as a bitwise XOR operation on the CRC check code.

[0076] Figure 3 A possible structure of the electronic device provided by the embodiment of the present application is shown. Figure 3 The electronic device includes: a processor, a memory and a communication interface. These components are interconnected and communicate with each other through a communication bus and / or other forms of connection mechanisms (not shown).

[0077] The memory includes one or more (only one is shown in the figure), which 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 programmable read-only memory (EEPROM), etc. The processor and other possible components can access the memory and read and / or write data therein.

[0078] The processor includes one or more (only one is shown in the figure), which can be an integrated circuit chip with signal processing capabilities. The above-mentioned processor can be a general-purpose processor, including a central processing unit (CPU), a microcontroller unit (MCU), a network processor (NP) or other conventional processors; it can also be a special-purpose processor, including a neural network processor (NPU), a graphics processing unit (GPU), 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. Moreover, when there are multiple processors, some of them can be general-purpose processors and the other part can be special-purpose processors.

[0079] The communication interface includes one or more (only one is shown in the figure) and can be used to communicate directly or indirectly with other devices to exchange data. The communication interface can include an interface for wired and / or wireless communication.

[0080] One or more computer program instructions may be stored in the memory, and the processor may read and execute these computer program instructions to implement the arbitration method provided in the embodiment of the present application.

[0081] Understandably, Figure 3 The structure shown is only for illustration, and the electronic device may also include Figure 3 More or fewer components than shown, or with Figure 3 Different structures are shown. Figure 3 The components shown in the figure can be implemented using hardware, software, or a combination thereof. The electronic device can be a physical device, such as a PC, laptop, tablet, mobile phone, server, embedded device, etc., or a virtual device, such as a virtual machine or virtualized container. Furthermore, the electronic device is not limited to a single device and can also be a combination of multiple devices or a cluster consisting of a large number of devices.

[0082] The present application also provides a computer-readable storage medium having computer program instructions stored thereon. When the computer program instructions are read and executed by a computer processor, the arbitration method provided by the present application is executed. For example, the computer-readable storage medium can be implemented as Figure 3 Memory in electronic devices.

[0083] In the embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. The device embodiments described above are merely schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some communication interface, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.

[0084] In addition, the units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0085] Furthermore, the functional modules in each embodiment of the present application can be integrated together to form an independent part, or each module can exist independently, or two or more modules can be integrated to form an independent part.

[0086] In this document, relational terms such as first and second, etc. are used merely to distinguish one entity or operation from another entity or operation, but do not necessarily require or imply any actual relationship or order between these entities or operations.

[0087] The above description is merely an embodiment of the present application and is not intended to limit the scope of protection of the present application. For those skilled in the art, various modifications and variations of the present application are possible. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present application shall be included in the scope of protection of the present application.

Claims

1. A hybrid network-on-chip system, characterized in that: include: The first Mesh network includes n main routers; The i-th master router among the n master routers is connected to the i-th master device; wherein i=1, 2, ..., n; The second Mesh network includes m slave routers; the jth slave router among the m slave routers is connected to the jth slave device; wherein j=1, 2, ..., m; A connection path may be set between the ath master router of the first Mesh network and the bth slave router of the second Mesh network; wherein the ath master router is one of the n master routers, and the bth slave router is one of the m slave routers; an arbitration module, configured to arbitrate a first path when multiple paths exist for the i-th master device to access the destination address of the j-th slave device, so that each time the i-th master device accesses the destination address of the j-th slave device, the access is achieved through the first path; The arbitration module includes: a first arbitration module provided on the first Mesh network side, and a second arbitration module provided on the second Mesh network side; When there are multiple paths for the i-th master device to access the destination address of the j-th slave device, and i is not equal to a, and j is not equal to b, the first arbitration module is used to arbitrate a front-end path of a fourth path from the multiple paths between the i-th master router and the a-th master router, and the second arbitration module is used to arbitrate a back-end path of the fourth path from the multiple paths between the b-th slave router and the j-th slave router, so that each time the i-th master device accesses the destination address of the j-th slave device, the access is achieved through the front-end path, the connection path, and the back-end path; The n master routers are connected in a ring manner, and the m slave routers are connected in a ring manner; There are two paths between the i-th primary router and the a-th primary router, and the front-end path is one of the two paths; There are two paths between the j-th slave router and the b-th slave router, and the latter path is one of the two paths.

2. The system according to claim 1, wherein in, The arbitration module includes: a first arbitration module provided on the first Mesh network side; The first arbitration module is used to: when there are multiple paths for the i-th master device to access the destination address of the b-th slave device, arbitrate a third path so that each time the i-th master device accesses the destination address of the b-th slave device, the access is achieved through the third path.

3. The system according to claim 1, wherein: in, The arbitration module includes: a second arbitration module provided on the second Mesh network side, The second arbitration module is used to arbitrate a second path when there are multiple paths for the ath master device to access the destination address of the jth slave device, so that each time the ath master device accesses the destination address of the jth slave device, the access is achieved through the second path.

4. The system according to claim 1, wherein: The arbitration module is used for: Perform CRC calculation on the destination address to obtain a CRC check code; Arbitration is performed according to the CRC check code.

5. The system according to claim 4, wherein: in, In performing arbitration according to the CRC check code, the arbitration module is specifically configured to: Performing a bitwise exclusive OR operation on the CRC check code to obtain a calculation result; A front section path and a back section path are selected according to the calculation result.

6. A method for arbitrating a hybrid network on chip, characterized in that: Applied to the hybrid network-on-chip system according to any one of claims 1 to 5, the method comprises: When there are multiple paths for the i-th master device to access the destination address of the j-th slave device, a first path is arbitrated so that each time the i-th master device accesses the destination address of the j-th slave device, the access is achieved through the first path.

7. The arbitration method according to claim 6, wherein: The arbitrating the first path includes: Perform CRC calculation on the destination address to obtain a CRC check code; Arbitration is performed according to the CRC check code.

8. The arbitration method according to claim 7, wherein: The arbitrating according to the CRC check code includes: Performing a bitwise exclusive OR operation on the CRC check code to obtain a calculation result; A front section path and a back section path are selected according to the calculation result.

Citation Information

Patent Citations

  • Routing system and communication method of network-on-chip

    CN111245730A

  • Asymmetric ring topology for reduced latency in on-chip ring networks

    US20120201171A1