Data processing method and device, electronic equipment, storage medium and program product

By canceling the credit counter of the input queue in the cross switch and setting the credit counter in the output queue, the packet transmission blocking problem caused by insufficient credit points in the input queue is solved, and the system's throughput and resource utilization efficiency is improved.

CN120416192APending Publication Date: 2025-08-01SHANDONG YUNHAI GUOCHUANG CLOUD COMPUTING EQUIP IND INNOVATION CENT CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510411620.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-04-02
Publication Date
2025-08-01

AI Technical Summary

Technical Problem

In the existing cross-switch technology, the data packets at the front end of the input queue lack credit points, which can't be sent, affecting the overall throughput and response speed of the system.

Method used

In the case where the input queue does not set a credit counter, the packet can be sent only when the output queue is not full, and a credit counter is set at the output queue to control the packet transmission, without waiting for a credit check when passing through the cross matrix.

Benefits of technology

It improves the efficiency of the use of the cross matrix, avoids the input queue from hindering subsequent packet transmission due to the lack of credit points, reduces the risk of long-term idleness and congestion on the input side, and effectively utilizes system resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120416192A_ABST
    Figure CN120416192A_ABST
Patent Text Reader

Abstract

The invention provides a data processing method and device, electronic equipment, a storage medium and a program product, and the method comprises the steps: responding to an input queue which meets a first condition, and transmitting a first data packet to the input queue; in response to the condition that the first data packet meets the second condition, determining whether an output queue corresponding to the first data packet meets a first condition or not; in response to the output queue satisfying the first condition, sending the first data packet to the output queue based on the cross matrix; and sending the first data packet to a corresponding slave if the first data packet meets a second condition and the credit point of the output queue is not the preset threshold. Thus, the data packet can wait in the output queue, transmission of other data packets is not blocked, the phenomenon that the input end is idle for a long time is avoided, system resources are effectively utilized, and the congestion risk of the input queue is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of computer technology, and in particular, to a data processing method, apparatus, electronic device, storage medium, and program product. Background Art

[0002] In modern digital systems, crossbar technology is widely used in multiple fields. For example, in high-performance computer networks, crossbars are used to achieve high-speed data exchange between nodes; in data center switches, it is used to manage data transmission between a large number of servers; in network-on-chip, crossbars are used to handle packet movement between different processing units inside multi-core processors. In addition, in communication systems, crossbars are also used to efficiently route data packets.

[0003] The crossbar is flow-controlled by a credit mechanism. When the data packet at the front end of the input queue lacks credit points, it cannot be sent, which will hinder the normal sending of data packets at the back end of the input queue and affect the overall throughput and response speed of the system. Summary of the Invention

[0004] The present disclosure provides a data processing method, apparatus, electronic device, storage medium, and program product to at least solve the above technical problems existing in the prior art.

[0005] According to a first aspect of the present disclosure, a data processing method is provided, the method including:

[0006] Determine whether an input queue corresponding to a first data packet satisfies a first condition;

[0007] In response to the input queue satisfying the first condition, send the first data packet to the input queue;

[0008] Determine whether the first data packet satisfies a second condition;

[0009] In response to the first data packet satisfying the second condition, confirm whether an output queue corresponding to the first data packet satisfies the first condition;

[0010] In response to the output queue corresponding to the first data packet satisfying the first condition, send the first data packet to the output queue based on a crossbar matrix;

[0011] In response to the first data packet satisfying the second condition, confirm whether the credit points of the output queue are a preset threshold based on a credit counter;

[0012] In response to the credit points of the output queue not being the preset threshold, send the first data packet to a corresponding slave device.

[0013] In the above solution, the credit counter is set between the output port and the slave device, and is used to record the credit points of at least one output queue corresponding to the output port;

[0014] If the credit points of the output queue reach the preset threshold, no data packet can be transmitted to the corresponding slave device;

[0015] If the credit points of the output queue do not reach the preset threshold, data packets are transmitted to the corresponding slave device until the credit points of the output queue reach the preset threshold

[0016] In the above solution, the output queue is a first-in-first-out queue and is used to cache data packets transmitted from the crossbar.

[0017] In the above solution, no credit counter is set between the input queue and the crossbar.

[0018] In the above solution, the method further includes:

[0019] In response to the input queue not satisfying the first condition, repeatedly determine whether the input queue corresponding to the first data packet satisfies the first condition;

[0020] Until in response to the input queue satisfying the first condition, send the first data packet to the input queue.

[0021] In the above solution, the method further includes:

[0022] In response to the first data packet not satisfying the second condition, repeatedly determine whether the first data packet satisfies the second condition;

[0023] Until in response to the first data packet satisfying the second condition, confirm whether the output queue corresponding to the first data packet satisfies the first condition.

[0024] In the above solution, the method further includes:

[0025] In response to the output queue corresponding to the first data packet satisfying the first condition, wait for the output queue to send a first handshake signal;

[0026] In response to receiving the first handshake signal sent by the output queue, send the first data packet to the output queue based on the crossbar.

[0027] In the above solution, the first condition includes that the queue is not full. Determining whether the input queue corresponding to the first data packet satisfies the first condition includes:

[0028] Determine whether the input queue of the host corresponding to the first data packet to be sent is not full;

[0029] Among them, the input queue satisfying the first condition includes that the input queue can receive the first data packet; the input queue not satisfying the first condition includes that the input queue is full and cannot receive the first data packet.

[0030] In the above solution, the input queue is a first-in-first-out queue, and the second condition includes that the first data packet is the first data packet in the input queue.

[0031] In the above solution, before confirming whether the credit point of the output queue is a preset threshold based on the credit counter in response to the first data packet satisfying the second condition, the method further includes:

[0032] Confirming whether to receive the second handshake signal returned after the successful transmission of the second data packet in the output queue;

[0033] In response to receiving the second handshake signal, confirming whether the credit point of the output queue is a preset threshold based on the credit counter.

[0034] In the above solution, the method further includes:

[0035] In response to confirming that the credit point of the output queue is a preset threshold based on the credit counter, waiting for the credit counter of the output queue to recover until the credit point of the output queue is not a preset threshold.

[0036] In the above solution, after sending the first data packet to the corresponding slave device, the method further includes:

[0037] Updating the credit counter of the output queue.

