Network-on-chip virtual channel dynamic switching control method and device and medium

By configuring multiple parallel virtual channels and using dynamic arbitration based on the priority of the target node, the interruption of high-priority data and the control of low-priority data are achieved, solving the problems of transmission delay and data loss in virtual channel optimization methods and improving the performance and real-time performance of on-chip networks.

CN121579398APending Publication Date: 2026-02-27YUANQIXIN (SHANDONG) SEMICONDUCTOR TECHNOLOGY CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511677281.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-11-17
Publication Date
2026-02-27

AI Technical Summary

Technical Problem

In existing technologies, the optimization methods for virtual channels have failed to effectively balance the real-time transmission requirements of high-priority data with the compatibility of multi-target concurrent transmission, resulting in increased transmission latency and data loss, which cannot meet the needs of high-performance and real-time application scenarios.

Method used

Multiple parallel virtual channels are configured, and a priority-based dynamic arbitration method based on the target node is adopted. The router's input module, cross switch, and output module are used to interrupt high-priority data and control low-priority data, and the virtual channels are dynamically switched to adapt to the needs of different scenarios.

Benefits of technology

It reduces the transmission latency of on-chip network routers, avoids data loss, improves the performance of on-chip networks and the real-time performance of data transmission, and adapts to the flexibility requirements of diverse scenarios.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121579398A_ABST
    Figure CN121579398A_ABST
Patent Text Reader

Abstract

The invention discloses a network-on-chip virtual channel dynamic switching control method and device and a medium, belongs to the technical field of integrated circuit system-on-chip communication, and aims to solve the technical problem of how to reduce the transmission delay of a router of an integrated circuit system-on-chip, improve the performance of the network-on-chip and improve the reliability of the network-on-chip. In order to overcome the data loss phenomenon caused by virtual channel priorities, the technical scheme adopted by the invention is as follows: configuring virtual channels: configuring a plurality of parallel virtual channels to bear data with different priorities, and configuring virtual channel IDs (Identity) at the same time; according to the router based on the virtual channel, the router comprises an input module, a crossbar switch and an output module, data are transmitted through the crossbar switch according to priorities, and the function that the high priority of the virtual channel interrupts the low priority of the virtual channel is achieved; and dynamic control transmission based on a virtual channel: adopting a priority dynamic arbitration mode based on a target node to realize different virtual channel switching requirements in different scenes, and further realizing disabling and starting of a high-priority interruption mechanism in different scenes.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the field of integrated circuit System on a Chip (SoC) communication technology, in particular to a virtual channel dynamic switching control method for a network on chip, a device and a medium. BACKGROUND

[0002] With the rapid development of integrated circuit technology, the number of processing cores integrated on a chip continues to increase. Traditional point-to-point communication and bus communication cannot meet the scalability requirements of multi-core systems. Network on chip (NoC) has emerged as the core architecture to solve the efficient communication within multi-core chips. As a key component of the network on chip router, the virtual channel (VC) effectively avoids head-of-line blocking and improves link utilization by dividing the physical channel into multiple independent logical channels.

[0003] Currently, the optimization method of virtual channel mainly focuses on buffer allocation and read-write mechanism improvement, but it cannot effectively balance the real-time transmission requirements of high-priority data and the compatibility of multi-target concurrent transmission. On the one hand, the traditional virtual channel uses non-preemptive scheduling, and high-priority data needs to wait for the completion of low-priority data transmission before occupying the channel, which leads to an increase in critical task data delay and cannot meet the requirements of real-time systems. On the other hand, when multiple virtual channels concurrently transmit data to the same target node, the existing priority scheduling mechanism is prone to data conflicts. If the high-priority interrupt function is enabled, it may cause data loss or transmission sequence disorder, and completely disabling the interrupt function will reduce the transmission efficiency of high-priority data. These problems seriously restrict the application of network on chip in high-performance and real-time scenarios.

