A data transmission method, computer program product, device and computer medium

By acquiring slot status information from the on-chip network, flexibly storing microchips and generating virtual channels, the problem of limited transmission capacity caused by the fixed buffer size of virtual channels is solved, and more efficient data transmission is achieved.

CN120892384BActive Publication Date: 2026-01-27SHANDONG YUNHAI GUOCHUANG CLOUD COMPUTING EQUIP IND INNOVATION CENT CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511416477.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-09-30
Publication Date
2026-01-27
Estimated Expiration
2045-09-30

AI Technical Summary

Technical Problem

In existing on-chip networks, the fixed buffer size of the virtual channel during data transmission limits the transmission capacity, especially in high-traffic and low-traffic network scenarios. This makes it difficult to adapt flexibly, resulting in wasted slots and low transmission efficiency.

Method used

By acquiring the status information of each slot in the on-chip network, the target microchip is stored in the idle slot according to the slot status, and virtual channels are generated in real time. Microchip storage and virtual channel construction are performed at the slot level, flexibly allocating cache resources and avoiding slot waste.

Benefits of technology

It improves the data transmission capability of on-chip network in high and low traffic network scenarios, enhances the adaptability of virtual channels and microchips, reduces slot waste, and improves transmission efficiency and resource utilization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120892384B_ABST
    Figure CN120892384B_ABST
Patent Text Reader

Abstract

The application discloses a data transmission method, a computer program product, equipment and a computer medium, relates to the field of network-on-chip technology, and obtains target flit corresponding to to-be-transmitted data; obtains state information of each slot in a network-on-chip; stores the target flit into a target idle slot according to the state information of the slot; updates the state information of the slot; generates a target virtual channel based on the target slot; and updates the state information of the virtual channel. According to the application, the virtual channel corresponding to the target slot occupied by the target flit is generated, the adaptability between the virtual channel and the target flit is improved under the condition of ensuring the function of the virtual channel, the flit is stored in the slot according to the preset virtual channel, the corresponding relationship between the virtual channel and the slot is more flexible and changeable, the network-on-chip can store the flit more flexibly with the help of the virtual channel, the waste of the slot of the network-on-chip can be avoided, and the data transmission capacity of the network-on-chip is improved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of network on chip, and more particularly, to a data transmission method, a computer program product, an apparatus and a computer medium. BACKGROUND

[0002] Multi-core and many-core processors have gradually become the choice of computing architecture, but the bus interconnection architecture exposes bottleneck problems such as insufficient communication bandwidth, significant delay rise and limited scalability of interconnection units when the number of computing cores increases. Network on Chip (NoC) technology introduces packet switching and distributed routing mechanism to replace global physical wiring, effectively improving the inter-core communication efficiency, and has been applied to the fields of AI (Artificial Intelligence) acceleration chips, high-performance multi-core processors and the like.

[0003] In the process of transmitting data by means of the network on chip, a virtual channel (VC) can be set for the NoC, that is, n virtual paths are allocated to each port physical channel of the network on chip, each path is equipped with an independent parallel FIFO (First-In-First-Out), and each FIFO has k slots. When a VC is occupied by data A, other data needs to apply to enter other VCs. The virtual channel involves two core parameters of VC depth k and VC number n, the VC depth k is the maximum number of Flits (micro slices) that can be cached by a single VC, and the VC number n is the maximum number of messages that can be cached by a single input port at the same time. The cache space can theoretically store a maximum number of Filt nk. For a routing design with a fixed cache size, increasing the number of VCs means sacrificing the VC depth. Since a VC is once occupied by the head micro slice of data A, the VC cannot be released until the tail micro slice of data A leaves, during which other data cannot be used, resulting in limited transmission capacity of the network on chip.

[0004] In summary, how to improve the data transmission capacity of the network on chip is a problem to be solved by the technical personnel in the field at present. SUMMARY

[0005] The present application aims to provide a data transmission method which can solve the technical problem of how to improve the data transmission capacity of the network on chip to some extent. The present application also provides a computer program product, an electronic device and a computer readable storage medium.

[0006] In order to achieve the above-mentioned purpose, in a first aspect, a data transmission method is provided, comprising:

[0007] obtaining a target micro slice corresponding to the to-be-transmitted data;

[0008] Obtaining state information of each slot in the network-on-chip;

[0009] Storing the target flit into a free target slot according to the state information of the slot;

[0010] Updating the state information of the slot;

[0011] Generating a target virtual channel based on the target slot;

[0012] Updating the state information of the virtual channel.

[0013] In another aspect, obtaining state information of each slot in the network-on-chip comprises:

[0014] Obtaining a slot available table of the network-on-chip;

[0015] Parsing the slot available table;

[0016] In response to a state value of a slot in the slot available table being a first set value, obtaining state information representing that the slot is occupied;

[0017] In response to the state value of the slot in the slot available table being a second set value, obtaining state information representing that the slot is free;

[0018] The first set value is different from the second set value.

[0019] In another aspect, storing the target flit into a free target slot according to the state information of the slot comprises:

[0020] Determining an index of a slot in the slot available table;

[0021] Determining a slot pointer of the slot available table;

[0022] In the slot available table, controlling the slot pointer to point to a slot with the smallest index and being free according to the state information of the slot;

[0023] Storing one flit in the target flit into a target slot pointed to by the slot pointer;

[0024] Updating the slot pointer;

[0025] Returning to the step of storing one flit in the target flit into a target slot pointed to by the slot pointer.

[0026] In another aspect, updating the slot pointer comprises:

[0027] Taking a slot with an index greater than the smallest index and being free as a first candidate slot;

[0028] Detecting whether an occupied slot is released;

[0029] in response to the occupied slot being released, the released occupied slot is taken as a second candidate slot; among the first candidate slot and the second candidate slot, the slot with the smallest label is taken as the to-be-pointed slot;

[0030] in response to the occupied slot not being released, the first candidate slot is taken as the to-be-pointed slot;

[0031] controlling the slot pointer to point to the to-be-pointed slot.

[0032] On the other hand, after the slot pointer is updated, the step of storing a flit in the target flit into a target slot pointed to by the slot pointer is returned to be executed, and further comprising:

[0033] detecting whether all flits in the target flit are stored into idle slots;

[0034] in response to there being a flit in the target flit not stored into an idle slot, detecting whether there is an idle slot;

[0035] in response to there being an idle slot, returning to execute the step of storing a flit in the target flit into a target slot pointed to by the slot pointer;