[0038] According to the second aspect of the present disclosure, there is provided a data processing device, the device includes:

[0039] An input queue determination unit, configured to determine whether the input queue corresponding to the first data packet satisfies the first condition;

[0040] A first sending unit, configured to send the first data packet to the input queue in response to the input queue satisfying the first condition;

[0041] A first position determination unit, configured to determine whether the first data packet satisfies the second condition;

[0042] An output queue determination unit, configured to confirm whether the output queue corresponding to the first data packet satisfies the first condition in response to the first data packet satisfying the second condition;

[0043] A second sending unit, configured to send the first data packet to the output queue based on the cross matrix in response to the output queue corresponding to the first data packet satisfying the first condition;

[0044] An arbitration unit, configured to, in response to the first data packet satisfying a second condition, confirm whether the credit points of the output queue are a preset threshold based on a credit counter;

[0045] A third sending unit, configured to, in response to the credit points of the output queue not being the preset threshold, send the first data packet to a corresponding slave based on the arbiter.

[0046] According to a third aspect of the present disclosure, there is provided an electronic device, including:

[0047] At least one processor; and a memory communicatively connected to the at least one processor; wherein, the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to execute the method described in the present disclosure.

[0048] According to a fourth aspect of the present disclosure, there is provided a non-transitory computer-readable storage medium storing computer instructions, and the computer instructions are used to cause the computer to execute the method described in the present disclosure.

[0049] According to a fifth aspect of the present disclosure, there is provided a computer program product, including a computer program, and the computer program implements the method described in the present disclosure when executed by a processor.

[0050] In the data processing method of the present disclosure, by determining whether an input queue corresponding to a first data packet satisfies a first condition; in response to the input queue satisfying the first condition, sending the first data packet to the input queue; determining whether the first data packet satisfies a second condition; in response to the first data packet satisfying the second condition, confirming whether an output queue corresponding to the first data packet satisfies the first condition; in response to the output queue corresponding to the first data packet satisfying the first condition, sending the first data packet to the output queue based on a crossbar; in response to the first data packet satisfying the second condition, confirming whether the credit points of the output queue are a preset threshold based on a credit counter; in response to the credit points of the output queue not being the preset threshold, sending the first data packet to a corresponding slave. In this way, after the data packet enters the input queue, it can pass through the crossbar without waiting for credit checking, improving the utilization efficiency of the crossbar and avoiding the situation where the lack of credit points in the input queue hinders the sending of subsequent data packets; in addition, in the method of the present disclosure, the data packet can wait in the output queue, without blocking the transmission of other data packets, avoiding the phenomenon of long-term idleness at the input end, effectively utilizing system resources, and reducing the congestion risk of the input queue.

[0051] It should be understood that the content described in this section is not intended to identify the key or important features of the embodiments of the present disclosure, nor is it used to limit the scope of the present disclosure. Other features of the present disclosure will become readily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0052] By referring to the accompanying drawings and reading the following detailed description, the above and other objects, features, and advantages of the exemplary embodiments of the present disclosure will become readily understood. In the drawings, several embodiments of the present disclosure are shown in an exemplary rather than restrictive manner, where:

[0053] In the drawings, the same or corresponding reference numerals denote the same or corresponding parts.

[0054] Figure 1 A schematic diagram of a crossbar switch in the related art is shown;

[0055] Figure 2 A first alternative flowchart of the data processing method provided by an embodiment of the present disclosure is shown;

[0056] Figure 3 A second alternative flowchart of the data processing method provided by an embodiment of the present disclosure is shown;

[0057] Figure 4 A third alternative flowchart of the data processing method provided by an embodiment of the present disclosure is shown;

[0058] Figure 5 A third alternative flowchart of the data processing method provided by an embodiment of the present disclosure is shown;

[0059] Figure 6 A schematic diagram of a crossbar switch provided by an embodiment of the present disclosure is shown;

[0060] Figure 7 A schematic diagram of an alternative structure of the data processing device provided by an embodiment of the present disclosure is shown;

[0061] Figure 8 A schematic diagram of the composition structure of an electronic device according to an embodiment of the present disclosure is shown. DETAILED DESCRIPTION OF THE EMBODIMENTS

[0062] To make the objectives, features, and advantages of the present disclosure more obvious and understandable, the technical solutions in the embodiments of the present disclosure will be clearly and completely described below in conjunction with the accompanying drawings in the embodiments of the present disclosure. Obviously, the described embodiments are only a part of the embodiments of the present disclosure, rather than all the embodiments. Based on the embodiments in the present disclosure, all other embodiments obtained by those skilled in the art without creative efforts belong to the scope of protection of the present disclosure.

[0063] In the following description, reference is made to "some embodiments", which describe a subset of all possible embodiments. However, it is understood that "some embodiments" may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.

[0064] In the following description, the terms "first / second" are only used to distinguish similar objects and do not represent a specific order for the objects. It is understood that "first / second" can be interchanged with a specific order or sequence when permitted, so that the embodiments of the present disclosure described herein can be implemented in an order other than that illustrated or described herein.

[0065] Unless otherwise defined, all technical and scientific terms used in the present disclosure have the same meaning as commonly understood by those of ordinary skill in the technical field to which the present disclosure pertains. The terms used in the present disclosure are only for the purpose of describing the embodiments of the present disclosure and are not intended to limit the present disclosure.

[0066] It should be understood that in various embodiments of the present disclosure, the magnitude of the serial numbers of the respective implementation processes does not imply the order of execution, and the order of execution of each process should be determined by its function and internal logic, and should not constitute any limitation to the implementation process of the embodiments of the present disclosure.

[0067] Before further elaborating on the embodiments of the present disclosure, the nouns and terms involved in the embodiments of the present disclosure are described, and the nouns and terms involved in the embodiments of the present disclosure are subject to the following explanations.

[0068] 1) Crossbar switch technology.

