Data transmission method, computer program product, equipment and computer medium

By acquiring the on-chip network slot status information, slot storage chips can be flexibly allocated and virtual channels can be generated, solving the problem of limited transmission capacity caused by the fixed buffer size of virtual channels, and improving the data transmission efficiency and resource utilization of the on-chip network.

CN120892384AActive Publication Date: 2025-11-04SHANDONG YUNHAI GUOCHUANG CLOUD COMPUTING EQUIP IND INNOVATION CENT CO LTD

Patent Information

Application Number
CN202511416477.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-09-30
Publication Date
2025-11-04
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, making it unable to effectively adapt to the needs of high and low traffic networks, and resulting in serious waste of slot resources.

Method used

By acquiring the status information of each slot in the on-chip network, slots can be flexibly allocated to store microchips, and virtual channels can be generated in real time, avoiding the limitations of fixed virtual channels and improving slot utilization and virtual channel adaptability.

Benefits of technology

This approach improves the data transmission capability of the on-chip network while ensuring the virtual channel function, adapts to high and low traffic networks, reduces slot waste, and improves network transmission efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120892384A_ABST
    Figure CN120892384A_ABST
Patent Text Reader

Abstract

The invention discloses a data transmission method, a computer program product, equipment and a computer medium, and relates to the technical field of network-on-chip, and the method comprises the steps: obtaining a target microchip corresponding to data to be transmitted; acquiring state information of each slot in the network-on-chip; according to the state information of the slot position, storing the target microchip into an idle target slot position; updating the state information of the slot position; generating a target virtual channel based on the target slot position; and updating the state information of the virtual channel. According to the invention, the virtual channel corresponding to the occupied target slot position is generated according to the target microchip, the adaptability between the virtual channel and the target microchip is improved under the condition of ensuring the function of the virtual channel, and the application of the slot position to store the microchip according to the preset virtual channel is not needed, so that the corresponding relationship between the virtual channel and the slot position is more flexible and changeable, and the user experience is improved. Therefore, the network-on-chip can store the microchip more flexibly by means of the virtual channel, the slot waste of the network-on-chip can be avoided, and the data transmission capability 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 physical channel of the port 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 pieces) 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 piece of data A, the VC cannot be released until the tail micro piece 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: obtaining a target micro piece corresponding to the data to be transmitted; obtaining state information of each slot in the network on chip; storing the target flit into 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; updating the state information of the virtual channel.

[0007] In another aspect, obtaining the state information of each slot in the network-on-chip includes: obtaining a slot available table of the network-on-chip; parsing the slot available table; 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; 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 idle; wherein the first set value and the second set value are different.

[0008] In another aspect, storing the target flit into a target slot according to the state information of the slot includes: determining a label of a slot in the slot available table; determining a slot pointer of the slot available table; in the slot available table, controlling the slot pointer to point to a slot with the smallest label and being idle according to the state information of the slot; storing one flit in the target flit into a target slot pointed to by the slot pointer; updating the slot pointer; returning to the step of storing one flit in the target flit into a target slot pointed to by the slot pointer.

[0009] In another aspect, updating the slot pointer includes: taking a slot with a label larger than the smallest label and being idle as a first candidate slot; detecting whether an occupied slot is released; in response to the occupied slot being released, taking the released occupied slot as a second candidate slot; among the first candidate slot and the second candidate slot, taking a slot with the smallest label as a to-be-pointed slot; in response to the occupied slot not being released, taking the first candidate slot as the to-be-pointed slot; controlling the slot pointer to point to the to-be-pointed slot.

[0010] In another aspect, after updating the slot pointer, before returning to the step of storing one flit in the target flit into a target slot pointed to by the slot pointer, the method further includes: detecting whether a flit in the target flit is stored in an idle slot; in response to the presence of a flit in the target flit that is not stored in an idle slot, detecting whether an idle slot exists; in response to the presence of an idle slot, returning to perform the step of storing a flit in the target flit in a target slot pointed to by the slot pointer; in response to the absence of an idle slot, waiting for a set time period and then returning to perform the step of storing a flit in the target flit in a target slot pointed to by the slot pointer.