[0036] in response to there being no idle slot, waiting for a set time length, and then returning to execute the step of storing a flit in the target flit into a target slot pointed to by the slot pointer.

[0037] On the other hand, updating the state information of the slot comprises:

[0038] in the slot available table, changing the state value of the target slot from the second set value to the first set value;

[0039] detecting whether there is a released occupied slot;

[0040] in response to there being a released occupied slot, changing the state value of the released occupied slot from the first set value to the second set value.

[0041] On the other hand, generating a target virtual channel based on a target slot comprises:

[0042] obtaining a virtual channel available table of a network on a chip;

[0043] determining a virtual channel pointer of the virtual channel available table, the virtual channel pointer pointing to a virtual channel with the smallest label and not being occupied;

[0044] changing the state of the virtual channel pointed to by the virtual channel pointer to occupied;

[0045] pointing to a virtual channel as a target virtual channel;

[0046] updating the virtual channel pointer.

[0047] In another aspect, the state information of the virtual channel is updated, including:

[0048] obtaining a virtual channel allocation table of the network-on-chip, the virtual channel allocation table being used to record usage information of virtual channels;

[0049] In the virtual channel allocation table, the slot information corresponding to the target virtual channel is updated based on the target slot.

[0050] In the virtual channel allocation table, the total number of virtual channels is the same as the total number of slots, and each virtual channel corresponds to all slots.

[0051] In another aspect, in the virtual channel allocation table, the slot information corresponding to the target virtual channel is updated based on the target slot, including:

[0052] According to the storage order of the micro-chips in the target micro-chip, the target slot is sorted to obtain a slot sorting result.

[0053] In the virtual channel allocation table, the information of the target slot is recorded in the slot information corresponding to the target virtual channel according to the slot sorting result.

[0054] In another aspect, the virtual channel pointer is updated, including:

[0055] The virtual channel with a label greater than the label of the target virtual channel and being idle is taken as a first candidate virtual channel.

[0056] Detecting whether the occupied virtual channel is released.

[0057] In response to the occupied virtual channel being released, the released occupied virtual channel is taken as a second candidate virtual channel; among the first candidate virtual channel and the second candidate virtual channel, the virtual channel with the smallest label is taken as a to-be-pointed virtual channel.

[0058] In response to the occupied virtual channel not being released, the first candidate virtual channel is taken as the to-be-pointed virtual channel.

[0059] The virtual channel pointer is controlled to point to the to-be-pointed virtual channel.

[0060] In another aspect, detecting whether the occupied virtual channel is released, including:

[0061] In the virtual channel allocation table, for each occupied virtual channel, a write pointer and a read pointer of the occupied virtual channel are determined.

[0062] detecting whether the slot pointed by the write pointer and the slot pointed by the read pointer are consistent;

[0063] in response to the slot pointed by the write pointer and the slot pointed by the read pointer being consistent, determining that the occupied virtual channel is released;

[0064] in response to the slot pointed by the write pointer and the slot pointed by the read pointer being inconsistent, determining that the occupied virtual channel is not released.

[0065] In another aspect, obtaining a target flit corresponding to the data to be transmitted comprises:

[0066] obtaining the data to be transmitted;

[0067] determining a capacity of a slot in the network-on-chip;

[0068] segmenting the data to be transmitted according to the capacity to obtain the target flit.

[0069] In another aspect, according to the state information of the slot, after storing the target flit in the idle target slot, the method further comprises:

[0070] arbitrating the slot storing the flit in the network-on-chip to obtain a slot to be read;

[0071] combining the flit in the slot to be read to obtain a combined flit;

[0072] transmitting the combined flit.

[0073] In a second aspect, a computer program product is provided, comprising computer programs / instructions, which, when executed by a processor, implement the steps of any of the above data transmission methods.

[0074] In a third aspect, an electronic device is provided, comprising:

[0075] a memory configured to store a computer program;

[0076] a processor configured to implement the steps of any of the above data transmission methods when executing the computer program.

[0077] In a fourth aspect, a computer readable storage medium is provided, which stores a computer program, and the computer program, when executed by a processor, implements the steps of any of the above data transmission methods.

[0078] The application provides a data transmission method, obtains a target flit corresponding to to-be-transmitted data, obtains state information of each slot in a network on chip, stores the target flit into a target slot according to the state information of the slot, updates the state information of the slot, generates a target virtual channel based on the target slot, and updates state information of the virtual channel. The application has the beneficial effects that after the target flit is obtained, the target flit is stored into the target slot according to the state information of each slot in the network on chip, so that the target flit can be stored into the network on chip as long as there is a free slot, and a target virtual channel is generated based on the target slot, which realizes real-time generation of the virtual channel, that is, the application realizes storage of the flit and generation of the corresponding virtual channel with the slot as the granularity, compared with the existing storage of the flit with the virtual channel as the granularity, the virtual channel corresponding to the target slot occupied by the target flit can be generated according to the target flit under the condition of guaranteeing the function of the virtual channel, the adaptability between the virtual channel and the target flit is improved, the flit is stored in the slot according to the preset virtual channel, the corresponding relationship between the virtual channel and the slot is more flexible, so that the network on chip can store the flit more flexibly with the help of the virtual channel, the waste of the slot of the network on chip is avoided, and the data transmission capacity of the network on chip is improved. The computer program product, the electronic equipment and the computer readable storage medium provided by the application also solve the corresponding technical problems. BRIEF DESCRIPTION OF DRAWINGS

[0079] 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 needed to be used in the embodiments or the prior art description. Obviously, the drawings in the following description only constitute the embodiments of the present application, and for those skilled in the art, other drawings can also be obtained without creative labor on the basis of the provided drawings.

[0080] Figure 1 A flowchart of a data transmission method provided by the present application;

[0081] Figure 2 A schematic diagram of a cache space using a parallel FIFO structure;

[0082] Figure 3 A structure diagram of all slots as a unified cache pool;

[0083] Figure 4 A flowchart of data transmission by means of a slot available table;

[0084] Figure 5 A flowchart of data transmission by means of a virtual channel available table;

[0085] Figure 6 A data transmission flowchart with the slot as the granularity;

[0086] Figure 7 Allocation diagram for two-stage separated virtual channel;

[0087] Figure 8 Structure diagram of a routing node based on a network on chip;

[0088] Figure 9 Structure diagram of an electronic device provided by an embodiment of the present application;

[0089] Figure 10 Another structure diagram of an electronic device provided by an embodiment of the present application. DETAILED DESCRIPTION