[0004] Therefore, how to reduce the transmission delay of the integrated circuit System on a Chip (SoC) router, improve the performance of the network on chip, and overcome the data loss phenomenon caused by the priority of the virtual channel is a technical problem to be solved. SUMMARY

[0005] The technical task of the present application is to provide a virtual channel dynamic switching control method for a network on chip, a device and a medium to solve the problem of how to reduce the transmission delay of the integrated circuit System on a Chip (SoC) router, improve the performance of the network on chip, and overcome the data loss phenomenon caused by the priority of the virtual channel.

[0006] The technical task of the present application is achieved in the following manner, a virtual channel dynamic switching control method for a network on chip, the method is as follows:

[0007] Configure virtual channels: configure multiple parallel virtual channels to carry different priority data, and configure virtual channel IDs at the same time.

[0008] Router implementation based on virtual channel: the router includes an input module, a crossbar switch and an output module, data is transmitted through the crossbar switch according to priority, and the function of high-priority virtual channel interrupting low-priority is realized;

[0009] Dynamic control transmission based on virtual channel: a dynamic arbitration method based on target node priority is adopted to realize different virtual channel switching requirements in different scenarios, and then the high-priority interrupt mechanism is disabled and enabled in different scenarios.

[0010] As preferred, the virtual channel is configured as follows:

[0011] According to the actual demand and the current virtual channel usage state, the virtual channel ID is configured;

[0012] The virtual channel control module receives the virtual channel ID information, and selects the virtual channel to be transmitted;

[0013] The router transmits the data under the selected virtual channel;

[0014] When the data transmission under the corresponding virtual channel is completed, the usage state of the corresponding virtual channel is fed back, and the subsequent configuration is optimized according to the state.

[0015] More preferably, the input module includes five input ports, i.e. east input port, south input port, west input port, north input port and local input port, the east input port, the south input port, the west input port, the north input port and the local input port each include a virtual channel module and a routing direction calculation module, the virtual channel module includes three parallel channels for storing and transmitting data, and the routing direction calculation module is used to calculate the routing direction.

[0016] More preferably, the output module includes five output ports, i.e. east output port, south output port, west output port, north output port and local output port, the east output port, the south output port, the west output port, the north output port and the local output port each include a virtual channel control module, and the virtual channel control module is used to realize the control of high-priority virtual channel interrupting low-priority virtual channel;

[0017] More preferably, after the input port of any input module obtains the routing direction, the data in the input port virtual channel is transmitted to the corresponding output port through the crossbar switch according to the priority, and the virtual channel control module of the output port controls whether the high-priority data interrupts the low-priority data for transmission.

[0018] More preferably, the control logic of the input module is as follows:

[0019] The input module includes three virtual channels, data is stored to corresponding virtual channels according to virtual channel ID, and the data priority is judged by a virtual channel arbitration module, if high-priority virtual channel data arrives, the data is outputted preferentially.

[0020] More preferably, the control logic of the output module is as follows:

[0021] The output module groups the input requests from four directions according to virtual channels, and then locks the virtual channels: if there is a request in any virtual channel, the corresponding channel is locked until the data packet transmission is completed.

[0022] The virtual channel control module judges whether the target nodes of multiple input directions are the same:

[0023] If the target nodes are the same and the virtual channels are different, the high-priority cannot interrupt the low-priority transmission.

[0024] If the target nodes are different, the high-priority interrupts the low-priority transmission, the data of the virtual channel with high priority is transmitted first, and then the virtual channel data to be outputted is determined in combination with the virtual channel priority arbitration module.

[0025] More preferably, the control logic of the virtual channel control module is as follows:

[0026] (1) The virtual channel control module receives the valid virtual channel ID and target node coordinate information of the input from four directions, and then step (2) is executed.

[0027] (2) It is judged whether the virtual channel IDs of different input directions are different and the target node coordinates are the same:

[0028] ① If yes, step (3) is executed.

[0029] ② If no, jump to step (4).