[0011] On the other hand, updating the state information of the slot includes: in the slot available table, changing the state value of the target slot from the second set value to the first set value; detecting whether there is a released occupied slot; in response to the presence of a released occupied slot, changing the state value of the released occupied slot from the first set value to the second set value.

[0012] On the other hand, generating a target virtual channel based on a target slot includes: obtaining a virtual channel available table of the network on a chip; 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; changing the state of the virtual channel pointed to by the virtual channel pointer to occupied; taking the virtual channel pointed to by the virtual channel pointer as a target virtual channel; updating the virtual channel pointer.

[0013] On the other hand, updating the state information of the virtual channel includes: obtaining a virtual channel allocation table of the network on a chip, the virtual channel allocation table being used to record the use information of the virtual channel; in the virtual channel allocation table, updating the slot information corresponding to the target virtual channel 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.

[0014] On the other hand, in the virtual channel allocation table, updating the slot information corresponding to the target virtual channel based on the target slot includes: sorting the target slot according to the storage order of the flits in the target flit to obtain a slot sorting result; in the virtual channel allocation table, recording the information of the target slot in the slot information corresponding to the target virtual channel according to the slot sorting result.

[0015] In another aspect, the virtual channel pointer is updated, comprising: taking a virtual channel with a label greater than the label of the target virtual channel and being idle as a first candidate virtual channel; detecting whether the occupied virtual channel is released; in response to the occupied virtual channel being released, taking the released occupied virtual channel as a second candidate virtual channel; among the first candidate virtual channel and the second candidate virtual channel, taking the virtual channel with the smallest label as the virtual channel to be pointed to; in response to the occupied virtual channel not being released, taking the first candidate virtual channel as the virtual channel to be pointed to; controlling the virtual channel pointer to point to the virtual channel to be pointed to.

[0016] In another aspect, detecting whether the occupied virtual channel is released, comprising: in the virtual channel allocation table, for each occupied virtual channel, determining a write pointer and a read pointer of the occupied virtual channel; detecting whether the slot pointed to by the write pointer and the slot pointed to by the read pointer are consistent; in response to the slot pointed to by the write pointer and the slot pointed to by the read pointer being consistent, determining that the occupied virtual channel is released; in response to the slot pointed to by the write pointer and the slot pointed to by the read pointer not being consistent, determining that the occupied virtual channel is not released.

[0017] In another aspect, the target flit corresponding to the data to be transmitted is obtained, comprising: obtaining data to be transmitted; determining the capacity of a slot in the network on a chip; dividing the data to be transmitted according to the capacity to obtain a target flit.

[0018] In another aspect, according to the state information of the slot, after storing the target flit in the idle target slot, further comprising: arbitrating the slots storing flits in the network on a chip to obtain a slot to be read; combining the flits in the slot to be read to obtain a combined flit; transmitting the combined flit.

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

[0020] In a third aspect, an electronic device is provided, comprising: a memory configured to store computer programs; a processor for implementing the steps of the data transmission method according to any one of the preceding data transmission methods when the computer program is executed.

[0021] In a fourth aspect, a computer-readable storage medium is provided, and the computer-readable storage medium stores a computer program. When the computer program is executed by a processor, the steps of the data transmission method according to any one of the preceding data transmission methods are implemented.

[0022] The data transmission method provided by the application comprises the following steps: obtaining a target flit corresponding to to-be-transmitted data; obtaining state information of each slot in a network-on-chip; storing the target flit into a target slot according to the state information of the slots; updating the state information of the slots; generating a target virtual channel based on the target slot; and updating 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 a target slot according to the state information of each slot in the network-on-chip. In this way, as long as there is a free slot, the target flit can be stored into the network-on-chip, and then 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 the granularity and generation of corresponding virtual channels. Compared with the prior art of storage of flits with virtual channels as the granularity, in the case of guaranteeing the function of the virtual channel, a virtual channel corresponding to the target slot occupied by the target flit can be generated according to the target flit, the adaptability between the virtual channel and the target flit is improved, and the application of the slot for storage of the flit according to a preset virtual channel is not needed, so that the corresponding relationship between the virtual channel and the slot is more flexible and changeable, thereby making the network-on-chip store flits more flexibly with the aid of the virtual channel, avoiding waste of slots of the network-on-chip, and improving the data transmission capability of the network-on-chip. The computer program product, the electronic device, and the computer-readable storage medium provided by the application also solve the corresponding technical problems. BRIEF DESCRIPTION OF DRAWINGS