[0090] The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, rather than all the embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by a person of ordinary skill in the art without creative work fall within the protection scope of the present application.

[0091] Multi-core and many-core processors are gradually becoming the choice of computing architecture. However, when the number of computing cores increases, the bus interconnection architecture exposes bottleneck problems such as insufficient communication bandwidth, significant delay rise, and limited scalability of interconnection units. Network on Chip (NoC) technology introduces packet switching and distributed routing mechanism to replace global physical wiring, effectively improves the inter-core communication efficiency, and has been applied in the fields of AI (Artificial Intelligence) acceleration chips, high-performance multi-core processors, etc. In addition to performance factors, NoC is gradually dominating the area and power consumption of chips. The cache unit is the core component of the NoC routing node, used to temporarily store messages at each input / output port to solve network resource competition, which can improve throughput and support flow control. The cache unit usually occupies 30%-60% of the total area of the routing node, and frequent data read / write leads to high dynamic power consumption. Excessive cache capacity increases chip cost, and small cache may cause network congestion or protocol-level deadlock. Therefore, under the limited cache resources, it is urgent to optimize the routing node cache method to meet the high energy efficiency of the network.

[0092] In the process of transmitting data by means of a network on chip, a virtual channel (VC) can be set for the NoC, that is, n virtual paths are allocated to each physical channel of the NoC, each path is equipped with an independent parallel FIFO (First-In-First-Out), and each FIFO has k slots, each slot stores a Flit (micro slice). When a VC is occupied by data A, other data needs to apply to enter other VCs. The virtual channel involves two core parameters of VC depth k and VC number n, the VC depth k is the maximum number of Flits that can be cached by a single VC, and the VC number n is the maximum number of messages that can be cached by a single input port at the same time. The cache space can theoretically store a maximum of nk Flits. For a routing design with a fixed cache size, increasing the number of VCs means sacrificing the VC depth. Since a VC is occupied by the head micro slice of data A, the VC cannot be released until the tail micro slice of data A leaves, and other data cannot be used during this period. Therefore, for a high-traffic network, when the number of VCs is insufficient, only by designing more VCs can more messages share the physical channel, which can improve the network performance more than simply increasing the VC depth. For a low-traffic network, increasing the number of VCs has little benefit and also wastes VC channel resources, and simply increasing the VC depth and reducing the number of VCs is not the optimal choice. Because the VC is occupied by the message alone, if the tail micro slice does not leave, the released resources under the VC will not be authorized to other messages, which limits the transmission capacity of the network on chip. The data transmission scheme provided by the present application can improve the data transmission capacity of the network on chip.

[0093] Please refer to Figure 1 , Figure 1 The flowchart of the data transmission method provided by the embodiment of the present application.

[0094] The data transmission method provided by the embodiment of the present application can include the following steps:

[0095] Step S101: Obtain the target micro slice corresponding to the to-be-transmitted data.

[0096] In actual application, the application scenario of the network on chip can be flexibly determined according to needs, and therefore the type and number of the target micro slice corresponding to the to-be-transmitted data can be flexibly determined according to the application scenario of the network on chip. The to-be-transmitted data can be text, numbers, pictures, voice, etc. Specifically, in the case of the network on chip used for a server, the target micro slice can be a micro slice corresponding to server performance data, or a micro slice corresponding to server processing instructions, etc.

[0097] It should be noted that the message switching mechanism of the network-on-chip adopts wormhole flow control technology, that is, a message is divided into multiple Flits, including a Head Flit, multiple Data Flits and a Tail Flit, each Flit is the smallest storage unit of the message, sequentially buffered in each node on the propagation path, and the message in the network-on-chip refers to the data packet transmitted between each functional module in the multi-core processor chip. Because the required cache space of a single Flit is small, the wormhole flow control technology can effectively reduce the area of the routing node. The cache space mainly adopts a parallel FIFO structure, as shown in Figure 2 The FIFO width is equal to the Flit bit width, and the FIFO depth determines the number of cached Flits, and each slot stores a Flit. When the Head Flit enters the input module FIFO, the routing algorithm calculates the next hop node direction based on the destination address of the Head Flit.

[0098] Step S102: Obtain the state information of each slot in the network-on-chip.

[0099] Step S103: According to the state information of the slot, store the target Flit in the idle target slot.

[0100] Step S104: Update the state information of the slot.

[0101] Step S105: Generate a target virtual channel based on the target slot.

[0102] Step S106: Update the state information of the virtual channel.

[0103] In practical applications, in Figure 2Under the shown cache layout, if the FIFO of the next hop node is occupied by other packets, the head flit cannot continue to propagate and has to continue to occupy the FIFO of the node. This "head blocking" problem causes other packets that enter the FIFO later to also be unable to propagate, even if the output port FIFO selected by the subsequent packet is idle. To solve the head blocking problem, the virtual channel (VC) technology is proposed. After studying the virtual channel, it is found that the virtual channel transmits flits in units of multiple slots, and the slots corresponding to each virtual channel need to be set in advance. In this way, if the flit cannot use each slot of the virtual channel, it will cause slot waste. In order to avoid this situation, it is considered that as long as there is a free slot, it can be used to transmit flits, and the virtual channel is essentially a combination of slots. Therefore, flits can be transmitted in units of slots and virtual channels can be constructed, that is, the state information of each slot in the network-on-chip can be obtained. The state information of the slot can be used to represent whether the slot is in an idle state or an occupied state. Since the occupied slot cannot continue to transmit flits, the target flit can be stored in the target slot according to the state information of the slot. Then, the state information of the slot is updated to continue the flit transmission. The target virtual channel is generated based on the target slot, and the state information of the virtual channel is updated to ensure the normal use of the virtual channel and avoid the head blocking problem.

[0104] It should be noted that, since the flits are transmitted in units of slots and the virtual channels are constructed, the application is equivalent to using all the slots as a unified cache pool for flit transmission, such as Figure 3 as shown, Figure 3 The read-write pointer logic in the above formula is used to write flits into slots or read flits from slots. It should be noted that the application does not change the underlying physical structure of the general cache unit in the network-on-chip, but logically integrates the original n VC with a depth of k into a unified cache pool with nk flexible assignable slots. Through the control logic, the application can allocate a corresponding number of slots to each packet in real time according to the network traffic. In theory, up to nk VCs can be realized, which can be used to cache nk packets at high traffic. Each VC contains one flit, and the number of VCs can be theoretically minimized to 1, containing nk flits. That is, the number of VCs of the application can be adjustable within the interval of 1~nk, the depth of each VC is not fixed, and the slot addresses in each VC can be discontinuous.