[0069] A key technology used in digital circuits and communication systems to connect multiple input and output ports, aiming to achieve flexible and efficient data exchange and routing. The crossbar switch fundamentally avoids conflicts and bottlenecks caused by shared communication paths by providing direct connections between each input and each output. Specifically, the crossbar switch is typically implemented as a two-dimensional switch matrix (i.e., a cross matrix), where the rows of the matrix represent input ports and the columns represent output ports, and there is a switch that can be turned on or off at each intersection point. The data of the input port can be directly connected to any output port through these switches, realizing point-to-point connections. The core of this structure lies in its control logic, which is responsible for managing the states of all switches and dynamically adjusting the connection relationship between the input and the output as needed. This control can be based on preset routing rules or dynamically adjusted according to real-time communication requirements.

[0070] 2) Input port.

[0071] The input port is the entrance of the cross matrix and is responsible for receiving data packets from external devices (such as hosts, network nodes, or other switches).

[0072] 3) Output port.

[0073] The output port is the end point of data packet transmission and is responsible for sending data packets from the crossbar to external devices.

[0074] 4) Input queue.

[0075] The input queue is part of the input port and is used to temporarily store data packets received from the input port. Specifically, it includes buffering data packets until they are scheduled and transmitted to the output port. It supports flow control and scheduling algorithms (such as credit-based flow control, round-robin scheduling, etc.) to avoid data packet loss or blocking.

[0076] 5) Output queue.

[0077] The output queue is part of the output port and includes single-queue and multi-queue; it is used to cache and schedule data packets to ensure that they can be transmitted to external devices in sequence and efficiently.

[0078] Crossbar technology has many advantages in practical applications. First of all, it can provide very high bandwidth. Due to the direct connection between input and output, multiple data packets can be transmitted through the crossbar simultaneously without conflict, greatly improving the parallel processing ability of the system. Secondly, the crossbar can significantly reduce the latency of data transmission. In the traditional bus structure, data needs to pass through multiple intermediate nodes to reach the destination, which not only increases the transmission time but also raises the probability of errors. In the crossbar, the input data can directly reach the target output port, reducing intermediate links and thus reducing latency. In addition, the structure of the crossbar is very flexible, allowing the connection method between input and output to be dynamically changed during operation, which enables the system to flexibly adjust the data packet direction according to actual needs, especially suitable for complex systems that handle multiple different types of data packets. Finally, the crossbar has good scalability. When the system demand increases, the scale of the crossbar can be expanded by adding more input and output ports without having too much impact on the existing system architecture. This scalability makes the crossbar particularly suitable for application scenarios that require continuous expansion and upgrade.

[0079] In modern digital systems, crossbar technology is widely used in multiple fields. For example, in high-performance computer networks, crossbars are used to achieve high-speed data exchange between nodes; in data center switches, it is used to manage data transmission between a large number of servers; in on-chip networks, crossbars are used to handle data packet movement between different processing units inside multi-core processors. In addition, in communication systems, crossbars are also used to efficiently route data packets, thereby improving the overall throughput and response speed of the communication system.

[0080] Figure 1 The figure shows a schematic diagram of a crossbar switch in the related art.

[0081] As Figure 1 shown, modern crossbar switch (xbar) technology consists of three parts: an input queue, usually a First In First Out Queue (FIFO) queue, a crossbar matrix, and an arbiter. The input queue is used to temporarily store and sort the data of each input port to ensure the orderly transmission of data. The crossbar matrix is the core part of the system. Through the switches in the matrix, it realizes the direct connection between any input port and output port, thereby providing flexible and efficient data routing. The arbiter is responsible for resolving conflicts when multiple input ports simultaneously request the same output port, ensuring that the system still maintains good performance and low latency under high concurrency conditions. These three parts work together to achieve efficient data exchange in a complex system. The entire crossbar switch is flow-controlled by a credit mechanism.

[0082] Modern crossbar switches are flow-controlled by a credit mechanism. If the data packet at the front end of the input queue cannot be successfully sent due to the lack of credit, it will prevent the normal sending of data packets at the back end of the queue, affecting the overall throughput and response speed of the system.

[0083] In view of the defects in the related art, the embodiments of the present disclosure provide a data processing method to solve some or all of the above technical problems.

[0084] Figure 2 The figure shows a first optional flowchart of the data processing method provided by the embodiments of the present disclosure, which will be described according to each step.

[0085] Step S201, determine whether the input queue corresponding to the first data packet meets the first condition.

[0086] In some embodiments, the first data packet includes a data packet that the host needs to send to the slave; the host sends the data packet to the slave based on the crossbar switch mechanism; when sending, the host first caches the data packet into the input queue corresponding to the host in the input port. The input queue includes data packets from the same host but with different destination slaves. The input port corresponds to at least one input queue, and each input queue corresponds to a row of the crossbar matrix; each input queue corresponds to one or more hosts, that is, each input queue stores data packets from one host, or each input queue stores data packets from multiple hosts. In the embodiments of the present disclosure, multiple means two or more.

[0087] Correspondingly, the crossbar matrix corresponds to output ports, each output port corresponds to at least one output queue, and each output queue corresponds to a column of the crossbar matrix; each output queue corresponds to a slave, that is, each output queue stores data packets to be sent to the same slave.

[0088] In some embodiments, the first condition includes not full, that is, being able to receive and / or store data packets; the input queue meeting the first condition includes the input queue not being full and being able to receive and / or store data packets; the input queue not meeting the first condition includes the input queue being full and not being able to receive and / or store data packets. Wherein, the input queue can be a first-in-first-out queue, and the input queue is the input queue corresponding to the host that sends the first data packet.

[0089] Step S202, in response to the input queue meeting the first condition, send the first data packet to the input queue.

[0090] In some embodiments, in response to the input queue not being full and being able to receive and / or store data packets, send the first data packet to the input queue. After the data packets before the first data packet in the input queue are sent out, determine whether the first data packet can be sent to the output queue according to whether the output queue meets the first condition. The output queue is the output queue corresponding to the slave corresponding to the first data packet. That is, the first data packet is a data packet sent from the host to the slave.

[0091] Step S203, determine whether the first data packet meets the second condition.

[0092] In some embodiments, the input queue is a first-in-first-out queue, and the second condition includes being the first data packet in the input queue; the first data packet meeting the second condition includes the first data packet being the first data packet in the input queue, and compared with other data packets in the input queue, the first data packet is sent out first.

[0093] Step S204, in response to the first data packet meeting the second condition, confirm whether the output queue corresponding to the first data packet meets the first condition.