[0023] In order to more clearly illustrate the technical solutions in the embodiments of the application or the prior art, the following will briefly introduce the drawings needed in the embodiments or the prior art description. Obviously, the drawings in the following description are only the embodiments of the application, and for those skilled in the art, other drawings can also be obtained without creative labor on the basis of the provided drawings.

[0024] Figure 1 A flowchart of a data transmission method provided by the application for an embodiment of the application; Figure 2 A schematic diagram of a cache space using a parallel FIFO structure; Figure 3 A structural schematic diagram of all slots as a unified cache pool; Figure 4 A flowchart of data transmission with the aid of a slot available table; Figure 5 Flowchart for data transmission by means of a virtual channel available table; Figure 6 Flowchart for data transmission with slot granularity; Figure 7 Schematic diagram of two-stage separated virtual channel allocation; Figure 8 Schematic diagram of a routing node based on a network on chip; Figure 9 Schematic diagram of an electronic device provided by an embodiment of the present application; Figure 10 Another schematic diagram of an electronic device provided by an embodiment of the present application. DETAILED DESCRIPTION

[0025] 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.

[0026] 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 increase, and limited scalability of interconnection units. Network on Chip (NoC) technology introduces packet switching and distributed routing mechanisms to replace global physical wiring, effectively improving 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.

[0027] 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), each FIFO has k slots, and 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.

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

[0029] The data transmission method provided by the embodiment of the present application can include the following steps: Step S101: Obtain the target micro slice corresponding to the to-be-transmitted data.

[0030] In actual application, the application scenario of the network on chip can be flexibly determined as needed, 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.

[0031] 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 a data packet transmitted between functional modules 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.

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

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

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

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

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

[0037] 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.

[0038] 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 Figure 3 The read-write pointer logic in Figure 3 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.

[0039] 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 into 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 into the target slot according to the state information of each slot in the network on a chip. As such, as long as there is a free slot, the target flit can be stored into 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 existing storage of flits with virtual channels as granularity, in the case of ensuring the function of the virtual channel, a virtual channel corresponding to the target slot occupied by the target flit can be generated according to the target flit, which improves the adaptability between the virtual channel and the target flit, and the application of the slot for storage of flits does not need to be based on a preset virtual channel, so that the correspondence between the virtual channel and the slot is more flexible, thereby making the network on a chip more flexible in storage of flits with the aid of the virtual channel, avoiding waste of slots of 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.

[0040] 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: Step S401: obtaining a target flit corresponding to to-be-transmitted data.

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

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

[0043] 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.

[0044] 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.

[0045] 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. Table 1: Slot available table of network-on-chip

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

[0047] 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 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.

[0048] 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.

[0049] 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 reference. 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.

[0050] 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.

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

[0052] 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.

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

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

[0055] 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.

[0056] 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: Step S501: obtaining a target flit corresponding to the data to be transmitted.

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

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

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

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

[0061] 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.

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

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

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

[0065] 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. At the same time, this VC ID is sequentially maintained in 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.

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

[0067] 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 the 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, and 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. 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. 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. Table 2 VC allocation table

[0068] It should be noted that the VC of the present application can adapt to variable packet length (1~nk), therefore one VC ID line is designed as nk Slot IDs, and the Slot IDs can be discontinuous. The VC allocation table uses the mark "0" to indicate that the subsequent Flit has not flowed in or the tail Flit has arrived. "0" is also used to indicate that the cache space under the original Slot ID has been released, for example, the head Flit stored in Slot 9 of VC 3 has left the node, when all Slot IDs under the VC ID are marked as "0", the VC ID will be released as a whole and can be allocated to a new packet.

[0069] In the example embodiment, in 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 slot can be sorted according to the storage order of the microflits in the target microflit to obtain a slot sorting result; and 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.