[0105] The application provides a data transmission method, obtaining a target flit corresponding to to-be-transmitted data; obtaining state information of each slot in a network on a chip; storing the target flit in a target slot according to the state information of the slot; updating the state information of the slot; generating a target virtual channel based on the target slot; and updating state information of the virtual channel. The application has the beneficial effect that after obtaining the target flit, the target flit is stored in the target slot according to the state information of each slot in the network on a chip. As long as there is a free slot, the target flit can be stored in the network on a chip, and a target virtual channel is generated based on the target slot, which realizes real-time generation of a virtual channel, that is, the application realizes storage of flits with slots as granularity and generation of corresponding virtual channels. Compared with the prior art of storing flits with virtual channels as granularity, the application can generate a virtual channel corresponding to a target slot occupied by a target flit under the condition of ensuring the function of the virtual channel, improves the adaptability between the virtual channel and the target flit, and does not need to store flits in slots according to a preset virtual channel, so that the correspondence between the virtual channel and the slot is more flexible, thereby enabling the network on a chip to store flits more flexibly with the help of the virtual channel, avoiding waste of slots in the network on a chip, improving the data transmission capacity of the network on a chip, and being compatible with high- and low-flow network scenarios.

[0106] On the basis of the above-mentioned embodiments, considering that the number of slots in the network on a chip can be large, slot management can be inconvenient, in order to avoid this situation and accurately manage the slots, please refer to Figure 4 The data transmission method provided by the application can include the following steps:

[0107] Step S401: obtaining a target flit corresponding to to-be-transmitted data.

[0108] Step S402: obtaining a slot available table of the network on a chip.

[0109] Step S403: analyzing the slot available table.

[0110] Step S404: obtaining state information representing that a slot is occupied in response to a state value of the slot in the slot available table being a first set value.

[0111] Step S405: obtaining state information representing that a slot is free in response to a state value of the slot in the slot available table being a second set value.

[0112] In actual application, the slot available table can be used to record the occupied or idle slots, as shown in Table 1. Correspondingly, in the process of obtaining the state information of each slot in the network-on-chip, the slot available table of the network-on-chip can be used; the slot available table is parsed; in response to the state value of the slot in the slot available table being a first set value, the state information representing that the slot is occupied is obtained; in response to the state value of the slot in the slot available table being a second set value, the state information representing that the slot is idle is obtained; the first set value and the second set value are different, for example, the first set value can be 1 and the second set value can be 0.

[0113] Table 1: Available table of network-on-chip

[0114]

[0115] Step S406: According to the state information of the slot, the target flit is stored in the idle target slot.

[0116] In actual application, in the process of storing the target flit in the idle target slot according to the state information of the slot, the slot available table can be used, that is, the index of the slot in the slot available table can be determined, for example, the index of the slot can gradually increase from 1 to nk, and the slot pointer of the slot available table is determined; in the slot available table, according to the state information of the slot, the slot pointer is controlled to point to the slot with the smallest index and being idle. In this way, the slot pointer indicates the slot with the smallest index and being idle in the slot available table, and the target slot that can be used to store the target flit can be directly determined according to the slot pointer. In order to realize adaptive cache allocation of the network, each Flit flowing into the network-on-chip needs to apply for a Slot space individually, that is, one flit in the target flit is stored in the target slot pointed to by the slot pointer, the slot pointer is updated to continue to point to the next slot with the smallest index and being idle, and the step of storing one flit in the target flit in the target slot pointed to by the slot pointer and the subsequent steps are returned to execute, so as to store all flits in the target flit in the idle slot.

[0117] In the example embodiment, if the flit is read out of the slot within the time period of storing the target flit into the slot, the slot is changed from occupied to free, so that the flit can continue to be transmitted, therefore, in the process of updating the slot pointer, the slot with a label greater than the minimum label and free can be taken as the first candidate slot, if the slot pointer currently points to the slot with the minimum label and free, and the slot with a label greater than the minimum label and free is k+3, the label of the first candidate slot is k+3; whether the occupied slot is released is detected; in response to the occupied slot being released, the released occupied slot is taken as the second candidate slot, if the released occupied slot is 3, the label of the second candidate slot is 3, and correspondingly, if the released occupied slot is 2k, the label of the second candidate slot is 2k; in the first candidate slot and the second candidate slot, the slot with the minimum label is taken as the slot to be pointed to; in response to the occupied slot not being released, the first candidate slot is taken as the slot to be pointed to; the slot pointer is controlled to point to the slot to be pointed to. In this way, the label greater than the minimum label and free can be taken as the first candidate slot, that is, the slot with the minimum label in the known free can be taken as the first candidate slot, then the released occupied slot is taken as the second candidate slot in consideration of the release of the occupied slot, and the slot with the minimum label in the first candidate slot and the second candidate slot is taken as the slot to be pointed to, and then the slot pointer can be controlled to point to the slot with the minimum label and free, if the cycle is repeated, the slot pointer always points to the slot with the minimum label and free in the slot availability table, so that the flit can be concentratedly applied to transmit the flit, the manageability of the slot is improved, and then the transmission order of the network-on-chip is improved.

[0118] In order to facilitate understanding of the application of the slot availability table, Table 1 is taken as an example, the slot occupied by the flit is "1", and the free slot is "0". The slot pointer points to the highest available slot, that is, the first marked "0" ID. When a new flit enters, the write control logic grants the slot ID pointed to by the slot pointer to the flit, marks it as "1", and then automatically points to the next ID. If all the slot IDs are marked as "1", it indicates that the buffer space of the port is full, and a feedback is given to the adjacent routing node for routing calculation. If a slot is released, the read control logic notifies the ID to be reset to "0". It should be noted that, because the slot allocation of the present application is not continuous, the "0" and "1" marks are also not continuous. For example, in Table 1, the availability of the 3rd and 5th slots is marked as "0", but the availability of the 4th slot is marked as "1", which indicates that the flit (message A) of the 3rd slot has left the node earlier than the flit (message B) of the 4th slot, at this time, the slot pointer needs to point to the position of ID 3. By using this real-time slot allocation method, the buffer resource utilization rate can be maximized.