[0094] In some embodiments, in response to the first data packet being the first data packet in the input queue, confirm whether the output queue is not full.

[0095] Wherein, the output queue not being full means that it can receive the first data packet sent by the input queue; if the output queue is full, it means that it cannot receive the first data packet sent by the input queue.

[0096] Step S205, in response to the output queue corresponding to the first data packet satisfying a first condition, the first data packet is sent to the output queue based on the crossbar matrix.

[0097] In some embodiments, in response to the output queue corresponding to the first data packet not being full, the first data packet is directly sent to the output queue based on the crossbar matrix. Among them, when a requested data packet passes through the crossbar matrix, the input queue does not require credit points. As long as the output queue is not full, the input queue can send data packets to the output queue.

[0098] Furthermore, the input queue does not need to set a corresponding credit counter, nor does it need to allocate credit points.

[0099] Step S206, in response to the first data packet satisfying a second condition, it is confirmed whether the credit points of the output queue are a preset threshold based on the credit counter.

[0100] In some embodiments, after the first data packet enters the output queue, it is confirmed whether the first data packet satisfies the second condition, that is, whether the first data packet is the first data packet of the output queue; in response to the first data packet being the first data packet of the output queue, it is confirmed whether the output queue has credit points based on the credit counter corresponding to the output queue, that is, whether the credit points are a preset threshold.

[0101] Specifically, the preset threshold can be set according to actual needs, such as 0; if the credit points of the output queue are the preset threshold, it means that the credit points of the output queue are 0 and data packets cannot be sent to the slave device; if the credit points of the output queue are not the preset threshold, it means that the credit points of the output queue are non - zero, indicating that the slave device can receive data packets and the output queue can send data packets to the slave device.

[0102] In some embodiments, the credit counter is set between the output port and the slave device, and is used to record the credit points of at least one output queue corresponding to the output port. The credit points are allocated by the slave device corresponding to the output queue; specifically, if the slave device can receive data packets, the number of data packets that can be received is used as the credit points and allocated to the corresponding output queue, and the credit counter corresponding to the output queue updates the credit points.

[0103] Step S207, in response to the credit points of the output queue not being the preset threshold, the first data packet is sent to the corresponding slave device.

[0104] In some embodiments, in response to the credit points of the output queue not being 0, indicating that the slave device can receive data packets, the first data packet is sent to the corresponding slave device.

[0105] Thus, through the data processing method provided by the embodiments of the present disclosure, without setting a credit counter in the input queue, as long as the output queue corresponding to the data packet is not full, the input queue can send the data packet to the corresponding slave device, and it can pass through the crossbar without waiting for credit checking, improving the utilization efficiency of the crossbar while avoiding the situation that the input queue lacks credit points and hinders the subsequent sending of data packets. In addition, in the method of the present disclosure, the data packets can wait in the output queue without blocking the transmission of other data packets, avoiding the phenomenon that the input end is idle for a long time, effectively utilizing system resources, and reducing the congestion risk of the input queue.

[0106] Figure 3 FIG. 4 shows a second optional flowchart of the data processing method provided by the embodiments of the present disclosure, which will be described according to each part.

[0107] Step S301, determine whether the input queue corresponding to the first data packet meets the first condition.

[0108] In some embodiments, the first data packet is sent by the corresponding host and the destination is the corresponding slave device; the first data packet is transmitted based on the crossbar; confirm whether the input queue corresponding to the host in the input ports of the crossbar meets the first condition; if the input queue does not meet the first condition, repeat to determine whether the input queue corresponding to the first data packet meets the first condition, that is, repeat to execute step S301; until in response to the input queue meeting the first condition, execute step S302.

[0109] In some embodiments, if the input queue meets the first condition, execute step S302.

[0110] Step S302, send the first data packet to the input queue.

[0111] In some embodiments, in response to the input queue meeting the first condition, that is, the input queue is not full, send the first data packet from the host to the input queue, wait for arbitration by the arbiter in the input queue, and after passing the arbitration, transmit it to the output queue based on the crossbar. The first output queue is the output queue corresponding to the slave device.

[0112] In some embodiments, the waiting for arbitration by the arbiter in the input queue includes waiting for the arbiter to confirm whether to receive a first handshake signal sent by the output queue; the handshake signal indicates that the most recently sent data packet has been successfully received by the output queue.

[0113] In some embodiments, in response to receiving the first handshake signal sent by the output queue, it is confirmed that the most recently sent data packet has been successfully received by the output queue. If the output queue is not full, data packets can continue to be sent to the output queue; in response to not receiving the first handshake signal sent by the output queue, wait to receive the first handshake signal. In the input queue, the most recently sent data packet is before the first data packet.

[0114] In some embodiments, the input queue is a first-in, first-out queue. After sending the first data packet to the input queue, the first data packet is at the end of the input queue.

[0115] Step S303, determine whether the first data packet meets the second condition.

[0116] In some embodiments, the first data packet meeting the second condition includes that the first data packet is the first data packet in the input queue; in response to the first data packet not meeting the second condition, repeat step S303; until the first data packet meets the second condition, then execute step S304.

[0117] Step S304, confirm whether the output queue corresponding to the first data packet meets the first condition.

[0118] In some embodiments, confirm whether the output queue corresponding to the first data packet is not full; if the output queue does not meet the first condition, repeat step S304 until the output queue corresponding to the first data packet meets the first condition; if the output queue meets the first condition, then execute step S305.

[0119] Step S305, send the first data packet to the output queue based on the crossbar matrix.

[0120] In some embodiments, no credit counter is set between the input queue and the crossbar matrix, that is, data packets in the input queue do not require credit points when passing through the crossbar matrix. As long as the output queue is not full, the input queue can send data packets through the crossbar matrix to the output queue.

[0121] In some embodiments, the output queue is a first-in, first-out queue for caching data packets transmitted from the crossbar matrix.

[0122] Step S306, confirm whether the first data packet meets the second condition.

[0123] In some embodiments, the first data packet satisfies a second condition, including that the first data packet is the first data packet in the output queue; in response to the first data packet not satisfying the second condition, step S306 is repeatedly executed; until the first data packet satisfies the second condition, step S307 is executed.

[0124] Step S307, confirm whether the second handshake signal is received.