[0070] In a specific application scenario, in the process of updating the virtual channel pointer, a virtual channel with a label greater than the label of the target virtual channel and being idle can be taken as a first candidate virtual channel; it is detected whether the occupied virtual channel is released; 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; in response to the occupied virtual channel not being released, the first candidate virtual channel is taken as the to-be-pointed virtual channel; and the virtual channel pointer is controlled to point to the to-be-pointed virtual channel. In this way, the present application can first take the virtual channel with a label greater than the smallest label and being idle as the first candidate virtual channel, that is, the virtual channel with the smallest label in the known idle state can be first taken as the first candidate virtual channel, and then considering the release of the occupied virtual channel, the released occupied virtual channel is taken as the second candidate virtual channel, and the virtual channel with the smallest label among the first candidate virtual channel and the second candidate virtual channel is taken as the to-be-pointed virtual channel, and then the virtual channel pointer can be controlled to point to the idle virtual channel with the smallest label, and if the cycle is repeated, the virtual channel pointer always points to the idle virtual channel with the smallest label in the virtual channel available table, which facilitates the concentrated application of the virtual channel to transmit the microflit and improves the manageability of the virtual channel, and then improves the transmission order of the network-on-chip.

[0071] In a specific application scenario, the microflit in the slot has two processes of writing and reading, which can be marked by corresponding pointers, such as in the process of writing the microflit into the slot, the pointer of the slot is marked as "1", and in the process of reading the microflit from the slot, the pointer of the slot is marked as "0". Figure 2In the embodiment, the state of the Slot ID is followed by the read-write pointer, the read pointer points to the first non-0 Slot ID from the left in the VC, and the write pointer points to the free Slot ID to be sequentially written, and accordingly, whether the occupied virtual channel is released can be detected according to the write pointer and the read pointer, that is, for each occupied virtual channel in the virtual channel allocation table, the write pointer and the read pointer of the occupied virtual channel are determined, whether the slot pointed to by the write pointer is consistent with the slot pointed to by the read pointer is detected, in response to the slot pointed to by the write pointer being consistent with the slot pointed to by the read pointer, it is determined that the occupied virtual channel is released, and in response to the slot pointed to by the write pointer being inconsistent with the slot pointed to by the read pointer, it is determined that the occupied virtual channel is not released.

[0072] According to the implementation process, in the process of generating a target virtual channel based on a target slot, the virtual channel available table of the network on a chip is acquired, the virtual channel pointer of the virtual channel available table is determined, the virtual channel pointer points to the virtual channel with the smallest label and not occupied, 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 taken as the target virtual channel, and the virtual channel pointer is updated. That is, the virtual channel available table is arranged to record the virtual channels that are enabled or free, and by reading the virtual channel pointer in the virtual channel available table, the free virtual channel can be accurately and quickly screened, the efficiency of generating the target virtual channel based on the target slot is improved, and the corresponding management of the virtual channel and the slot is facilitated.

[0073] Based on the above embodiment, considering the existence of the virtual channel, in the process of storing the flit into the slot or taking the flit out of the slot, the flit is taken as the granularity, however, the virtual channel in the embodiment is variable, and it is not suitable to continue to take the flit as the granularity to correspond the flit and the slot, in order to solve the problem, please refer to Figure 6 The data transmission method provided by the embodiment of the application can include the following steps: Step S601: acquiring the data to be transmitted.

[0074] Step S602: determining the capacity of the slot in the network on a chip.

[0075] Step S603: dividing the data to be transmitted according to the capacity to obtain a target flit.

[0076] 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.

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

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

[0079] 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.

[0080] 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.

[0081] Correspondingly, in the process of forwarding the microchip from the slot to another slot, a two-stage separated distribution structure can also be used, the first stage distribution reads the Flit from the cache, and the second stage distribution operates the slot for interconnection. In the first stage distribution, each input port needs an arbitrator of nk: 1 to select one from nk slots. At this time, the first stage needs a total of m arbitrators of nk: 1. In the second stage distribution, each output port needs to select one from a maximum of m input ports for interconnection with itself, so an arbitrator of m: 1 is needed. At this time, the second stage needs a total of m arbitrators of m: 1.

[0082] Step S606: updating the state information of the slot.

[0083] Step S607: generating a target virtual channel based on the target slot.

[0084] Step S607: updating the state information of the virtual channel.