[0119] In a specific application scenario, considering that the number of idle slot positions and the number of micro slices of the target micro slice determine that the slot positions can store the target micro slice, and a single slot position can only store a single micro slice, the cache can be performed in the granularity of the micro slice, that is, after the slot position pointer is updated, the step of storing a micro slice in the target micro slice into the target slot position pointed to by the slot position pointer is returned to be executed, and whether the micro slice in the target micro slice is stored into the idle slot position can also be detected; in response to the fact that there is a micro slice in the target micro slice that is not stored into the idle slot position, whether there is an idle slot position is detected; in response to the fact that there is an idle slot position, the step of storing a micro slice in the target micro slice into the target slot position pointed to by the slot position pointer is returned to be executed; in response to the fact that there is no idle slot position, the step of storing a micro slice in the target micro slice into the target slot position pointed to by the slot position pointer is returned to be executed after waiting for a set time length, and the set time length can be flexibly determined according to the application scenario, for example, the set time length can be 1 minute, 3 minutes, etc. In this way, in the case that the idle slot positions are insufficient, the occupied slot positions can be waited for to be released by waiting for a set time length, so that the idle slot positions can be updated to continue to store the target micro slice.

[0120] Step S407: updating the state information of the slot position.

[0121] In actual application, in the process of updating the state information of the slot position, the state value of the target slot position can be changed from the second set value to the first set value in the slot position available table to represent that the target slot position is occupied and cannot store the micro slice in the future; whether the occupied slot position that is released exists is detected; in response to the fact that the occupied slot position that is released exists, the state value of the occupied slot position that is released is changed from the first set value to the second set value to represent that the slot position changes into the idle slot position and can continue to store the micro slice in the future.

[0122] Step S408: generating a target virtual channel based on the target slot position.

[0123] Step S409: updating the state information of the virtual channel.

[0124] It can be known from the implementation process that, in the process of obtaining the state information of each slot position in the network on a chip, the slot position available table of the network on a chip is obtained; the slot position available table is analyzed; in response to the fact that the state value of the slot position in the slot position available table is the first set value, the state information representing that the slot position is occupied is obtained; in response to the fact that the state value of the slot position in the slot position available table is the second set value, the state information representing that the slot position is idle is obtained, and the first set value is different from the second set value. That is, the slot position available table is arranged to record whether the slot position is occupied or idle, the state value of the occupied slot position is the first set value, the state value of the idle slot position is the second set value, and the first set value is different from the second set value, so that only the state value of the slot position in the slot position available table needs to be analyzed, and the idle slot position can be accurately and quickly screened, and the efficiency of storing the target micro slice into the idle target slot position is improved.

[0125] On the basis of the above-mentioned embodiments, considering that the number of virtual channels in the network-on-chip is maximally nk and minimally 1, the fluctuation range is large, and thus the virtual channel management is inconvenient, in order to avoid this situation, the virtual channel is accurately managed, please refer to Figure 5 The data transmission method provided by the embodiment of the present application can include the following steps:

[0126] Step S501: obtaining a target flit corresponding to the data to be transmitted.

[0127] Step S502: obtaining state information of each slot in the network-on-chip.

[0128] Step S503: storing the target flit into an idle target slot according to the state information of the slot.

[0129] Step S504: updating the state information of the slot.

[0130] Step S505: obtaining a virtual channel available table of the network-on-chip.

[0131] Step S506: determining a virtual channel pointer of the virtual channel available table, the virtual channel pointer pointing to a virtual channel with the smallest label and not being occupied.

[0132] Step S507: changing the state of the virtual channel pointed to by the virtual channel pointer to occupied.

[0133] Step S508: taking the virtual channel pointed to by the virtual channel pointer as a target virtual channel.

[0134] Step S509: updating the virtual channel pointer.

[0135] In actual application, the virtual channel availability table can be used to record whether the virtual channel is enabled or idle, as shown in Table 1. Correspondingly, in the process of generating the target virtual channel based on the target slot, the virtual channel availability table of the network-on-chip can be obtained; the virtual channel pointer of the virtual channel availability table is determined, the virtual channel pointer points to the virtual channel with the smallest label and not occupied, that is, the virtual channel label is also divided into 1~nk, each ID is marked with 1 bit to indicate the available state, the allocated VC ID is set to "1", and the unallocated VC ID is set to "0", the virtual channel pointer points to the highest available ID, and the VC ID is the head Flit applied in the source node VA stage; the state of the virtual channel pointed to by the virtual channel pointer is changed to occupied; the virtual channel pointed to by the virtual channel pointer is used as the target virtual channel; the virtual channel pointer is updated to continue to point to the next virtual channel with the smallest label and idle. That is, when a message from a nearby routing node applies for a VC resource to the node, the node will authorize the idle VC ID pointed to by the VC pointer to the message based on the VC availability table, feed back the VC ID to the nearby node through the "Grant" message, and add it to the head Flit, while maintaining the VC ID in sequence to the VC allocation table of the node, to wait for the arrival of the message, if the VC ID of the node is fully allocated, the node stops receiving new messages. It can be understood that because the Slot under a VC ID can be greater than or equal to 1, nk VC IDs often are not fully authorized, and the Slot ID is almost allocated.

[0136] Step S510: updating the state information of the virtual channel.

[0137] In actual application, considering that a single virtual channel can correspond to nk slots, and the maximum number of virtual channels is nk, the correspondence between the virtual channel and the slot is complex and variable. In order to facilitate the management of the virtual channel and its corresponding slot, in the process of updating the state of the target virtual channel based on the target slot, the virtual channel allocation table of the network-on-chip can be obtained, the virtual channel allocation table is used to record the use information of the virtual channel, the use information can include the allocated VC ID, the message input direction, and the Slot ID allocated in real time under the VC ID, as shown in Table 2, each VC ID row corresponds to a message, Flit 1 Slot ID marks the cache address of the head Flit of the message, and Flit 2~nk Slot ID reserves the Flit of the message flowing in subsequently, wherein, because the Flits under the same message have the same flag information, the Flits arriving subsequently can be identified as belonging to which VC ID; in the virtual channel allocation table, the slot information corresponding to the target virtual channel is updated based on the target slot; wherein the total number of virtual channels in the virtual channel allocation table is the same as the total number of slots, and each virtual channel corresponds to all slots.

[0138] Table 2 VC allocation table

[0139]

[0140] It should be noted that the VC of this invention can adapt to variable message lengths (1~nk). Therefore, a VC ID row is designed to contain nk Slot IDs, which do not need to be contiguous. The VC allocation table uses a flag "0" to indicate that no Slot space has been allocated, indicating that subsequent Flits have not yet flowed in or the tail Flit has arrived. "0" is also used to indicate that the buffer space under the original Slot ID has been released. For example, if the header Flit stored in Slot9 of VC3 has left this node, when all Slot IDs under a VC ID are marked as "0", the VC ID will be released as a whole and can be allocated to new messages.