[0030] (3) The signal vc_id_grant of the first input direction is assigned a value of 1, the vc_id_grant of the subsequent input direction is assigned a value of 2, until the data of the first input direction is outputted and the signal vc_id_grant of the first input direction is assigned a value of 0, the smallest and vc_id_grant of 2 of the subsequent input direction is selected, and the corresponding vc_id_grant is assigned a value of 1, at this time, the high-priority cannot interrupt the low-priority, and then step (5) is executed.

[0031] (4) The vc_id_grant of all input directions is assigned a value of 1, the high-priority can interrupt the low-priority, and then step (5) is executed.

[0032] (5) output data under the virtual channel ID of vc_id_grant = 1.

[0033] An electronic device comprising a memory and at least one processor;

[0034] wherein the memory has stored thereon a computer program;

[0035] The at least one processor executes the computer program stored in the memory, so that the at least one processor performs the on-chip network virtual channel dynamic switching control method as described above.

[0036] A computer readable storage medium having stored therein a computer program, the computer program being executable by a processor to implement the on-chip network virtual channel dynamic switching control method as described above.

[0037] The on-chip network virtual channel dynamic switching control method, device and medium of the present application have the following advantages:

[0038] (I) The present application is realized by a combination of software and hardware, reduces the transmission delay of NoC routers, solves the data loss phenomenon caused by virtual channel priority, and improves the performance of on-chip networks;

[0039] (II) The present application dynamically configures in real time the usage state of the virtual channel, has high design flexibility, can accurately adapt to diversified scenarios and customized needs, and effectively alleviates the problem of low-priority channel data congestion and difficulty in sending;

[0040] (III) The router based on the virtual channel of the present application is composed of an input module containing five input ports, a crossbar switch, and an output module containing five output ports. Data is transmitted through the crossbar switch according to priority, which can realize the function of high-priority interrupting low-priority, and the data transmission is in order, which can flexibly adapt to priority requirements and guarantee the real-time performance of high-priority data;

[0041] (IV) The present application adopts a priority dynamic arbitration method based on target nodes, which can realize different virtual channel switching requirements in different scenarios, disable and enable the high-priority interrupt mechanism in different scenarios, accurately adapt to multi-target transmission scenarios, avoid data conflicts when transmitting concurrently to the same target, and dynamically realize switching priority interrupt mode, taking into account the real-time performance and transmission integrity of high-priority data;

[0042] (V) The application designs a virtual channel configuration use method, a virtual channel-based routing implementation design, and a virtual channel dynamic control transmission implementation logic, which are realized by a combination of software and hardware. The hardware configures multiple parallel virtual channels to carry different priority data, and the software configures a virtual channel ID. In addition, a target node-based priority dynamic arbitration method is fused to dynamically determine the interruption permission of a high-priority channel, thereby guaranteeing real-time transmission of critical data and avoiding concurrent transmission conflicts to a target, and realizing an efficient network-on-chip communication mechanism. BRIEF DESCRIPTION OF DRAWINGS

[0043] The application will be further described below with reference to the drawings.

[0044] FIG. 1 is a flowchart of a virtual channel configuration use method according to the application. Figure 1 FIG. 2 is a schematic diagram of a virtual channel-based router implementation according to the application.

[0045] FIG. 3 is a logic diagram of an input module according to the application. Figure 2 FIG. 4 is a logic diagram of an output module according to the application.

[0046] FIG. 5 is a logic diagram of a virtual channel control module according to the application. Figure 3

[0047] FIG. 6 is a logic diagram of a virtual channel control module according to the application. Figure 4

[0048] FIG. 7 is a logic diagram of a virtual channel control module according to the application. Figure 5 DETAILED DESCRIPTION The network-on-chip virtual channel dynamic switching control method, device, and medium according to the application will be described in detail below with reference to the accompanying drawings and specific embodiments.

[0049] Embodiment 1

[0050] The network-on-chip virtual channel dynamic switching control method according to the application is as follows:

[0051] S1, configure a virtual channel: configure multiple parallel virtual channels to carry different priority data, and configure a virtual channel ID at the same time.