[0085] In order to facilitate understanding of the data transmission scheme provided by the present application, it is assumed that the routing node structure based on the on-chip network is as shown in Figure 8 The structure includes five input / output channels of East (E), South (S), West (W), North (N) and Local (L), which are bidirectionally interconnected with four adjacent nodes and the local PE (Processing Element), each channel contains an input module, an output module, a routing calculation module, a virtual channel allocation (VA) module and a switch allocation (SA) module. Each port is interconnected through a unique crossbar switch of the node, and in order to reduce the cache area and power consumption overhead, the output port VC usually directly uses the equivalent replacement of the input port VC of the next hop node.

[0086] The structure of the virtual channel cache is as shown in Figure 3As shown, two-level multiplexer structure is used in read-write pointer control, each two-level DEMUX (demultiplexer) and MUX (multiplexer) control k Slot read-write arbitration. When a new Flit arrives, the write control logic identifies its belonging VC ID, and applies 1 Slot ID, and then adds to the position pointed by VC allocation table write pointer. At the same time, the write logic controls two-level DEMUX to store the Flit into the specified Slot address. When the SA module operates to read Flit from the specified VC ID, the read logic locates to the Slot ID pointed by the read pointer, and controls two-level MUX to read the Flit from the specified Slot address, and then the read pointer automatically points to the next Slot ID. When the read pointer points to the same as the write pointer, it means that the Slot space under the VC ID is emptied, and the VC ID is released, and can be arbitrated for other Flit use.

[0087] According to the scheme of the present application, Figure 7 The process of message transmission performed by the routing node is as follows: The virtual channel allocation module receives a to-be-transmitted instruction from five channels; determines the capacity of a slot in the network on a chip; and splits the to-be-transmitted instruction according to the capacity to obtain a target flit. When a Flit enters a local node input port buffer for the first time, before being transmitted to a next hop node according to a routing algorithm, an output port VC ID needs to be allocated by a virtual channel allocation module, and the VA needs to be matched between multiple input VCs that send a request to the VA and multiple available output VCs. The virtual channel allocation module obtains a slot available table of the network on a chip, determines the label of a slot in the slot available table, determines a slot pointer of the slot available table, controls the slot pointer to point to a slot with the smallest label and being idle in the slot available table according to state information of the slot, stores a flit in the target flit into a target slot pointed to by the slot pointer by means of a routing calculation module, updates the slot pointer, and returns to execute the step of storing the flit in the target flit into the target slot pointed to by the slot pointer. The virtual channel allocation module changes the state value of the target slot from the second set value to the first set value in the slot available table, detects whether there is a released occupied slot, and changes the state value of the released occupied slot from the first set value to the second set value in response to the existence of the released occupied slot. The virtual channel allocation module obtains a virtual channel available table of the network on a chip, determines a virtual channel pointer of the virtual channel available table, the virtual channel pointer points to a virtual channel with the smallest label and being unoccupied, changes the state of the virtual channel pointed to by the virtual channel pointer to occupied, takes the virtual channel pointed to by the virtual channel pointer as a target virtual channel, and updates the virtual channel pointer. The virtual channel allocation module obtains a virtual channel allocation table of the on-chip network, the virtual channel allocation table being used to record usage information of virtual channels; in the virtual channel allocation table, 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; The routing calculation module determines a next hop node VC ID of the Flit; The SA module arbitrates one way from the nk input port slot channels to the input end of the crossbar. Secondly, the SA module controls the interconnection of the 5 input ports and the 5 output ports, and when the crossbar allocation is completed, the Flit is transmitted to the next hop node through the crossbar transmission and the network link transmission.

[0088] The present application also provides an electronic device and a computer readable storage medium, both of which have the corresponding effects of the data transmission method provided by the embodiments of the present application. Please refer to Figure 9 , Figure 9 The structure schematic diagram of the electronic device provided by the embodiments of the present application.

[0089] The electronic device provided by the embodiments of the present application comprises a memory 201 and a processor 202, the memory 201 stores a computer program, and the processor 202 implements the steps of the data transmission method described in any one of the above embodiments when executing the computer program.