[0141] In an exemplary embodiment, during the process of updating the slot information corresponding to the target virtual channel based on the target slot in the virtual channel allocation table, the target slots can be sorted according to the sequential storage order of the micro-pieces in the target micro-piece to obtain the slot sorting result; in the virtual channel allocation table, the information of the target slot is recorded into the slot information corresponding to the target virtual channel according to the slot sorting result.

[0142] In specific application scenarios, during the process of updating the virtual channel pointer, a virtual channel with a label greater than that of the target virtual channel and which is idle can be used as the first candidate virtual channel; it is checked whether the occupied virtual channel has been released; in response to the release of the occupied virtual channel, the released occupied virtual channel is used as the second candidate virtual channel; among the first and second candidate virtual channels, the virtual channel with the smallest label is used as the virtual channel to be pointed to; in response to the fact that the occupied virtual channel has not been released, the first candidate virtual channel is used as the virtual channel to be pointed to; and the virtual channel pointer is controlled to point to the virtual channel to be pointed to. In this way, the present invention can first select the virtual channel with a number greater than the smallest number and that is free as the first candidate virtual channel, that is, the virtual channel with the smallest known free number as the first candidate virtual channel. Then, considering the release of occupied virtual channels, the released occupied virtual channels are selected as the second candidate virtual channels. The virtual channel with the smallest number between the first and second candidate virtual channels is selected as the virtual channel to be pointed to. Then, the virtual channel pointer can be controlled to point to the free virtual channel with the smallest number. If this is repeated, the virtual channel pointer will always preferentially point to the free virtual channel with the smallest number in the available virtual channel table. This facilitates the centralized use of virtual channels to transmit microchips, improves the manageability of virtual channels, and thus improves the transmission orderliness of the on-chip network.

[0143] In specific application scenarios, the microchips in the slot undergo both writing and reading processes, which can be marked using corresponding pointers, for example... Figure 2In this process, the Slot ID status is tracked by the read and write pointers. The read pointer points to the first non-zero Slot ID from the left under the VC, and the write pointer points to the idle Slot ID waiting to be written sequentially. Correspondingly, the write and read pointers can be used to detect whether the occupied virtual channel has been released. That is, in the virtual channel allocation table, for each occupied virtual channel, the write and read pointers of the occupied virtual channel are determined; it is checked whether the slot pointed to by the write pointer and the slot pointed to by the read pointer are consistent; if the slot pointed to by the write pointer and the slot pointed to by the read pointer are consistent, it is determined that the occupied virtual channel has been released; if the slot pointed to by the write pointer and the slot pointed to by the read pointer are inconsistent, it is determined that the occupied virtual channel has not been released.

[0144] As can be seen from the implementation process, in the process of generating a target virtual channel based on a target slot, this invention obtains the virtual channel availability table of the on-chip network; determines the virtual channel pointer in the virtual channel availability table, with the virtual channel pointer pointing to the virtual channel with the smallest index that is not occupied; changes the status of the virtual channel pointed to by the virtual channel pointer to occupied; designates the virtual channel pointed to by the virtual channel pointer as the target virtual channel; and updates the virtual channel pointer. In other words, this invention sets up a virtual channel availability table to record whether a virtual channel is enabled or idle. By simply reading the virtual channel pointer in the virtual channel availability table, idle virtual channels can be accurately and quickly filtered, improving the efficiency of generating a target virtual channel based on a target slot and facilitating the corresponding management of virtual channels and slots.

[0145] Based on the above embodiments, considering the existence of virtual channels, the process of storing or removing microchips from slots is performed at the virtual channel level. However, the virtual channels in this invention are variable, making it unsuitable to continue using virtual channels as the granularity for matching microchips to slots. To solve this problem, please refer to... Figure 6 The data transmission method provided in this embodiment of the invention may include the following steps:

[0146] Step S601: Obtain the data to be transmitted.

[0147] Step S602: Determine the capacity of the slots in the on-chip network.

[0148] Step S603: Divide the data to be transmitted according to its capacity to obtain the target micro-pieces.

[0149] In practical applications, the process of acquiring the target micro-piece corresponding to the data to be transmitted involves: acquiring the data to be transmitted; determining the capacity of the slots in the on-chip network, which is the unit capacity of the slot, i.e., the capacity of a single slot; and then segmenting the data to be transmitted according to the capacity to obtain the target micro-pieces, with the size of each micro-piece in the target micro-pieces matching the capacity of the slot. In this way, the data to be transmitted is segmented according to the capacity of the slot to obtain the target micro-pieces, which is equivalent to determining the micro-pieces at the slot level, ensuring that the micro-pieces and slots are matched, facilitating subsequent transmission of the micro-pieces using the slots.

[0150] Step S604: Obtain the status information of each slot in the on-chip network.

[0151] Step S605: Based on the status information of the slot, store the target micro-chip into the vacant target slot.

[0152] In practical applications, considering the need to transmit the microchips in the slots, such as to the next port of the on-chip network, it is also necessary to match the microchips with the slots of the next port, etc. In this process, the present invention still operates at the slot level. That is, after storing the target microchip in the idle target slot according to the slot status information, it can also arbitrate the slots in the on-chip network that store microchips to obtain the slot to be read; combine the microchips in the slot to be read to obtain the combined microchip; and transmit the combined microchip.

[0153] In other words, during the process of storing microchips into slots or retrieving microchips from slots for transmission, it is necessary to map microchips to slots at the slot level. Specifically, taking the input and output ports of an on-chip network as an example, for a routing node with m ports, each input / output port is allocated a maximum of nk VCs, which requires matching a maximum of m×nk input VCs and m×nk output VCs. This invention can adopt a two-level separate allocation structure, such as... Figure 7 As shown, the first-level allocation is implemented at the local input port, and the second-level allocation is implemented at the input port of the next-hop node. In the first-level allocation, for a specified output port, the maximum nk input VC requests need to be reduced to one, and the VC request for the specified output port is made on behalf of the local input port. In this process, considering that the number of output ports is m, each input port needs m nk:1 arbitrators, and the first-level allocation requires a total of m² nk:1 arbitrators. In the second-level allocation, since there is a possibility that all m local input ports may make VC requests to the input port of the next-hop node, each input port needs an m:1 arbitrator. The second-level arbitrator will sequentially select an idle VC ID from the VC availability table and send it back to the previous node for authorization. The second-level allocation requires m m:1 arbitrators.