[0125] In some embodiments, the second handshake signal is a handshake signal returned by the slave after the second data packet in the output queue is successfully sent from the output queue to the slave, and is used to indicate that a data packet can be sent to the slave when there is a credit point in the output queue. In the output queue, the second data packet is before the first data packet.

[0126] In some embodiments, in response to receiving the second handshake signal, step S307 is executed; in response to not receiving the second handshake signal, step S307 is repeatedly executed until the second handshake signal is received, and step S308 is executed.

[0127] Step S308, based on the credit counter, confirm whether the credit point of the output queue is a preset threshold.

[0128] In some embodiments, the credit counter is set between the output port and the slave, and is used to record the credit points of at least one output queue corresponding to the output port; if the credit point of the output queue is the preset threshold, a data packet cannot be transmitted to the corresponding slave; if the credit point of the output queue is not the preset threshold, a data packet is transmitted to the corresponding slave until the credit point of the output queue is the preset threshold. The preset threshold can be 0.

[0129] In some embodiments, in response to confirming based on the credit counter that the credit point of the output queue is not the preset threshold, step S309 is executed; in response to confirming based on the credit counter that the credit point of the output queue is the preset threshold, wait for the credit counter of the output queue to recover until the credit point of the output queue is not the preset threshold, and step S309 is executed.

[0130] Step S309, send the first data packet to the corresponding slave.

[0131] In some embodiments, if the credit counter of the output queue indicates that the credit point of the output queue is not 0, the first data packet is sent to the slave, and the credit counter of the output queue is updated.

[0132] Thus, through the data processing method provided by the embodiments of the present disclosure, without setting a credit counter in the input queue, as long as the output queue corresponding to the data packet is not full, the input queue can send the data packet to the corresponding slave, and it can pass through the crossbar without waiting for credit checking, improving the utilization efficiency of the crossbar and avoiding the situation where the lack of credit points in the input queue hinders the subsequent sending of data packets. In addition, in the method of the present disclosure, the data packet can wait in the output queue without blocking the transmission of other data packets, avoiding the phenomenon of long-term idleness at the input end, effectively utilizing system resources, and reducing the congestion risk of the input queue.

[0133] Figure 4 FIG. 4 shows a third optional flowchart of the data processing method provided by the embodiments of the present disclosure, which will be described according to each part.

[0134] Step S401, determine whether the input queue corresponding to the first data packet meets the first condition.

[0135] The specific step flow of step S401 is the same as that of step S301, and will not be repeated here.

[0136] Step S402, send the first data packet to the input queue.

[0137] The specific step flow of step S402 is the same as that of step S302, and will not be repeated here.

[0138] Step S403, determine whether the first data packet meets the second condition.

[0139] The specific step flow of step S403 is the same as that of step S303, and will not be repeated here.

[0140] Step S404, confirm whether the output queue corresponding to the first data packet meets the first condition.

[0141] In some embodiments, confirm whether the output queue corresponding to the first data packet is not full; if the output queue does not meet the first condition, execute step S405; if the output queue meets the first condition, execute step S408.

[0142] Step S405, send the first data packet to the candidate queue.

[0143] In some embodiments, the candidate queue is the queue corresponding to the input port, and participates in the arbitration of the arbiter together with other input queues corresponding to the input port; it is used to temporarily store data packets that cannot be sent because the output queue for receiving data packets is full, avoiding blocking of the input queue.

[0144] Specifically, the embodiments of the present disclosure aim to solve the problem that in the input queue, the packet at the first position cannot be transmitted due to the lack of credit points, resulting in the inability to send subsequent packets and blocking of the input queue. The embodiments of the present disclosure adopt different methods to solve this problem. First, no credit counter corresponding to the input queue is set. When the output queue is not full, the packet can be transmitted from the input queue to the output queue. Second, a candidate queue is added at the output port to temporarily store the corresponding packet in the candidate queue when the output queue is full, so that subsequent packets can be normally transmitted to the output queue.

[0145] For example, the input queue A at least includes packet b, packet c, and packet d, which respectively correspond to output queues B, C, and D. If the output queue B is full, packet b cannot be transmitted to the output queue B, which will block the transmission of subsequent packets c and d. If packet b is transmitted from the input queue A to the output queue B, then packets c and d can be normally sent.

[0146] In some embodiments, both the candidate queue and the input queue are queues corresponding to the input ports of the crossbar matrix, and are connected to the output ports corresponding to the output queues through the crossbar matrix. The candidate queue is a first-in, first-out queue. When the arbiter arbitrates the queues corresponding to the input ports, the candidate queue and the input queue participate in the arbitration together. The arbitration can include algorithms such as polling and priority scheduling. The crossbar matrix can be adaptively adjusted to increase the rows corresponding to the candidate queue.

[0147] Step S406, determine whether the first packet satisfies the second condition.

[0148] In some embodiments, confirm whether the first packet is the first packet in the candidate queue. If the first packet is the first packet in the candidate queue, it is determined that the first packet satisfies the second condition, and step S407 is executed; in response to the first packet not satisfying the second condition, step S406 is repeatedly executed until the first packet satisfies the second condition, and then step S407 is executed.

[0149] Step S407, confirm whether the output queue corresponding to the first packet satisfies the first condition.

[0150] The specific step flow of step S407 is the same as that of step S304, and will not be repeated here.

[0151] Step S408, send the first packet to the output queue based on the crossbar matrix.

[0152] The specific step flow of step S408 is the same as that of step S305, and will not be repeated here.

[0153] Step S409, confirm whether the first data packet meets the second condition.

[0154] The specific step process of step S409 is the same as that of step S306, and will not be repeated here.

[0155] Step S410, confirm whether the second handshake signal is received.

[0156] The specific step process of step S410 is the same as that of step S307, and will not be repeated here.

[0157] Step S411, based on the credit counter, confirm whether the credit points of the output queue are the preset threshold.

[0158] The specific step process of step S411 is the same as that of step S308, and will not be repeated here.

[0159] Step S412, send the first data packet to the corresponding slave device.

[0160] The specific step process of step S412 is the same as that of step S309, and will not be repeated here.