[0090] Please refer to Figure 10 The other electronic device provided by the embodiments of the present application can further comprise: an input port 203 connected with the processor 202, used for transmitting the command input by the outside to the processor 202; a display unit 204 connected with the processor 202, used for displaying the processing result of the processor 202 to the outside; and a communication module 205 connected with the processor 202, used for realizing the communication between the electronic device and the outside. The display unit 204 can be a display panel, a laser scanning display, etc.; the communication mode adopted by the communication module 205 includes but is not limited to the mobile high-definition link technology (MHL), the universal serial bus (USB), the high-definition multimedia interface (HDMI), the wireless connection: wireless fidelity technology (WiFi), the Bluetooth communication technology, the low-power Bluetooth communication technology, and the communication technology based on IEEE 802.11s.

[0091] The embodiment of the present application provides a computer readable storage medium, and the computer readable storage medium stores a computer program. The computer program is executed by a processor to realize the steps of the data transmission method described in any one of the above embodiments.

[0092] The computer readable storage medium of the present application includes a random access memory (RAM), a memory, a read-only memory (ROM), an electrically programmable ROM, an electrically erasable programmable ROM, a register, a hard disk, a removable disk, a compact disc read-only memory (CD-ROM), or any other form of storage medium known in the technical field.

[0093] The embodiment of the present application provides a computer program product, which includes computer program / instruction. The computer program / instruction is executed by a processor to realize the steps of the data transmission method described in any one of the above embodiments.

[0094] The computer program product, the electronic device and the related part of the computer readable storage medium provided by the embodiment of the present application are described in detail in the detailed description of the corresponding part of the data transmission method provided by the embodiment of the present application, and will not be described here. In addition, the part of the above technical solution provided by the embodiment of the present application which is consistent with the implementation principle of the corresponding technical solution in the prior art is not described in detail, so as to avoid too much redundancy.

[0095] It should be further noted that, in this paper, the relationship terms such as first and second are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply that there is any such actual relationship or order between the entities or operations. Moreover, the terms "include", "contain" or any other variants thereof are intended to cover non-exclusive inclusion, so that the process, method, article or equipment including a series of elements not only includes those elements, but also includes other elements not explicitly listed or inherent to such process, method, article or equipment. Without more limitations, the element defined by the statement "including a" does not exclude the presence of other identical elements in the process, method, article or equipment including the element.

[0096] The foregoing description of the disclosed embodiments enables a person skilled in the art to make or use the application. Modifications of these embodiments will occur to those skilled in the art and are within the scope of the following claims, defined solely by the words of the claims themselves, in which the patent is sought. Therefore, the application is not limited to the described embodiments and instead is intended to cover any and all modifications within the scope of the following claims.

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.

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 the 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 2, characterized in that, Based on the slot status information, the target micro-chip is stored in an empty target slot, including: The slot number in the table can be used to determine the slot position; 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; Update the slot pointer; 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 3, characterized in that, Updating the slot pointer includes: 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 slot to be pointed to.

5. The data transmission method according to claim 3, characterized in that, After updating the slot pointer, before returning to the step of storing one of the target microchips 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.

6. 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.

7. The data transmission method according to claim 1, characterized in that, Generate a target virtual channel based on the target slot, including: 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; Update the virtual channel pointer.

8. The data transmission method according to claim 7, 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.

9. The data transmission method according to claim 8, 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.

10. The data transmission method according to claim 8, characterized in that, Updating the virtual channel pointer includes: 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.

11. The data transmission method according to claim 10, 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.

12. 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.

13. The data transmission method according to claim 12, 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.

14. A computer program product comprising a computer program / instructions, characterized in that, When the computer program / instruction is executed by the processor, it implements the steps of the data transmission method as described in any one of claims 1 to 13.

15. 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 13 when executing the computer program.

16. 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 13.

Citation Information

Patent Citations

  • Router device suitable for globally asynchronous locally synchronous on-chip network

    CN102629913A

  • Adaptive router in NoC (network-on-chip) on basis of virtual output queue mechanism

    CN105871742A

  • Network-on-chip communication method and network-on-chip router

    CN106453109A

  • Network-on-chip routing control method, network-on-chip router and readable storage medium

    CN112152932A

  • Packets transfer device having data absorbing buffers with elastic buffer capacities

    US20070260782A1

Cited By

  • Artificial intelligence chip and operation method thereof

    CN121681457A