[0154] Correspondingly, a two-stage split allocation structure can be used in the process of forwarding microchips from one slot to another. The first-stage allocation reads Flit from the buffer, and the second-stage allocation interconnects the slots. In the first-stage allocation, each input port requires one nk:1 arbitrator to select one slot from nk slots for reading. In this case, the first stage requires a total of m nk:1 arbitrators. In the second-stage allocation, each output port needs to select one of the maximum m input ports to interconnect with itself, thus requiring one m:1 arbitrator. In this case, the second stage requires a total of m m:1 arbitrators.

[0155] Step S606: Update the status information of the slot.

[0156] Step S607: Generate a target virtual channel based on the target slot.

[0157] Step S607: Update the status information of the virtual channel.

[0158] To facilitate understanding of the data transmission scheme provided by this invention, it is assumed that the routing node structure based on the on-chip network is as follows: Figure 8 As shown, there are five input / output channels: East (E), South (S), West (W), North (N), and Local (L). These channels are bidirectionally interconnected with the four adjacent nodes and the local PE (Processing Element). Each channel contains an input module, an output module, a route calculation module, a Virtual-Channel Allocation (VA) module, and a Switch Allocation (SA) module. Each port is interconnected via a unique crossbar switch on each node. To reduce buffer area and power consumption, the output port VC is typically replaced by an equivalent input port VC from the next-hop node.

[0159] The structure of the virtual channel cache is as follows: Figure 3As shown, a two-stage multiplexer structure is used for read / write pointer control. Each secondary DEMUX (demultiplexer) and MUX (multiplexer) controls the read / write arbitration of k slots. When a new Flit arrives, the write control logic identifies its VC ID, requests a Slot ID, and adds it to the position pointed to by the write pointer in the VC allocation table. Simultaneously, the write logic controls the two-stage DEMUX to store the Flit in the specified Slot address. When the SA module reads a Flit from the specified VC ID, the read logic locates the Slot ID pointed to by the read pointer and controls the two-stage MUX to read the Flit from the specified Slot address. Then, the read pointer automatically points to the next Slot ID. When the read pointer and write pointer overlap, it indicates that the Slot space under the VC ID has been cleared, the VC ID is released, and it can be arbitrated for use by other packet headers.

[0160] According to the present invention, Figure 7 The process of message transmission by the routing node shown is as follows:

[0161] The virtual channel allocation module receives instructions to be transmitted from 5 channels; determines the capacity of the slots in the on-chip network; and segments the instructions to be transmitted according to the capacity to obtain the target microchip.

[0162] When the Flit message header first enters the local node's input port buffer, before being transmitted to the next hop node according to the routing algorithm, it needs to request the virtual channel allocation module to allocate an output port VC ID. The VA needs to match between multiple input VCs that have made requests to it and multiple available output VCs.

[0163] The virtual channel allocation module obtains the slot availability table of the on-chip network, determines the slot number in the slot availability table, determines the slot pointer in the slot availability table, and controls the slot pointer to point to the slot with the smallest number and free slot according to the slot status information in the slot availability table. With the help of the routing calculation module, a micro-chip of the target micro-chip is stored into the target slot pointed to by the slot pointer, the slot pointer is updated, and the process returns to the step of storing a micro-chip of the target micro-chip into the target slot pointed to by the slot pointer.

[0164] The virtual channel allocation module changes the status value of the target slot from the second set value to the first set value in the slot availability table; detects whether there are any released occupied slots; and in response to the existence of released occupied slots, changes the status value of the released occupied slot from the first set value to the second set value.

[0165] The virtual channel allocation module obtains the virtual channel availability table of the on-chip network; determines the virtual channel pointer in the virtual channel availability table, wherein the virtual channel pointer points to the virtual channel with the smallest index that is not occupied; changes the status of the virtual channel pointed to by the virtual channel pointer to occupied; sets the virtual channel pointed to by the virtual channel pointer as the target virtual channel; and updates the virtual channel pointer.

[0166] The virtual channel allocation module obtains the virtual channel allocation table of the on-chip network, which is used to record the usage information of virtual channels; in the virtual channel allocation table, the slot information corresponding to the target virtual channel is updated based on the target slot; wherein, the total number of virtual channels in the virtual channel allocation table is the same as the total number of slots, and each virtual channel corresponds to all slots;

[0167] The routing calculation module determines the next-hop node VC ID of the packet header Flit;

[0168] The SA module arbitrates one channel from the n input ports' slots and connects to the input of the crossbar. Next, the SA module controls the interconnection of the five input ports and five output ports. Only after the crossbar allocation is complete will Flit transmit data via the crossbar and network link to the next-hop node.

[0169] The present invention also provides an electronic device and a computer-readable storage medium, both of which have the corresponding effects of the data transmission method provided in the embodiments of the present invention. Please refer to [link / reference]. Figure 9 , Figure 9 This is a schematic diagram of the structure of an electronic device provided in an embodiment of the present invention.

[0170] An electronic device provided by an embodiment of the present invention includes a memory 201 and a processor 202. The memory 201 stores a computer program, and the processor 202 executes the computer program to implement the steps of the data transmission method described in any of the above embodiments.

[0171] Please see Figure 10Another electronic device provided in this embodiment of the invention may further include: an input port 203 connected to the processor 202 for transmitting commands input from the outside to the processor 202; a display unit 204 connected to the processor 202 for displaying the processing results of the processor 202 to the outside; and a communication module 205 connected to the processor 202 for enabling communication between the electronic device and the outside. The display unit 204 may be a display panel, a laser scanner, or the like; the communication method used by the communication module 205 includes, but is not limited to, Mobile High-Definition Link (MHL), Universal Serial Bus (USB), High-Definition Multimedia Interface (HDMI), wireless connectivity: Wireless Fidelity (WiFi), Bluetooth communication technology, Bluetooth Low Energy communication technology, and communication technology based on IEEE 802.11s.

[0172] The present invention provides a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps of the data transmission method described in any of the above embodiments.

[0173] The computer-readable storage media involved in this invention include random access memory (RAM), memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, hard disks, removable disks, CD-ROMs (compact disc read-only memory), or any other form of storage media known in the art.

[0174] The present invention provides a computer program product, including a computer program / instruction, which, when executed by a processor, implements the steps of the data transmission method described in any of the above embodiments.