[0052] S2, virtual channel-based router implementation: the router includes an input module, a crossbar, and an output module. Data is transmitted through the crossbar according to priority, and the function of high-priority interruption of low-priority is realized.

[0053] S3, dynamic control transmission based on a virtual channel: a target node-based priority dynamic arbitration method is adopted to realize different virtual channel switching requirements in different scenarios, and then to realize the high-priority interruption mechanism in different scenarios.

[0054] As shown in FIG. 1, the method includes the following steps.

[0055] Figure 1 ​​​As shown, the configuration of the virtual channel in step S1 in the embodiment is as follows:

[0056] S101, configuring the virtual channel ID according to actual requirements and the current virtual channel usage state;

[0057] S102, receiving the configuration of the virtual channel ID information by the virtual channel control module, and selecting the virtual channel to be transmitted;

[0058] S103, transmitting the data under the selected virtual channel by the router;

[0059] S104, when the data transmission under the corresponding virtual channel is completed, feeding back the usage state of the corresponding virtual channel, and optimizing the subsequent configuration according to the state.

[0060] For example, the current network-on-chip provides three virtual channels 0, 1 and 2, in which 0 has the highest priority and 2 has the lowest priority. The software can know the state of the virtual channel through the virtual channel state register, for example, the value of the virtual channel state register is 001, the value 1 indicates that the 0 virtual channel is in use, and the values 0 indicate that the 1 and 2 virtual channels are in idle state. At this time, the software can configure the virtual channel ID according to the actual requirements and the current virtual channel state, and when the priority of the data to be transmitted is the highest, the VC_ID can be configured as 0. Then, the virtual channel control module receives the configuration of the VC_ID information, and selects the virtual channel to be transmitted. Next, the router transmits the data under the selected virtual channel. Finally, when the data transmission under the virtual channel is completed, the value of the state register of the virtual channel is set to 0, indicating that it is in an idle state.

[0061] As shown in the accompanying drawings, Figure 2 The router based on the virtual channel is mainly composed of an input module, a crossbar and an output module. The input module includes five local input ports of east, south, west and north, each port includes a virtual channel module and a routing direction calculation module, the virtual channel includes three parallel channels for storing and transmitting data, and the routing direction calculation module is used to calculate the direction. The output module also includes five local output ports of east, south, west and north, and includes a virtual channel control module, which can realize the control of interrupting the low-priority virtual channel by the high-priority virtual channel. After the input port obtains the routing direction, the data in the virtual channel of the input port is transmitted to the corresponding output port through the crossbar according to the priority, and the virtual channel control module of the output port controls whether the high-priority data can interrupt the transmission of the low-priority data.

[0062] As shown in the accompanying drawings, Figure 3As shown, the specific control logic of the virtual channel in the input module is as follows: The input module contains 3 virtual channels. Data is stored in the corresponding virtual channel according to VC_ID, and then passes through the virtual channel arbitration module. If data from a higher-priority virtual channel arrives, it will be output first.

[0063] As attached Figure 4 As shown, the specific control logic of the virtual channel in the output module is as follows: In the output module, input requests from four directions are grouped according to virtual channels; then, virtual channel locking is performed. If a virtual channel has a request, the channel is locked until the data packet transmission is completed; in the virtual channel control module, it is determined whether the destination nodes of multiple input directions are the same. If there are the same cases and the virtual channels are different, the higher priority cannot interrupt the transmission of the lower priority. If the destination nodes are different, the higher priority can interrupt the transmission of the lower priority. The virtual channel data with the higher priority is transmitted first, and then the output virtual channel data is determined by combining the virtual channel priority arbitration module.

[0064] As attached Figure 5 As shown, the specific logic implementation process of the virtual channel control module is as follows: It receives valid VC_IDs and target node coordinate information from four directions. It determines whether the VC_IDs of different input directions are different and the target coordinates are the same. If so, the signal vc_id_grant for the first input direction is set to 1, and the vc_id_grant for subsequent input directions is set to 2, until the data from the first input direction is completely output and its vc_id_grant is set to 0. Then, it selects the subsequent input direction with the smallest vc_id_grant value of 2 and sets its vc_id_grant value to 1. At this point, higher priority cannot interrupt lower priority. If not, it sets the vc_id_grant value to 1 for all input directions, at which point higher priority can interrupt lower priority.