[0161] In this way, through the data processing method provided by the embodiments of the present disclosure, without setting a credit counter in the input queue, as long as the output queue corresponding to the data packet is not full, the input queue can send the data packet to the corresponding slave device, and it can pass through the crossbar without waiting for credit check, which improves the utilization efficiency of the crossbar and can also avoid the situation that the lack of credit points in the input queue hinders the subsequent data packet sending; for the scenario where the output queue is full and cannot accept the data packets in the input queue, resulting in the blocking of the data packets in the input queue, the embodiments of the present disclosure propose to add a candidate queue at the input port to temporarily store the data packets that cannot be sent, so that other data packets in the input queue can be sent normally; in addition, in the method of the present disclosure, the data packets can wait in the output queue without blocking the transmission of other data packets, avoiding the phenomenon of long-term idleness at the input end, effectively utilizing system resources, and reducing the congestion risk of the input queue.

[0162] Figure 5 The third optional flowchart of the data processing method provided by the embodiments of the present disclosure is shown, Figure 6 The cross-switch schematic diagram provided by the embodiments of the present disclosure is shown, and will be described in conjunction with Figure 5 and Figure 6 for explanation.

[0163] As Figure 6As shown, in the embodiments of the present disclosure, a credit counter is not set at the input queue or input port, and a credit counter (Credit) is set at the output queue; the output queue is located at the host interface. In the embodiments of the present disclosure, the input queue is allowed to pass requests through the crossbar without credit, and credit requirements need to be met only when the data packet is sent from the output queue to the target device (slave). This design aims to improve the flexibility and performance of the system, especially in application scenarios dealing with high loads and complex data packets. In the embodiments of the present disclosure, each input port corresponds to an input queue for caching transmitted data packets, and the input queue is a first-in-first-out queue; the data packets are managed in the input queue in the order of arrival and are sent to the crossbar after arbitration and post-arbitration. The arbitration here includes upstream and downstream handshakes, that is, the previous data packet is successfully sent and the corresponding output queue is not full and can receive the data packet; when the data packet requests to pass through the crossbar, the credit status is no longer checked. A FIFO output queue is equipped at each output port for buffering data packets transmitted from the crossbar. The role of the output queue is to manage the queuing and sorting of data packets before they are finally sent to the slave; when the data packet is sent from the output queue to the target device, the system will perform a credit check. Only when the target device has sufficient credit support can the data packet be successfully sent from the output queue. This mechanism ensures that the receiving capacity of the target device will not be overloaded and avoids packet loss due to insufficient credit; the output queue is a first-in-first-out queue.

[0164] In some embodiments, the input port, at least one input queue corresponding to the input port, the crossbar, the output port, and at least one output queue corresponding to the output port are located at the host output port for outputting data packets transmitted from the host to the slave.

[0165] As Figure 5 shown, when the input queue at the slave interface is not full, the data packet is sent from the host to the corresponding input queue of the host and waits for the previous data packet to be arbitrated and sent to the host interface output queue; when the data packet reaches the front end of the input queue, it is judged whether the output queue of the target host interface is not full. If so, it is arbitrated by the arbiter and sent to the host interface through the crossbar. Otherwise, it waits for the upstream and downstream handshakes of the crossbar; when the data packet reaches the host interface output queue, it waits for the previous data packet to handshake and be sent to the slave; when the data packet reaches the front end of the host interface output queue, it is checked whether there is enough credit to send the data packet. If so, the data packet is sent to the slave. Otherwise, it waits for the credit counter to recover.

[0166] Thus, through the data processing method provided by the embodiments of the present disclosure, by delaying credit checking until the data packet reaches the output queue, the input queue can immediately pass through the crossbar without waiting for the result of the credit check. This reduces the residence time of the data packet at the input end, improves the transmission speed of the data packet in the crossbar system, and thus greatly improves the throughput of the system; the embodiments of the present disclosure allow the data packet to pass through the crossbar as soon as possible without credit restrictions, improving the utilization efficiency of the crossbar. Even if a certain output end temporarily lacks credit, the data packet can wait in the output queue without blocking the transmission of other data packets. This avoids the phenomenon of the input end being idle for a long time, effectively utilizes system resources, and reduces the congestion risk of the input queue.

[0167] The data processing method described in the embodiments of the present disclosure is not only applicable to crossbars, but also can be applied to other interconnection topologies such as buses and networks-on-chip.

[0168] Figure 7 The optional structural schematic diagram of the data processing device provided by the embodiments of the present disclosure is shown and will be described according to each part.

[0169] In some embodiments, the data processing device 700 includes an input queue determination unit 701, a first sending unit 702, a first position determination unit 703, an output queue determination unit 704, a second sending unit 705, an arbitration unit 706, and a third sending unit 707.

[0170] The input queue determination unit 701 is configured to determine whether the input queue corresponding to the first data packet meets the first condition;

[0171] The first sending unit 702 is configured to, in response to the input queue meeting the first condition, send the first data packet to the input queue;

[0172] The first position determination unit 703 is configured to determine whether the first data packet meets the second condition;

[0173] The output queue determination unit 704 is configured to, in response to the first data packet meeting the second condition, confirm whether the output queue corresponding to the first data packet meets the first condition;

[0174] The second sending unit 705 is configured to, in response to the output queue corresponding to the first data packet meeting the first condition, send the first data packet to the output queue based on the crossbar;

[0175] The arbitration unit 706 is configured to, in response to the first data packet meeting the second condition, confirm whether the credit point of the output queue is a preset threshold based on the credit counter;

[0176] The third sending unit 707 is configured to, in response to the credit points of the output queue not being a preset threshold, send the first data packet to the corresponding slave based on the arbiter.

[0177] In some embodiments, the credit counter is disposed between the output port and the slave, and is configured to record the credit points of at least one output queue corresponding to the output port;

[0178] If the credit points of the output queue are a preset threshold, data packets cannot be transmitted to the corresponding slave;

[0179] If the credit points of the output queue are not a preset threshold, data packets are transmitted to the corresponding slave until the credit points of the output queue are a preset threshold.

[0180] In some embodiments, the output queue is a first-in first-out queue, and is configured to cache data packets transmitted from the crossbar.

[0181] In some embodiments, no credit counter is disposed between the input queue and the crossbar.

[0182] The input queue determining unit 701 is further configured to, in response to the input queue not satisfying the first condition, repeatedly determine whether the input queue corresponding to the first data packet satisfies the first condition;