[0175] For a detailed description of the relevant parts of the computer program product, electronic device, and computer-readable storage medium provided in the embodiments of the present invention, please refer to the detailed description of the corresponding parts in the data transmission method provided in the embodiments of the present invention, which will not be repeated here. Furthermore, the parts of the technical solutions provided in the embodiments of the present invention that are consistent with the implementation principles of corresponding technical solutions in the prior art have not been described in detail to avoid excessive elaboration.

[0176] It should also be noted that, in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.

[0177] The above description of the disclosed embodiments enables those skilled in the art to make or use the invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the invention. Therefore, the invention is not to be limited to the embodiments shown herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims

1. A data transmission method, characterized in that, include: Obtain the target micro-piece corresponding to the data to be transmitted; Obtain the status information of each slot in the on-chip network; Based on the status information of the slot, the target micro-chip is stored in the vacant target slot; Update the status information of the slot; Generate a target virtual channel based on the target slot; Update the status information of the virtual channel; The process of storing the target micro-chip into an empty target slot based on the slot status information includes: The slot number in the table can be used to determine the slot location; Determine the slot pointers in the available slot table; In the slot availability table, based on the slot status information, the slot pointer is controlled to point to the slot with the lowest number and which is free; Store one of the target micro-chips into the target slot pointed to by the slot pointer; The slot with a number greater than the minimum number and that is empty is selected as the first candidate slot; Check whether the occupied slots have been released; In response to the release of an occupied slot, the released occupied slot is designated as the second candidate slot; among the first and second candidate slots, the slot with the smallest number is designated as the slot to be pointed to. If an occupied slot is not released, the first candidate slot is set as the slot to be pointed to. Control the slot pointer to point to the desired slot; Return to the step of storing one of the target micro-chips into the target slot pointed to by the slot pointer; The generation of target virtual channels based on target slots includes: Obtain the available virtual channel table for the on-chip network; Determine the virtual channel pointers in the available virtual channel table, where each virtual channel pointer points to the virtual channel with the lowest index that is not currently occupied. Change the status of the virtual channel pointed to by the virtual channel pointer to "occupied"; The virtual channel pointed to by the virtual channel pointer is taken as the target virtual channel; The virtual channel whose label is greater than that of the target virtual channel and is idle is selected as the first candidate virtual channel; Check whether the occupied virtual channels have been released; In response to the release of an occupied virtual channel, the released occupied virtual channel is designated as the second candidate virtual channel; among the first candidate virtual channel and the second candidate virtual channel, the virtual channel with the smallest label is designated as the virtual channel to be pointed to. If an occupied virtual channel is not released, the first candidate virtual channel will be used as the virtual channel to be pointed to. Control the virtual channel pointer to point to the virtual channel to be pointed to.

2. The data transmission method according to claim 1, characterized in that, Obtain the status information of each slot in the on-chip network, including: Obtain the available slot table for on-chip network; The slots can be parsed using a table; In response to the first set value being the status value of a slot in the available slot table, status information indicating that the slot is occupied is obtained; In response to the second set value being the status value of a slot in the available slot table, status information indicating that the slot is idle is obtained; The first setting value is different from the second setting value.

3. The data transmission method according to claim 1, characterized in that, After controlling the slot pointer to point to the desired slot, before returning to the step of storing one of the target micro-chips into the target slot pointed to by the slot pointer, the method further includes: Detect whether all micro-chips in the target micro-chip are stored in the empty slots; In response to the presence of microchips in the target microchip that are not stored in an empty slot, the presence of an empty slot is detected. If a free slot exists, the process returns to the step of storing one of the target chips into the target slot pointed to by the slot pointer. If no free slot is available, wait for a set time and then return to the step of storing one of the target microchips into the target slot pointed to by the slot pointer.

4. The data transmission method according to claim 2, characterized in that, Update the status information of the slot, including: In the slot availability table, the status value of the target slot is changed from the second setting value to the first setting value; Check if any occupied slots have been released; In response to the existence of a released occupied slot, the status value of the released occupied slot is changed from the first setting value to the second setting value.

5. The data transmission method according to claim 1, characterized in that, Update the virtual channel status information, including: Obtain the virtual channel allocation table of the on-chip network, which is used to record the usage information of virtual channels; In the virtual channel allocation table, the slot information corresponding to the target virtual channel is updated based on the target slot. In the virtual channel allocation table, the total number of virtual channels is the same as the total number of slots, and each virtual channel corresponds to all slots.

6. The data transmission method according to claim 5, characterized in that, In the virtual channel allocation table, updating the slot information corresponding to the target virtual channel based on the target slot includes: The target slots are sorted according to the sequential storage order of the micro-chips in the target micro-chip to obtain the slot sorting result; In the virtual channel allocation table, the information of the target slot is recorded into the slot information corresponding to the target virtual channel according to the slot sorting result.

7. The data transmission method according to claim 1, characterized in that, Checking whether occupied virtual channels have been released includes: In the virtual channel allocation table, for each occupied virtual channel, the write pointer and read pointer of the occupied virtual channel are determined; Detect whether the slot pointed to by the write pointer and the slot pointed to by the read pointer are the same; If the slot pointed to by the write pointer and the slot pointed to by the read pointer are the same, it is determined that the occupied virtual channel is released. If the slot pointed to by the write pointer and the slot pointed to by the read pointer are inconsistent, it is determined that the occupied virtual channel has not been released.

8. The data transmission method according to claim 1, characterized in that, Obtain the target micro-piece corresponding to the data to be transmitted, including: Get the data to be transmitted; Determine the capacity of the slots in the on-chip network; The data to be transmitted is segmented according to the stated capacity to obtain target micro-pieces.

9. The data transmission method according to claim 8, characterized in that, After storing the target micro-chip in an empty target slot based on the slot status information, the process further includes: Arbitrate the slots of the storage chips in the on-chip network to obtain the slots to be read; The microchips in the slot to be read are combined to obtain combined microchips; The combined microchips are transmitted.

10. A computer program product comprising a computer program / instructions, characterized in that, When the computer program / instructions are executed by the processor, they implement the steps of the data transmission method as described in any one of claims 1 to 9.

11. An electronic device, characterized in that, include: Memory, used to store computer programs; A processor, configured to implement the steps of the data transmission method as described in any one of claims 1 to 9 when executing the computer program.

12. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the steps of the data transmission method as described in any one of claims 1 to 9.