[0065] Example 2:

[0066] This embodiment also provides an electronic device, including: a memory and a processor;

[0067] The memory stores the instructions executed by the computer.

[0068] The processor executes computer execution instructions stored in the memory, causing the processor to execute the on-chip network virtual channel dynamic switching control method in any embodiment of the present invention.

[0069] The processor can be a central processing unit (CPU), and can also be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), or other programmable logic devices, discrete gates or transistor logic, discrete hardware components, etc. The processor can be a microprocessor or the processor can be any conventional processor.

[0070] The memory can be used to store computer programs and / or modules, and the processor can realize various functions of the electronic device by running or executing the computer programs and / or modules stored in the memory, and calling data stored in the memory. The memory can mainly include a program storage area and a data storage area, wherein the program storage area can store operating systems, application programs required by at least one function, etc.; and the data storage area can store data created according to the use of the terminal, etc. In addition, the memory can also include a high-speed random access memory, and can also include a non-volatile memory, such as a hard disk, a memory, a plug-in hard disk, a smart memory card (SMC), a secure digital (SD) card, a flash memory card, at least one disk storage device, a flash memory device, or other volatile solid-state memory devices.

[0071] Embodiment 3

[0072] The embodiment also provides a computer-readable storage medium, in which a plurality of instructions are stored, the instructions are loaded by a processor to make the processor execute the network-on-chip virtual channel dynamic switching control method in any embodiment of the application. Specifically, a system or device provided with a storage medium can be provided, and the storage medium stores software program codes for realizing the functions of any embodiment of the above-mentioned embodiments, and the computer (or CPU or MPU) of the system or device reads and executes the program codes stored in the storage medium.

[0073] In this case, the program codes read from the storage medium can realize the functions of any one of the above-mentioned embodiments, and therefore the program codes and the storage medium storing the program codes constitute a part of the application.

[0074] The storage medium for providing the program codes includes a floppy disk, a hard disk, a magneto-optical disk, an optical disk (such as CD-ROM, CD-R, CD-RW, DVD-ROM, DVD-RYM, DVD-RW, DVD+RW), a magnetic tape, a non-volatile memory card, and a ROM. Alternatively, the program codes can be downloaded from a server computer through a communication network.

[0075] Furthermore, it should be understood that, not only the program codes read by the computer can be executed to complete the actual operation, but also the operating system and the like operating on the computer can be instructed based on the program codes to complete part or all of the actual operation, thereby realizing the function of any one of the above embodiments.

[0076] Furthermore, it should be understood that, not only the program codes read by the computer can be executed to complete the actual operation, but also the operating system and the like operating on the computer can be instructed based on the program codes to complete part or all of the actual operation, thereby realizing the function of any one of the above embodiments.

[0077] Finally, it should be noted that: the above embodiments are only used to illustrate the technical solutions of the present application, and not to limit them; although the present application has been described in detail with reference to the above embodiments, those skilled in the art should understand that: it can still modify the technical solutions recorded in the above embodiments, or make equivalent replacement for part or all of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the scope of the technical solutions of the embodiments of the present application.

Claims

1. A method for dynamic switching control of on-chip network virtual channels, characterized in that, The method is as follows: Configure virtual channels: Configure multiple parallel virtual channels to carry data with different priorities, and configure the virtual channel IDs; Router implementation based on virtual channel: The router includes an input module, a crossbar switch and an output module. Data is transmitted via the crossbar switch according to priority, realizing the function of high priority interrupting low priority in the virtual channel; Dynamic control transmission based on virtual channels: A priority-based dynamic arbitration method based on target nodes is adopted to realize the switching requirements of different virtual channels in different scenarios, thereby enabling the high-priority interruption mechanism to be disabled and enabled in different scenarios.