[0183] Until in response to the input queue satisfying the first condition, the first data packet is sent to the input queue.

[0184] The first position determining unit 703 is further configured to, in response to the first data packet not satisfying the second condition, repeatedly determine whether the first data packet satisfies the second condition;

[0185] Until in response to the first data packet satisfying the second condition, it is confirmed whether the output queue corresponding to the first data packet satisfies the first condition.

[0186] The output queue determining unit 704 is further configured to, in response to the output queue corresponding to the first data packet not satisfying the first condition, wait for the output queue to send a first handshake signal;

[0187] In response to receiving the first handshake signal sent by the output queue and confirming that the output queue satisfies the first condition, the first data packet is sent to the output queue based on the crossbar.

[0188] In some embodiments, the first condition includes that the queue is not full, and the input queue determining unit 701 is specifically configured to determine whether the input queue of the host corresponding to the first data packet to be sent is not full;

[0189] Among them, the input queue satisfying the first condition includes that the input queue can receive the first data packet; the input queue not satisfying the first condition includes that the input queue is full and cannot receive the first data packet.

[0190] In some embodiments, the input queue is a first-in-first-out queue, and the second condition includes that the first data packet is the first data packet in the input queue.

[0191] The arbitration unit 706, before confirming whether the credit point of the output queue is a preset threshold based on the credit counter in response to the first data packet satisfying the second condition, is further configured to confirm whether to receive the second handshake signal returned after the successful transmission of the second data packet in the output queue;

[0192] In response to receiving the second handshake signal, it is determined whether the credit point of the output queue is a preset threshold based on the credit counter.

[0193] The arbitration unit 706 is further configured to, in response to confirming that the credit point of the output queue is a preset threshold based on the credit counter, wait for the credit counter of the output queue to recover until the credit point of the output queue is not the preset threshold.

[0194] After sending the first data packet to the corresponding slave device, the third sending unit 707 is further configured to update the credit counter of the output queue.

[0195] According to an embodiment of the present disclosure, the present disclosure also provides an electronic device and a readable storage medium.

[0196] Figure 8 FIG. shows a schematic block diagram of an exemplary electronic device 800 that can be used to implement the embodiments of the present disclosure. The electronic device is intended to represent various forms of digital computers, such as, a laptop computer, a desktop computer, a workbench, a personal digital assistant, a server, a blade server, a mainframe computer, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as, a personal digital processor, a cellular phone, a smart phone, a wearable device, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely exemplary and are not intended to limit the implementation of the present disclosure described and / or claimed herein.

[0197] As Figure 8As shown, the electronic device 800 includes a computing unit 801, which can perform various appropriate actions and processes according to computer programs stored in a read-only memory (ROM) 802 or computer programs loaded from a storage unit 808 into a random access memory (RAM) 803. In the RAM 803, various programs and data required for the operation of the electronic device 800 can also be stored. The computing unit 801, the ROM 802, and the RAM 803 are connected to each other via a bus 804. An input / output (I / O) interface 805 is also connected to the bus 804.

[0198] Multiple components in the electronic device 800 are connected to the I / O interface 805, including: an input unit 806, such as a keyboard, a mouse, etc.; an output unit 807, such as various types of displays, speakers, etc.; a storage unit 808, such as a magnetic disk, an optical disc, etc.; and a communication unit 809, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 809 allows the electronic device 800 to exchange information / data with other devices via a computer network such as the Internet and / or various telecommunication networks.

[0199] The computing unit 801 can be various general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of the computing unit 801 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various dedicated artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, a digital signal processor (DSP), and any appropriate processor, controller, microcontroller, etc. The computing unit 801 executes the various methods and processes described above, such as the data processing method. For example, in some embodiments, the data processing method can be implemented as a computer software program, which is tangibly contained in a machine-readable medium, such as the storage unit 808. In some embodiments, part or all of the computer program can be loaded and / or installed onto the electronic device 800 via the ROM 802 and / or the communication unit 809. When the computer program is loaded into the RAM 803 and executed by the computing unit 801, one or more steps of the data processing method described above can be executed. Alternatively, in other embodiments, the computing unit 801 can be configured to execute the data processing method in any other appropriate way (e.g., by means of firmware).

[0200] The various embodiments of the systems and techniques described above in this document can be implemented in digital electronic circuitry, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems-on-chip (SOCs), complex programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments can include: being implemented in one or more computer programs that are executable and / or interpretable on a programmable system including at least one programmable processor, which can be a special-purpose or general-purpose programmable processor that receives data and instructions from a storage system, at least one input device, and at least one output device, and transmits the data and instructions to the storage system, the at least one input device, and the at least one output device.

[0201] The program code for implementing the methods of the present disclosure can be written in any combination of one or more programming languages. These program codes can be provided to a processor or controller of a general-purpose computer, a special-purpose computer, or other programmable data processing device, such that when the program codes are executed by the processor or controller, the functions / operations specified in the flowchart and / or block diagram are implemented. The program code can be executed entirely on the machine, partially on the machine, as a stand-alone software package partially on the machine and partially on a remote machine, or entirely on a remote machine or server.

[0202] In the context of the present disclosure, a machine-readable medium can be a tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of a machine-readable storage medium would include an electrical connection based on one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0203] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device for displaying information to the user (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor); and a keyboard and a pointing device (e.g., a mouse or a trackball) through which the user can provide input to the computer. Other kinds of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including acoustic input, speech input, or tactile input).

[0204] The systems and techniques described herein can be implemented in a computing system including backend components (e.g., as a data server), or a computing system including middleware components (e.g., an application server), or a computing system including frontend components (e.g., a user computer having a graphical user interface or a web browser through which the user can interact with an implementation of the systems and techniques described herein), or a computing system including any combination of such backend components, middleware components, or frontend components. The components of the system can be interconnected to each other by digital data communication in any form or medium (e.g., a communication network). Examples of communication networks include: local area network (LAN), wide area network (WAN), and the Internet.

[0205] A computer system can include a client and a server. The client and the server are generally far from each other and usually interact through a communication network. The client-server relationship is created by computer programs running on the respective computers and having a client-server relationship with each other. The server can be a cloud server, or a server of a distributed system, or a server incorporating a blockchain.