2. The on-chip network virtual channel dynamic switching control method according to claim 1, characterized in that, Configure the virtual channel as follows: Configure the virtual channel ID according to actual needs and the current virtual channel usage status; The virtual channel ID information is received through the virtual channel control module, and the virtual channel to be transmitted is selected. The router will transmit the data under the selected virtual channel; Once the data transmission under the corresponding virtual channel is completed, the usage status of the corresponding virtual channel is fed back, and subsequent configurations are optimized based on the status.

3. The on-chip network virtual channel dynamic switching control method according to claim 1 or 2, characterized in that, The input module includes five input ports: East Input Port, South Input Port, West Input Port, North Input Port, and Local Input Port. The East Input Port, South Input Port, West Input Port, North Input Port, and Local Input Port each include a virtual channel module and a routing direction calculation module. The virtual channel module includes three parallel channels for storing and transmitting data. The route direction calculation module is used to calculate the route direction.

4. The on-chip network virtual channel dynamic switching control method according to claim 3, characterized in that, The output module includes five output ports: East Output Port, South Output Port, West Output Port, North Output Port, and Local Output Port. Each of the East Output Port, South Output Port, West Output Port, North Output Port, and Local Output Port includes a virtual channel control module. The virtual channel control module is used to control the high-priority virtual channel to interrupt the low-priority virtual channel.

5. The on-chip network virtual channel dynamic switching control method according to claim 4, characterized in that, After the input port of any input module obtains the routing direction, the data in the virtual channel of the input port is transmitted to the corresponding output port through a crossbar switch according to priority. The virtual channel control module of the output port controls whether the high-priority data interrupts the transmission of the low-priority data.

6. The on-chip network virtual channel dynamic switching control method according to claim 5, characterized in that, The control logic of the input module is as follows: The input module includes three virtual channels. Data is stored in the corresponding virtual channel according to the virtual channel ID. The virtual channel arbitration module determines the data priority. If data from a higher-priority virtual channel arrives, it will be output first.

7. The on-chip network virtual channel dynamic switching control method according to claim 6, characterized in that, The control logic of the output module is as follows: The output module groups input requests from four directions into virtual channels and then locks the virtual channels: if any virtual channel has a request, the corresponding channel is locked until the data packet transmission is complete; The virtual channel control module determines whether the target nodes in multiple input directions are the same: If there are identical target nodes but different virtual channels, higher priority cannot interrupt the transmission of lower priority. If the target nodes are different, the transmission of high-priority data interrupts the transmission of low-priority data. The virtual channel data with higher priority is transmitted first, and then the output virtual channel data is determined by the virtual channel priority arbitration module.

8. The on-chip network virtual channel dynamic switching control method according to claim 7, characterized in that, The control logic of the virtual channel control module is as follows: (1) The virtual channel control module receives the valid virtual channel ID and target node coordinate information input from four directions, and then executes step (2). (2) Determine whether the virtual channel IDs are different for different input directions but the target node coordinates are the same: ①If so, proceed to step (3); ②If not, proceed to step (4); (3) The first input direction signal vc_id_grant is assigned the value of 1, and the subsequent input directions are assigned the value of 2 until the data of the first input direction is output and the first input direction signal vc_id_grant is assigned the value of 0. The subsequent input direction with the smallest vc_id_grant is selected and the corresponding vc_id_grant is assigned the value of 1. At this time, the high priority cannot interrupt the low priority. The next step is to execute step (5). (4) All input directions are assigned the value 1 for vc_id_grant. Higher priority can interrupt lower priority. The next step is to execute step (5). (5) Output the data under the virtual channel ID where vc_id_grant=1.

9. An electronic device, characterized in that, include: Memory and at least one processor; The memory contains computer programs; The at least one processor executes the computer program stored in the memory, causing the at least one processor to perform the on-chip network virtual channel dynamic switching control method as described in any one of claims 1 to 8.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that can be executed by a processor to implement the on-chip network virtual channel dynamic switching control method as described in any one of claims 1 to 8.