[0206] It should be understood that the various forms of processes shown above can be used, with steps reordered, added, or deleted. For example, the steps recited in this disclosure can be executed in parallel, sequentially, or in a different order, as long as the desired results of the technical solutions disclosed in this disclosure can be achieved, and this is not limited herein.

[0207] As described above, the above are only specific embodiments of the present disclosure, but the protection scope of the present disclosure is not limited thereto. Any person skilled in the art within the technical scope disclosed by the present disclosure can easily think of changes or substitutions, which should all be covered within the protection scope of the present disclosure. Therefore, the protection scope of the present disclosure should be subject to the protection scope of the claims.

Claims

1. A data processing method, characterized in that, The method includes: Determining whether the input queue corresponding to the first data packet satisfies a first condition; In response to the input queue satisfying the first condition, sending the first data packet to the input queue; Determining whether the first data packet satisfies a second condition; In response to the first data packet satisfying the second condition, confirming whether the output queue corresponding to the first data packet satisfies the first condition; In response to the output queue corresponding to the first data packet satisfying the first condition, sending the first data packet to the output queue based on a crossbar matrix; In response to the first data packet satisfying the second condition, confirming whether the credit points of the output queue are a preset threshold based on a credit counter; In response to the credit points of the output queue not being the preset threshold, sending the first data packet to the corresponding slave; 2. The method according to claim 1, wherein The credit counter is arranged between the output port and the slave, and is used for recording the credit points of at least one output queue corresponding to the output port; If the credit points of the output queue are the preset threshold, data packets cannot be transmitted to the corresponding slave; If the credit points of the output queue are not the preset threshold, data packets are transmitted to the corresponding slave until the credit points of the output queue are the preset threshold.

3. The method according to claim 2, wherein The output queue is a first-in-first-out queue, and is used for caching data packets transmitted from the crossbar matrix.

4. The method according to claim 1, wherein No credit counter is arranged between the input queue and the crossbar matrix.

5. The method according to claim 1, characterized in that, The method further includes: In response to the input queue not satisfying the first condition, repeatedly determining whether the input queue corresponding to the first data packet satisfies the first condition; Until in response to the input queue satisfying the first condition, sending the first data packet to the input queue.

6. The method according to claim 1, wherein The method further includes: In response to the first data packet not satisfying the second condition, repeatedly determining whether the first data packet satisfies the second condition; Until in response to the first data packet satisfying the second condition, confirming whether the output queue corresponding to the first data packet satisfies the first condition.

7. The method according to claim 1, wherein The method further includes: In response to the output queue corresponding to the first data packet satisfying the first condition, waiting for the output queue to send a first handshake signal; In response to receiving the first handshake signal sent by the output queue, sending the first data packet to the output queue based on the crossbar matrix.

8. The method according to claim 1, characterized in that, The first condition includes that the queue is not full. Determining whether the input queue corresponding to the first data packet satisfies the first condition includes: Determining whether the input queue of the host corresponding to the first data packet is not full; Wherein, the input queue satisfying the first condition includes that the input queue can receive the first data packet; the input queue not satisfying the first condition includes that the input queue is full and cannot receive the first data packet.

9. The method according to claim 1, wherein The input queue is a first-in-first-out queue, and the second condition includes that the first data packet is the first data packet of the input queue.

10. The method according to claim 1, wherein Before confirming whether the credit points of the output queue are a preset threshold based on the credit counter in response to the first data packet satisfying the second condition, the method further includes: Confirming whether a second handshake signal returned after successful transmission of a second data packet in the output queue is received; In response to receiving the second handshake signal, confirming whether the credit points of the output queue are a preset threshold based on the credit counter.

11. The method according to claim 1, wherein The method further includes: In response to confirming that the credit points of the output queue are a preset threshold based on the credit counter, waiting for the credit counter of the output queue to recover until the credit points of the output queue are not a preset threshold.

12. The method according to claim 1, characterized in that, After sending the first data packet to the corresponding slave, the method further includes: Updating the credit counter of the output queue.

13. A data processing device, characterized in that, The apparatus includes: An input queue determination unit, configured to determine whether the input queue corresponding to the first data packet satisfies a first condition; A first sending unit, configured to send the first data packet to the input queue in response to the input queue satisfying the first condition; A first position determination unit, configured to determine whether the first data packet satisfies a second condition; An output queue determination unit, configured to confirm whether the output queue corresponding to the first data packet satisfies the first condition in response to the first data packet satisfying the second condition; A second sending unit, configured to send the first data packet to the output queue based on a crossbar in response to the output queue corresponding to the first data packet satisfying the first condition; An arbitration unit, configured to confirm whether the credit points of the output queue are a preset threshold based on the credit counter in response to the first data packet satisfying the second condition; A third sending unit, configured to send the first data packet to the corresponding slave based on the arbiter in response to the credit points of the output queue not being a preset threshold.

14. The device according to claim 13, characterized in that, The credit counter is disposed between the output port and the slave, and is configured to record the credit points of at least one output queue corresponding to the output port; If the credit points of the output queue are a preset threshold, data packets cannot be transmitted to the corresponding slave; If the credit points of the output queue are not a preset threshold, data packets are transmitted to the corresponding slave until the credit points of the output queue are a preset threshold.

15. The apparatus according to claim 14, wherein The output queue is a first-in, first-out queue, and is configured to cache data packets transmitted from the crossbar.

16. The apparatus according to claim 13, wherein No credit counter is provided between the input queue and the crossbar.

17. The apparatus according to claim 13, wherein The input queue determination unit is further configured to: in response to the input queue not satisfying the first condition, repeatedly determine whether the input queue corresponding to the first data packet satisfies the first condition; The first sending unit is further configured to send the first data packet to the input queue in response to the input queue satisfying the first condition.

18. An electronic device, characterized in that, Includes: At least one processor; and a memory communicatively coupled to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions, when executed by the at least one processor, enable the at least one processor to perform the method according to any one of claims 1-12.

19. A non-transitory computer-readable storage medium storing computer instructions, characterized in that, The computer instructions are for causing a computer to perform the method according to any one of claims 1-12.

20. A non-transitory computer-readable storage medium storing computer instructions, characterized in that, The computer instructions are for causing a computer to perform the method according to any one of claims 1-12.