Data transmission device and method, electronic equipment and computer readable storage medium
By introducing allocation modules and aggregation modules into the data transmission device, virtual channels are allocated and arbitrated according to transaction information, the problems of virtual channels blocking and resource waste in the prior art are solved, and more efficient and reliable data transmission is achieved.
Patent Information
- Application Number
- CN202411754641.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-02
- Publication Date
- 2025-03-07
AI Technical Summary
When multiple devices access destinations through a single link, the prior art is difficult to effectively handle complex request characteristics, such as different priority, destination and transaction types, resulting in virtual channel blocking, large resource overhead, low priority transactions affecting high priority, interfering with read and write requests, and continuous processing of transactions at the same destination, resulting in delays.
It provides a data transmission device, including an allocation module and an aggregation module, which receives transactions issued by the transaction source module and allocates a virtual channel according to transaction information. After arbitration, the aggregation module uses a virtual channel to send transactions through the communication channel.
Through fine and flexible virtual channel allocation, data transmission efficiency and reliability are improved, virtual channel blocking and resource waste are avoided, and delay and resource overhead are reduced.
Smart Images

Figure CN119583580A_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present disclosure relate to a data transmission device and method, an electronic device, and a computer-readable storage medium. Background Art
[0002] In the interconnection and physical link transmission, multiple devices access the destination (destination device) through a single link. However, in the face of complex request characteristics, such as different priorities, destinations and transaction types, dividing virtual channels only by main modules is not flexible enough and can easily cause virtual channel blocking. In addition, there are also problems such as high resource overhead, low-priority transactions affecting high-priority transactions, interference between read and write requests, and delays caused by continuous processing of transactions at the same destination. Summary of the invention
[0003] At least one embodiment of the present disclosure provides a data transmission device, comprising: an allocation module, configured to receive a first transaction and a second transaction issued by a first transaction source module among multiple transaction source modules, and allocate a first virtual channel and a second virtual channel to the first transaction and the second transaction respectively, wherein the first transaction has different transaction information compared to the second transaction; and a first aggregation module, configured to send the first transaction and the second transaction respectively through a communication channel using the first virtual channel and the second virtual channel after arbitrating the first transaction and the second transaction.
[0004] For example, in a data transmission device provided in an embodiment of the present disclosure, the allocation module is further configured to receive a third transaction issued by a first transaction source module among multiple transaction source modules, and in response to the first transaction and the third transaction having the same transaction information, allocate the first virtual channel to the third transaction.
[0005] For example, in a data transmission device provided in an embodiment of the present disclosure, the allocation module is further configured to allocate the first virtual channel and the second virtual channel to the first transaction and the second transaction respectively according to allocation configuration information, wherein the allocation configuration information includes a correspondence between multiple transaction information and multiple virtual channels.
[0006] For example, in a data transmission device provided in an embodiment of the present disclosure, each of the multiple types of transaction information includes: transaction source module identification information, transaction corresponding destination identification information, main port identification information, priority information and / or instruction type information.
[0007] For example, in a data transmission device provided in an embodiment of the present disclosure, the transaction source module identification information and / or the transaction corresponding destination identification information includes delay sensitivity information, and the delay sensitive information is used to indicate the sensitivity of the multiple transaction source modules to delay, or the sensitivity of the destination corresponding to the transaction corresponding destination identification information to delay.
[0008] For example, in a data transmission device provided in an embodiment of the present disclosure, in the allocation configuration information, the performance of multiple virtual channels corresponding to the multiple transaction information is configured accordingly according to the delay-sensitive information, priority information or instruction type information included in each of the multiple transaction information.
[0009] For example, in a data transmission device provided in an embodiment of the present disclosure, the allocation module is further configured to receive the first transaction issued by the first transaction source module through a first master port, wherein the master port identification information in the transaction information of the first transaction is the first master port.
[0010] For example, in a data transmission device provided in an embodiment of the present disclosure, in the allocation configuration information, at least two pieces of transaction information having the same transaction source module identification information correspond to different virtual channels, or at least two pieces of transaction information having different transaction source module identification information correspond to the same virtual channel respectively.
[0011] For example, in the data transmission device provided in an embodiment of the present disclosure, the allocation module is further configured to receive an allocation configuration information update instruction and update the allocation configuration information.
[0012] For example, in a data transmission device provided in an embodiment of the present disclosure, the multiple transaction source modules also include a second transaction source module; the data transmission device also includes: a second aggregation module, which is respectively coupled to the first transaction source module, the second transaction source module and the allocation module, and is configured to receive transactions issued by the first transaction source module and the second transaction source module, and provide the transactions received by the second aggregation module to the allocation module.
[0013] For example, in a data transmission device provided in an embodiment of the present disclosure, the multiple transaction source modules also include a third transaction source module, wherein the third transaction source module is coupled to the allocation module; and the second aggregation module is coupled to the third transaction source module, coupled to the allocation module via the third transaction source module, and provides the allocation module with the transactions received by the second aggregation module through the third transaction source module.
[0014] At least one embodiment of the present disclosure provides a data transmission device, including: a distribution module, configured to receive a first transaction and a second transaction respectively through a communication channel using a first virtual channel and a second virtual channel, wherein the first transaction and the second transaction are from a first source transaction module and have different transaction information; and a storage module, having an object storage space, and configured to store the first transaction and the second transaction in a first storage subspace and a second storage subspace allocated to the first virtual channel and the second virtual channel respectively in the object storage space.
[0015] For example, in a data transmission device provided in an embodiment of the present disclosure, the distribution module is further configured to parse the first transaction and the second transaction to obtain transaction information of each of the first transaction and the second transaction, and provide the first transaction and the second transaction to the storage module.
[0016] For example, in a data transmission device provided in an embodiment of the present disclosure, the storage module is further configured to configure corresponding storage subspaces of the object storage space for virtual channels corresponding to different transactions according to allocation configuration information, wherein the allocation configuration information includes the correspondence between multiple transaction information and multiple virtual channels.
[0017] At least one embodiment of the present disclosure provides a data transmission method, comprising: receiving a first transaction and a second transaction issued by a first transaction source module among a plurality of transaction source modules; allocating a first virtual channel and a second virtual channel to the first transaction and the second transaction, respectively; and after arbitrating the first transaction and the second transaction, sending the first transaction and the second transaction using the first virtual channel and the second virtual channel, respectively, through a communication channel, wherein the first transaction has different transaction information than the second transaction.
[0018] At least one embodiment of the present disclosure provides a data transmission method, comprising: receiving a first transaction and a second transaction respectively using a first virtual channel and a second virtual channel through a communication channel, wherein the first transaction and the second transaction are from a first source transaction module and have different transaction information; and storing the first transaction and the second transaction in a first storage subspace and a second storage subspace respectively allocated to the first virtual channel and the second virtual channel in the object storage space.
[0019] At least one embodiment of the present disclosure provides an electronic device, including the data transmission device provided by any embodiment of the present disclosure.
[0020] For example, in an electronic device provided by an embodiment of the present disclosure, the electronic device further includes the communication channel, wherein the communication channel is coupled to the data transmission device.
[0021] At least one embodiment of the present disclosure provides an electronic device, comprising: a processor; and a memory, wherein the memory stores at least one computer program, and when the at least one computer program is executed by the processor, the data transmission method provided by any embodiment of the present disclosure is implemented.
[0022] At least one embodiment of the present disclosure provides a non-transitory computer-readable storage medium for non-temporarily storing computer-readable instructions. When the computer-readable instructions are executed by a computer, the data transmission method provided by any embodiment of the present disclosure is implemented. BRIEF DESCRIPTION OF THE DRAWINGS
[0023] In order to more clearly illustrate the technical solutions of the embodiments of the present disclosure, the drawings of the embodiments will be briefly introduced below. Obviously, the drawings in the following description only relate to some embodiments of the present disclosure, but are not intended to limit the present disclosure.
[0024] Figure 1 A schematic block diagram of a data transmission device is shown;
[0025] Figure 2 A schematic block diagram of a data transmission device provided by at least one embodiment of the present disclosure is shown;
[0026] Figure 3 A schematic block diagram of another data transmission device provided by at least one embodiment of the present disclosure is shown;
[0027] Figure 4 A schematic block diagram of another data transmission device provided by at least one embodiment of the present disclosure is shown;
[0028] Figure 5 A schematic block diagram of an application of a data transmission device (or a data processing system) provided by at least one embodiment of the present disclosure is shown;
[0029] Figure 6 A flowchart of a data transmission method provided by at least one embodiment of the present disclosure is shown;
[0030] Figure 7 A flowchart of another data transmission method provided by at least one embodiment of the present disclosure is shown;
[0031] Figure 8 A schematic block diagram of an electronic device provided by at least one embodiment of the present disclosure is shown;
[0032] Fig. 9 A schematic block diagram showing another electronic device provided by at least one embodiment of the present disclosure; and
[0033] Fig.10A schematic diagram of a computer-readable storage medium provided by at least one embodiment of the present disclosure is shown. DETAILED DESCRIPTION
[0034] In order to make the purpose, technical solution and advantages of the embodiments of the present disclosure clearer, the technical solution of the embodiments of the present disclosure will be clearly and completely described below in conjunction with the drawings of the embodiments of the present disclosure. Obviously, the described embodiments are part of the embodiments of the present disclosure, not all of the embodiments. Based on the described embodiments of the present disclosure, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present disclosure.
[0035] Unless otherwise defined, the technical terms or scientific terms used in the present disclosure should be understood by people with ordinary skills in the field to which the present disclosure belongs. The "first", "second" and similar words used in the present disclosure do not indicate any order, quantity or importance, but are only used to distinguish different components. Similarly, similar words such as "one", "one" or "the" do not indicate quantity restrictions, but indicate that there is at least one. Similar words such as "include" or "comprise" mean that the elements or objects appearing before the word cover the elements or objects listed after the word and their equivalents, without excluding other elements or objects. Similar words such as "connect" or "connected" are not limited to physical or mechanical connections, but can include electrical connections, whether direct or indirect. "Up", "down", "left", "right" and the like are only used to indicate relative positional relationships. When the absolute position of the described object changes, the relative positional relationship may also change accordingly.
[0036] The interconnection bandwidth and the transmission performance of the physical link have an important impact on the task completion quality and overall performance of the data transmission device. In the interconnection and physical link transmission technology, for example, when processing physical link transmission such as inter-chip interconnection, on-chip interconnection and bridge chip equipment, in order to improve the utilization efficiency of routing resources, a communication channel (for example, including a set of buses or a link) can be used to allow multiple modules to send requests to the same or different destinations. In order to avoid mutual congestion of transaction requests at the destination, a dedicated storage space can be allocated to each module at the destination. If the storage space corresponding to a module is insufficient, the module will be prohibited from sending requests to the communication channel (bus or link), and the right to use the link or bus will be given to other modules, so that the bus or link will not be blocked due to too many requests. For example, multiple corresponding virtual channels (VC, VirtualChannel) can be divided into multiple virtual channels (VC, VirtualChannel) according to the type of the main module in a physical channel, thereby achieving relative separation of requests.
[0037] However, the inventors of the present disclosure have noticed that since the requests sent by each master module may have different characteristics, such as different priorities, destinations or transaction types, there are many problems in dividing virtual channels based solely on the type of master module.
[0038] Figure 1 A schematic block diagram of a data transmission device is shown.
[0039] like Figure 1 As shown, multiple main modules (e.g., main module 1, main module 2, main module 3) are coupled to a virtual channel aggregation module, the virtual channel aggregation module is coupled to a virtual channel distribution module through a communication channel (link or bus), and the virtual channel distribution module is coupled to multiple storage modules (e.g., storage module 0, storage module 1, storage module 2). Figure 1 The multiple storage modules in the are storage spaces corresponding to the multiple main modules at the destination. For example, storage module 0 is the storage space corresponding to the main module 0 at the destination. For example, the communication medium used by the communication channel may include wired (such as twisted pair, coaxial cable, optical fiber) or wireless (such as radio waves), etc., and the embodiments of the present disclosure are not limited to this.
[0040] For example, when corresponding storage modules are allocated to all main modules, on the virtual channel distribution module side, as the number of main modules increases, the required chip area and resource overhead will also increase exponentially, which poses a great challenge to the system resource overhead.
[0041] For example, when a master module continuously sends low-priority transactions into the storage space, subsequent high-priority transactions need to wait until all low-priority transactions are processed before they can be sent, resulting in performance delays.
[0042] For example, when there is no correlation between transaction request types, such as read and write requests, one request type may fill up the storage space, thereby affecting the sending of another request type, further reducing system efficiency.
[0043] For example, when a main module continuously sends transactions pointing to the same destination into the storage space, if the processing efficiency of the destination is low, subsequent transactions pointing to other destinations need to wait until all previous transactions are processed before they can be sent, which may also cause a large delay.
[0044] The above-mentioned VC division method based on the main module is prone to cause blocking when dealing with complex situations, which will seriously affect the performance of the entire system when multiple devices and multiple functions are working. At the same time, the continuous increase in storage space will also cause resource waste. Therefore, the inventors of the present disclosure believe that a more flexible and targeted data transmission method is urgently needed to achieve less resource consumption and effectively improve the working performance of the system.
[0045] At least one embodiment of the present disclosure provides a data transmission device. The data transmission device includes an allocation module and a first aggregation module. The allocation module is configured to receive a first transaction and a second transaction issued by a first transaction source module among a plurality of transaction source modules, and to allocate a first virtual channel and a second virtual channel to the first transaction and the second transaction, respectively; wherein the first transaction has different transaction information compared to the second transaction. The first aggregation module is configured to send the first transaction and the second transaction using the first virtual channel and the second virtual channel, respectively, through a communication channel after arbitrating the first transaction and the second transaction. The data transmission device can make the allocation of virtual channels more refined and flexible, and can allocate corresponding virtual channels to different transactions according to different application scenarios, thereby improving the efficiency and reliability of data transmission.
[0046] At least one embodiment of the present disclosure also provides another data transmission device. The data transmission device includes a distribution module and a storage module. The distribution module is configured to receive a first transaction and a second transaction respectively using a first virtual channel and a second virtual channel through a communication channel; wherein the first transaction and the second transaction are from a first source transaction module and have different transaction information. The storage module has an object storage space, and the storage module is configured to store the first transaction and the second transaction in a first storage subspace and a second storage subspace respectively allocated to the first virtual channel and the second virtual channel in the object storage space. The data transmission device can realize efficient reception, distribution and storage of transactions from different virtual channels, so that transactions are accurately processed and efficiently stored, thereby improving the performance and reliability of the data transmission device.
[0047] Accordingly, at least one embodiment of the present disclosure further provides a data transmission method, an electronic device, and a non-transitory computer-readable storage medium corresponding to the above-mentioned data transmission device.
[0048] Figure 2 A schematic block diagram of a data transmission device provided by at least one embodiment of the present disclosure is shown.
[0049] like Figure 2 As shown, the data transmission device 100 includes an allocation module 110 and a first aggregation module 120 , and the allocation module 110 and the first aggregation module 120 are coupled.
[0050] The allocation module 110 is configured to receive a first transaction and a second transaction issued by a first transaction source module (not shown in the figure) among a plurality of transaction source modules, and allocate a first virtual channel and a second virtual channel to the first transaction and the second transaction respectively.
[0051] The first aggregation module 120 is configured to send the first transaction and the second transaction respectively through the communication channel using the first virtual channel and the second virtual channel after arbitrating the first transaction and the second transaction.
[0052] For example, the allocation module 110 may receive transactions issued by multiple transaction source modules. The first transaction source module may be any one of the multiple transaction source modules, as the current description object.
[0053] For example, the allocation module 110 may allocate corresponding virtual channels to the first transaction and the second transaction respectively based on the received transaction information of the first transaction and the second transaction. Exemplarily, the allocation module 110 may allocate a first virtual channel to the first transaction and a second virtual channel to the second transaction, and the embodiments of the present disclosure are not limited to this.
[0054] For example, a first transaction may have different transaction information than a second transaction.
[0055] For example, the transaction information may include multiple types of transaction information, each of which may include transaction source module identification information (e.g., master ID), transaction corresponding destination identification information (e.g., slave ID), master port identification information (e.g., master port ID), priority information (e.g., QOS, Quality of Service) and / or instruction type information (e.g., Cmd Type), etc., which is not limited to the embodiments of the present disclosure.
[0056] For example, the types of transaction information of the multiple transactions may be the same. Exemplarily, the types of transaction information of the first transaction and the second transaction may be the same.
[0057] For example, among the multiple types of transaction information possessed by the first transaction and the second transaction, at least one type of transaction information indicates different contents, and thus the two are different transactions.
[0058] For example, the first aggregation module 120 may arbitrate and send multiple transactions received by the allocation module 110. For example, the multiple transactions may also include transactions from other transaction source modules except the first transaction source module, or may also include other transactions from the first transaction source module except the first transaction and the second transaction.
[0059] For example, the arbitration method for multiple transactions in the first aggregation module 120 may include first-in-first-out, polling, etc., or determine which transaction should be sent first based on factors such as transaction priority and instruction type. The embodiments of the present disclosure do not limit the arbitration method.
[0060] For example, after arbitrating a plurality of transactions received by the allocation module 110 , the first aggregation module 120 may send the first transaction and the second transaction through the communication channel using the first virtual channel and the second virtual channel allocated by the allocation module 110 .
[0061] In at least one embodiment of the present disclosure, the allocation module 110 and the first aggregation module 120 can be coupled through corresponding connection lines or interfaces to achieve data transmission and collaborative work. In addition, the allocation of virtual channels can be made more refined and flexible, and corresponding virtual channels can be allocated to different transactions according to different application scenarios, thereby improving the efficiency and reliability of data transmission.
[0062] In some embodiments of the present disclosure, the allocation module 110 may be further configured to receive a third transaction issued by a first transaction source module among multiple transaction source modules, and in response to the first transaction and the third transaction having the same transaction information, allocate a first virtual channel to the third transaction.
[0063] For example, the allocation module 110 may allocate the first virtual channel to the third transaction when the types of transaction information of the first transaction and the third transaction and the contents indicated by each transaction information are the same.
[0064] For example, when the types of transaction information and the contents indicated by each transaction information of the first transaction and the third transaction are the same and the virtual channel previously allocated to the third transaction is different from the virtual channel allocated to the first transaction (e.g., the first virtual channel), the allocation module 110 may allocate the first virtual channel to the third transaction instead.
[0065] In some embodiments of the present disclosure, the allocation module 110 may be further configured to allocate a first virtual channel and a second virtual channel to the first transaction and the second transaction respectively according to the allocation configuration information.
[0066] For example, the allocation configuration information may include a correspondence between a plurality of transaction information and a plurality of virtual channels.
[0067] For example, the allocation configuration information may be configured by a user through software, for example; for example, the allocation configuration information is stored in a register (not shown) for future use.
[0068] For example, the corresponding relationship between various transaction information and multiple virtual channels can be configured by software. Exemplarily, the corresponding relationship between VC ID (virtual channel identification information) and master ID / slave ID / port ID / QOS / Cmd Type can be configured by software.
[0069] In some embodiments of the present disclosure, among the various types of transaction information, the transaction source module identification information and / or the transaction corresponding destination identification information may include delay sensitive information.
[0070] For example, the delay sensitivity information may be used to indicate the sensitivity of multiple transaction source modules to delay, or the sensitivity of the destination corresponding to the transaction corresponding destination identification information to delay.
[0071] For example, the delay sensitivity information may be used to indicate the sensitivity of each transaction source module in the multiple transaction source modules to delay. Alternatively, for example, the delay sensitivity information may also be used to indicate the sensitivity of the destination corresponding to the destination identification information corresponding to each transaction in the multiple transactions to delay, that is, the sensitivity of the destination corresponding to each transaction in the multiple transactions to delay.
[0072] In some embodiments of the present disclosure, the allocation configuration information may include configuring the performance of multiple virtual channels corresponding to the various transaction information according to the delay sensitivity information, priority information or instruction type information included in each of the various transaction information.
[0073] For example, whether the transaction information of a transaction includes delay-sensitive information may be determined through priority information or instruction type information included in the transaction information of the transaction.
[0074] For example, whether the transaction information of a transaction includes delay-sensitive information may also be determined by using the transaction-corresponding destination identification information corresponding to the transaction. The embodiments of the present disclosure do not limit the method for determining whether the transaction information includes delay-sensitive information.
[0075] For example, in the allocation configuration information, if the delay sensitivity information in the transaction information included in a transaction indicates that the transaction source module that issues the transaction is highly sensitive to delay, or the destination corresponding to the transaction is highly sensitive to delay, a corresponding virtual channel (for example, a dedicated virtual channel) may be allocated to the transaction.
[0076] For example, in the allocation configuration information, when the priority information of the transaction information of a certain transaction is high priority information, a corresponding virtual channel (for example, a dedicated virtual channel) may be allocated to the transaction.
[0077] For example, in the allocation configuration information, when the instruction type information of the transaction information of multiple transactions is certain specific types of instructions, corresponding virtual channels may be allocated to these transactions.
[0078] Exemplarily, when the instruction type information of the transaction information of multiple transactions is read-write type instruction information, when the communication channel has no correlation with reading and writing (for example, when the communication channel processes read operations and write operations, there is no direct dependency or mutual influence between the two operations), and / or the destinations corresponding to these multiple transactions have different processing capabilities for reading and writing, corresponding virtual channels can be allocated to these transactions, thereby improving the processing capabilities for reading or writing, so that the processing of write or read transactions is not blocked.
[0079] In some embodiments of the present disclosure, the allocation module 110 may be further configured to receive a first transaction issued by a first transaction source module through a first master port.
[0080] For example, the distribution module 110 may be configured to receive multiple transactions issued by multiple transaction source modules through multiple master ports, respectively.
[0081] For example, distribution module 110 may be coupled to multiple host ports.
[0082] For example, the coupling between the distribution module 110 and the plurality of main ports may be connected via physical lines or interfaces.
[0083] For example, the coupling between the distribution module 110 and the multiple main ports may be direct or indirectly connected through an intermediate device (such as a switch, a router, etc.). The embodiments of the present disclosure do not limit the coupling method between the distribution module 110 and the multiple main ports.
[0084] For example, the number of master ports may correspond to the number of transaction source modules.
[0085] For example, the master port identification information may be used to indicate through which master port a transaction may enter the distribution module 110 .
[0086] For example, the allocation module 110 may receive the first transaction and the second transaction issued by the first transaction source module through the first master port among the multiple master ports according to the allocation configuration information.
[0087] For example, the primary port identification information in the transaction information of the first transaction may be the first primary port, and the primary port identification information in the transaction information of the second transaction may be the first primary port.
[0088] For example, the master port identification information may also be used to indicate through which master port a transaction may enter a corresponding virtual channel.
[0089] For example, the first aggregation module 120 may be further configured to send transactions using corresponding virtual channels through the primary port and the communication channel according to the allocation configuration information.
[0090] In some embodiments of the present disclosure, in the allocation configuration information, at least two transaction information with the same transaction source module identification information correspond to different virtual channels, or at least two transaction information with different transaction source module identification information correspond to the same virtual channel.
[0091] For example, in the allocation configuration information, multiple transactions issued by the same transaction source module can be allocated different virtual channels.
[0092] For example, in the allocation configuration information, multiple transactions issued by different transaction source modules can also be allocated to the same virtual channel.
[0093] In at least one embodiment of the present disclosure, the virtual channel allocation method in the allocation configuration information can have various forms and can be flexibly configured by software according to actual application scenarios. The embodiment of the present disclosure does not limit the correspondence between transaction source modules and virtual channels.
[0094] In some embodiments of the present disclosure, the allocation module 110 is further configured to receive an allocation configuration information update instruction and update the allocation configuration information.
[0095] For example, when the allocation module 110 receives an allocation configuration information update instruction, the allocation module 110 may perform an update operation to update the allocation configuration information.
[0096] For example, when the allocation module 110 receives an allocation configuration information update instruction, the allocation module 110 may also perform operations such as instruction verification or update content parsing to process the allocation configuration information update instruction.
[0097] For example, the distribution module 110 can verify the legitimacy and integrity of the update instruction. Exemplarily, the distribution module 110 can check the format, signature, timestamp, etc. of the instruction to confirm that the distribution configuration information update instruction comes from a trusted source and has not been tampered with.
[0098] For example, when the instruction passes the verification, the allocation module 110 may parse the allocation configuration information update instruction and extract new allocation configuration information.
[0099] For example, in the case where an update fails or the system becomes unstable due to the update, a rollback mechanism may be set, and the allocation module 110 may restore the allocation configuration information to the configuration before the update.
[0100] like Figure 3As shown, in some embodiments of the present disclosure, the multiple transaction source modules may further include a second transaction source module (not shown in the figure), and the data transmission device 100 may further include a second aggregation module 130, and the second aggregation module 130 is respectively coupled to the first transaction source module, the second transaction source module and the allocation module 110.
[0101] For example, the second aggregation module 130 may be configured to receive transactions issued by the first transaction source module and the second transaction source module, and provide the transactions received by the second aggregation module 130 to the distribution module 110 .
[0102] For example, the second aggregation module 130 may receive multiple transactions sent from the first transaction source module and the second transaction source module simultaneously or sequentially. The embodiment of the present disclosure does not limit the order in which the second aggregation module 130 receives multiple transactions.
[0103] For example, the second aggregation module 130 may aggregate the received multiple transactions. The multiple transactions received by the second aggregation module 130 may be aggregated together, and the aggregated transactions are provided to the allocation module 110 for further processing.
[0104] For example, after receiving the transactions provided by the second aggregation module 130, the allocation module 110 may allocate corresponding virtual channels to these transactions according to the allocation configuration information. This process may also operate the related description of the aforementioned embodiment, which will not be repeated here.
[0105] In at least one embodiment of the present disclosure, through the collaborative work of the second aggregation module 130 and the allocation module 110, the data transmission device 100 can achieve efficient and flexible transaction processing and transmission, and transactions of multiple transaction source modules can be effectively aggregated and allocated.
[0106] In some embodiments of the present disclosure, the multiple transaction source modules may further include a third transaction source module (not shown in the figure). The third transaction source module is coupled to the allocation module 110, the second aggregation module 130 is coupled to the third transaction source module, and the second aggregation module 130 is coupled to the allocation module 110 via the third transaction source module.
[0107] For example, the second aggregation module 130 may also be configured to provide the transactions received by the second aggregation module 130 to the allocation module 110 through a third transaction source module.
[0108] For example, the second aggregation module 130 may form an indirect communication path with the allocation module 110 through the third transaction source module.
[0109] For example, the second aggregation module 130 may aggregate multiple transactions received from the first transaction source module and the second transaction source module, and provide the aggregated transactions to the allocation module 110 through the third transaction source module.
[0110] For example, the second aggregation module 130 may arbitrate multiple transactions received from the first transaction source module and the second transaction source module, and then provide them to the allocation module 110 through the third transaction source module. Here, the operation of the second aggregation module 130 to arbitrate multiple transactions received may also be, for example, the related description of the arbitration operation of the first aggregation module 120 in the aforementioned embodiment, which will not be repeated here.
[0111] In one possible implementation, the second aggregation module 130 can receive multiple transactions issued by multiple transaction source modules (for example, the first transaction source module and the second transaction source module), and aggregate these received multiple transactions (for example, perform arbitration operations), and can provide the aggregated transactions to the third transaction source module, which can then be provided by the third transaction source module to the allocation module 110 through the first main port for subsequent operations.
[0112] Further, for example, the multiple transaction source modules may also include a fourth transaction source module (not shown in the figure), the fourth transaction source module may be configured to send transactions to the allocation module 110, the allocation module 110 may be configured to receive multiple transactions issued by the third transaction source module and the fourth transaction source module, and allocate corresponding virtual channels to the multiple transactions respectively.
[0113] For example, in the embodiment of the present disclosure, the allocation module 110, the first aggregation module 120, the second aggregation module 130, the first transaction source module, the second transaction source module, the third transaction source module, the fourth transaction source module and the main port can be hardware, software, firmware and any feasible combination thereof. For example, the allocation module 110, the first aggregation module 120, the second aggregation module 130, the first transaction source module, the second transaction source module, the third transaction source module, the fourth transaction source module and the main port can be dedicated or general circuits, chips or devices, etc., or can be a combination of a processor and a memory. The embodiment of the present disclosure does not limit the specific implementation form of each of the above modules.
[0114] It should be noted that, in the embodiments of the present disclosure, each module of the data transmission device 100 may correspond to each step of the data transmission method (described below) provided by the present disclosure. Figure 2-3 The components and structures of the data transmission device 100 shown are merely exemplary and non-limiting. The data transmission device 100 may further include other components and structures as required.
[0115] Figure 4A schematic block diagram of yet another data transmission device provided by at least one embodiment of the present disclosure is shown.
[0116] like Figure 4 As shown, the data transmission device 200 includes a distribution module 210 and a storage module 220 , and the distribution module 210 is coupled to the storage module 220 .
[0117] The distribution module 210 is configured to receive a first transaction and a second transaction respectively through a communication channel using a first virtual channel and a second virtual channel.
[0118] The storage module 220 provides a storage space (referred to herein as an object storage space), and the storage module 220 is configured to store the first transaction and the second transaction in a first storage subspace and a second storage subspace respectively allocated to the first virtual channel and the second virtual channel in the object storage space.
[0119] For example, the first transaction and the second transaction may be from a first source transaction module and have different transaction information.
[0120] For example, the first transaction and the second transaction may be issued by the first transaction source module in the aforementioned data transmission device 100 .
[0121] For example, as described above, in the data transmission device 100, the first aggregation module 120 sends the first transaction and the second transaction respectively through the communication channel using the first virtual channel and the second virtual channel after arbitrating the first transaction and the second transaction. The distribution module 210 can use the first virtual channel and the second virtual channel through the communication channel to receive the first transaction and the second transaction sent by the first aggregation module 120 after the arbitration respectively.
[0122] For example, the first virtual channel and the second virtual channel can be allocated by the allocation module 110 in the aforementioned data transmission device 100. The method of the allocation module 110 to allocate the first virtual channel and the second virtual channel to the first transaction and the second transaction respectively can refer to the relevant description of the aforementioned embodiment, which will not be repeated here.
[0123] For example, the distribution module 210 may receive transactions from a communication channel, which are transmitted through different virtual channels (eg, a first virtual channel, a second virtual channel, etc.).
[0124] For example, the distribution module 210 may provide each received transaction to the storage module 220 for storage based on the transaction information included in each transaction.
[0125] For example, the storage module 220 may store the received transaction in an appropriate storage location. The storage module 220 may include an object storage space, which may be further divided into a plurality of storage subspaces, for example, each storage subspace may correspond to a specific virtual channel.
[0126] For example, the object storage space may be a physical or logical storage space that may be used to store transactions received by the distribution module 210 .
[0127] For example, when the distribution module 210 sends the received transaction to the storage module 220, the storage module 220 may store the transaction in a corresponding storage subspace according to the virtual channel to which the transaction belongs.
[0128] For example, within the object storage space of the storage module 220, the storage module 220 may allocate a first storage subspace and a second storage subspace to the first virtual channel and the second virtual channel, respectively. This allocation may prevent transactions of different virtual channels from interfering with each other and may also facilitate subsequent retrieval and / or processing of specific transactions.
[0129] For example, the size of the corresponding storage space may be allocated to the virtual path according to the actual transaction volume.
[0130] For example, more storage space resources may be allocated to a virtual channel with high demand, and less storage space resources may be allocated to a virtual channel with low demand, thereby achieving reasonable allocation of storage space resources.
[0131] In at least one embodiment of the present disclosure, the data transmission device 200 realizes efficient reception, distribution and storage of transactions from different virtual channels through the collaborative work of the distribution module 210 and the storage module 220, so that the transactions are accurately processed and efficiently stored, thereby improving the performance and reliability of the data transmission device.
[0132] In some embodiments of the present disclosure, the distribution module 210 may be further configured to parse the first transaction and the second transaction to obtain transaction information of each of the first transaction and the second transaction, and provide the first transaction and the second transaction to the storage module 220 .
[0133] For example, after the distribution module 210 receives the first transaction and the second transaction respectively through the communication channel using the first virtual channel and the second virtual channel, it can parse the received first transaction and the second transaction to obtain the transaction information of the first transaction and the second transaction. The types of transaction information can be referred to the relevant description of the above embodiment, and will not be repeated here.
[0134] For example, after parsing to obtain the transaction information of each transaction, the distribution module 210 may process each transaction according to the transaction information (eg, classify, sort, propagate, or perform other processing operations, etc.).
[0135] For example, the distribution module 210 may also pass the first transaction and the second transaction (and possible transaction information included in the first transaction and the second transaction) to the storage module 220 for storage. For example, the first transaction may be stored in the first storage subspace, and the second transaction may be stored in the second storage subspace. Through the parsing of the distribution module 210 and the storage operation of the storage module 220, the data transmission device 200 may improve the integrity and orderliness of transaction transmission.
[0136] In some embodiments of the present disclosure, the storage module 220 may be further configured to configure corresponding storage subspaces of the object storage space for virtual channels corresponding to different transactions according to the allocation configuration information.
[0137] For example, as described above, the allocation configuration information may include the correspondence between a plurality of transaction information and a plurality of virtual channels.
[0138] For example, the object storage space of the storage module 220 may be divided into storage spaces according to the allocation configuration information, and corresponding storage subspaces may be configured for different virtual channels.
[0139] For example, if the allocation configuration information indicates that the first virtual channel processes transactions with a higher priority from a specific transaction source module, then a dedicated storage subspace (e.g., the first storage subspace) can be allocated to the first virtual channel in the object storage space of the storage module 220 for storing transactions transmitted through the first virtual channel.
[0140] For example, the allocation configuration information may be dynamically changed to meet the needs of different application scenarios. The storage module 220 may dynamically adjust different virtual channels to configure corresponding storage subspaces according to the new allocation configuration information. For example, when the allocation configuration information changes, the storage module 220 may reconfigure the object storage space so that the transaction can be correctly stored in the corresponding storage subspace, and the storage efficiency may also be improved.
[0141] In at least one embodiment of the present disclosure, by configuring the object storage space with corresponding storage subspaces for virtual channels corresponding to different transactions according to the allocation configuration information, the storage module 220 can enable transactions to be stored efficiently and orderly. This configuration method can not only improve the storage efficiency, but also enhance the flexibility of the data transmission device. At the same time, the configurability of the allocation configuration information enables the data transmission device to adapt to the needs of different application scenarios, thereby improving the stable operation of the data transmission device.
[0142] For example, in the embodiments of the present disclosure, the distribution module 210 and the storage module 220 may be hardware, software, firmware, or any feasible combination thereof. For example, the distribution module 210 and the storage module 220 may be dedicated or general circuits, chips, or devices, or may be a combination of a processor and a memory. The embodiments of the present disclosure do not limit the specific implementation forms of the above modules.
[0143] It should be noted that, in the embodiment of the present disclosure, each module of the data transmission device 200 may correspond to each step of the data transmission method (to be described below) provided by the present disclosure. Figure 4 The components and structures of the data transmission device 200 shown are merely exemplary and non-limiting. The data transmission device 200 may further include other components and structures as required.
[0144] Figure 5 A schematic block diagram of an application of a data transmission device (or a data processing system) provided by at least one embodiment of the present disclosure is shown.
[0145] like Figure 5 As shown, the data transmission device (or data processing system) includes a storage module 310, a distribution module 320, a first aggregation module 330, an allocation module 340 and a second aggregation module 360, and the data transmission device also includes multiple main ports (for example, a first main port, a second main port and a third main port).
[0146] exist Figure 5 In the embodiment, multiple transaction source modules (for example, the first transaction source module 351, the second transaction source module 352, and the fourth transaction source module 354) are respectively coupled to the second aggregation module 360, and multiple transaction source modules (for example, the third transaction source module 353, the fifth transaction source module 355, and the sixth transaction source module 356) are respectively coupled to the allocation module 340. The second aggregation module 360 is coupled to the allocation module 340 through the third transaction source module 353, the allocation module 340 is coupled to the first aggregation module 330, the first aggregation module 330 is coupled to the distribution module 320, and the distribution module 320 is coupled to the storage module 310.
[0147] For example, the second aggregation module 360 may be configured to receive multiple transactions issued by multiple transaction source modules, such as receiving a first transaction and a second transaction issued by the first transaction source module 351, and corresponding transactions issued by other transaction source modules (such as the second transaction source module 352 and the fourth transaction source module 354). For example, the first transaction and the second transaction have different transaction information.
[0148] For example, the second aggregation module 360 may be further configured to aggregate the received multiple transactions and perform corresponding processing operations (such as arbitration operations) before providing the transactions to the third transaction source module 353 .
[0149] For example, the allocation module 340 may be configured to receive multiple transactions issued by multiple transaction source modules, such as receiving multiple transactions provided by the third transaction source module 353 , the fifth transaction source module 355 , and the sixth transaction source module 356 .
[0150] For example, the distribution module 340 may be configured to receive transactions provided by the third transaction source module 353 through the first master port, receive transactions provided by the fifth transaction source module 355 through the second master port, and receive transactions provided by the sixth transaction source module 356 through the third master port.
[0151] For example, the allocation module 340 may be further configured to allocate corresponding virtual channels to the received multiple transactions respectively.
[0152] For example, the allocation module 340 may be further configured to allocate corresponding virtual channels to the received multiple transactions respectively according to the allocation configuration information.
[0153] For example, the data transmission device may further include a software configuration module (not shown in the figure), and the software configuration module may be configured to store allocation configuration information, for example, by storing the allocation configuration information through a register.
[0154] For example, the software configuration module may be further configured to provide allocation configuration information to the allocation module 340 and the distribution module 320 .
[0155] For example, the first aggregation module 330 may be configured to, after arbitrating the multiple transactions received by the allocation module 340 , send the multiple transactions through the communication channels using the multiple virtual channels allocated by the allocation module 340 .
[0156] For example, the distribution module 320 may be configured to respectively receive the multiple transactions sent by the first aggregation module 330 through the communication channel and using the multiple virtual channels allocated by the aforementioned allocation module 340 .
[0157] For example, the storage module 310 has an object storage space. For example, according to the allocation configuration information, a corresponding storage subspace can be allocated to each virtual channel in the object storage space of the storage module 310 to store transactions transmitted through each virtual channel.
[0158] For example, the first storage subspace, the second storage subspace, ..., the nth storage subspace can be respectively allocated to the first virtual channel, the second virtual channel, ..., the nth virtual channel in the object storage space of the storage module 310, where n is a positive integer and n is greater than 2.
[0159] For example, the storage module 310 may be configured to store the multiple transactions received by the distribution module 320 into respective storage subspaces allocated to respective virtual channels in the object storage space.
[0160] For example, Figure 5 Each of the modules and each of the main ports shown may be hardware, software, firmware, or any feasible combination thereof. For example, it may be a dedicated or general circuit, chip, or device, or a combination of a processor and a memory. The embodiments of the present disclosure do not limit the specific implementation of the above-mentioned units.
[0161] It should be noted that in the embodiments of the present disclosure, Figure 5 The various modules and the various main ports of the data transmission device shown may correspond to the various steps of the data transmission method (to be described below) provided in the present disclosure. Figure 5 The components and structures of the data transmission device shown are merely exemplary and non-limiting. The data transmission device may further include other components and structures as required.
[0162] Figure 6 A flow chart of a data transmission method provided by at least one embodiment of the present disclosure is shown.
[0163] like Figure 6 As shown, in some embodiments of the present disclosure, the data transmission method includes steps S500-S520. The data transmission method can be applied to the data transmission device 100 provided in the above embodiments, for example.
[0164] Step S500: receiving a first transaction and a second transaction issued by a first transaction source module among a plurality of transaction source modules.
[0165] For example, a first transaction may have different transaction information than a second transaction.
[0166] Step S510: Allocate a first virtual channel and a second virtual channel to the first transaction and the second transaction respectively.
[0167] Steps S500 - S510 , for example, may be applied to the allocation module 110 or the allocation module 340 provided in the aforementioned embodiment.
[0168] Step S520: After arbitrating the first transaction and the second transaction, respectively send the first transaction and the second transaction through the communication channel using the first virtual channel and the second virtual channel.
[0169] As for step S520, for example, it can be applied to the first aggregation module 120 or the first aggregation module 330 provided in the above-mentioned embodiment.
[0170] In some embodiments of the present disclosure, step S510 of the data transmission method may further include step S511.
[0171] Step S511: receiving a third transaction sent by a first transaction source module among multiple transaction source modules, and in response to the first transaction and the third transaction having the same transaction information, allocating a first virtual channel for the third transaction.
[0172] In some embodiments of the present disclosure, step S510 of the data transmission method may further include step S512.
[0173] Step S512: Allocate a first virtual channel and a second virtual channel to the first transaction and the second transaction respectively according to the allocation configuration information.
[0174] For example, the allocation configuration information may include a correspondence between a plurality of transaction information and a plurality of virtual channels.
[0175] In some embodiments of the present disclosure, each of the multiple types of transaction information includes: transaction source module identification information, transaction corresponding destination identification information, main port identification information, priority information and / or instruction type information.
[0176] In some embodiments of the present disclosure, the transaction source module identification information and / or the transaction corresponding destination identification information include delay sensitivity information. The delay sensitivity information is used to indicate the sensitivity of multiple transaction source modules to delay, or the sensitivity of the destination corresponding to the transaction corresponding destination identification information to delay.
[0177] In some embodiments of the present disclosure, in the allocation configuration information, the performance of multiple virtual channels corresponding to the multiple transaction information is configured accordingly according to the delay sensitivity information, priority information or instruction type information included in each of the multiple transaction information.
[0178] In some embodiments of the present disclosure, step S510 of the data transmission method may further include step S513.
[0179] Step S513: receiving a first transaction sent by a first transaction source module through a first master port.
[0180] For example, the primary port identification information in the transaction information of the first transaction is the first primary port.
[0181] In some embodiments of the present disclosure, in the allocation configuration information, at least two transaction information with the same transaction source module identification information correspond to different virtual channels, or at least two transaction information with different transaction source module identification information correspond to the same virtual channel.
[0182] In some embodiments of the present disclosure, step S510 of the data transmission method may further include step S514.
[0183] S514: Receive an allocation configuration information update instruction, and update the allocation configuration information.
[0184] In some embodiments of the present disclosure, step S510 of the data transmission method may further include step S515.
[0185] Step S515: receiving transactions sent by the first transaction source module and the second transaction source module, and providing the distribution module with the transactions received by the second aggregation module.
[0186] As for step S515, for example, it can also be applied to the second aggregation module 360 provided in the above embodiment.
[0187] In some embodiments of the present disclosure, step S515 of the data transmission method may further include step S5151.
[0188] Step S5151: Provide the transaction received by the second aggregation module to the distribution module through the third transaction source module.
[0189] Figure 7 A flowchart of another data transmission method provided by at least one embodiment of the present disclosure is shown.
[0190] like Figure 7 As shown, in some embodiments of the present disclosure, the data transmission method includes steps S600-S610. The data transmission method can be applied to the data transmission device 200 provided in the above embodiments, for example.
[0191] Step S600: receiving the first transaction and the second transaction respectively through the communication channel using the first virtual channel and the second virtual channel. Step S600 may be applied to the distribution module 210 or the distribution module 320 provided in the above embodiments, for example.
[0192] For example, the first transaction and the second transaction are from a first source transaction module and have different transaction information.
[0193] Step S610: Store the first transaction and the second transaction in the first storage subspace and the second storage subspace respectively allocated to the first virtual channel and the second virtual channel in the object storage space. Step S610 may be applied to the storage module 220 or the storage module 310 provided in the above embodiments, for example.
[0194] In some embodiments of the present disclosure, step S600 of the data transmission method may further include step S601.
[0195] Step S601: Parse the first transaction and the second transaction to obtain transaction information of each of the first transaction and the second transaction, and provide the first transaction and the second transaction to a storage module.
[0196] In some embodiments of the present disclosure, step S610 of the data transmission method may further include step S611.
[0197] Step S611: According to the allocation configuration information, the object storage space is configured with corresponding storage subspaces for virtual channels corresponding to different transactions.
[0198] For example, the allocation configuration information may include a correspondence between a plurality of transaction information and a plurality of virtual channels.
[0199] It should be noted that, for the relevant contents of the functions or beneficial effects of each step in the data transmission method provided in any of the above embodiments of the present disclosure, for example, reference can be made to the relevant description of the data transmission device provided in any of the above embodiments, and will not be repeated here.
[0200] Figure 8 A schematic block diagram of an electronic device provided by at least one embodiment of the present disclosure is shown.
[0201] At least some embodiments of the present disclosure also provide an electronic device, such as Figure 8 As shown, the electronic device 700 includes a data transmission device 708. For example, the data transmission device 708 can be a data transmission device provided by any embodiment of the present disclosure, can be implemented as a sender or receiver of instructions / data, and can be a processor, memory or I / O device, etc.
[0202] The electronic device 700 in the embodiment of the present disclosure may include mobile terminals such as mobile phones, laptop computers, digital broadcast receivers, PDAs (personal digital assistants), PADs (tablet computers), PMPs (portable multimedia players), vehicle-mounted terminals (such as vehicle-mounted navigation terminals), etc., as well as any devices such as digital TVs, desktop computers, servers, etc., and may also be a combination of any data processing devices and hardware, which is not limited by the embodiments of the present disclosure.
[0203] Figure 8The electronic device 700 shown is merely an example and should not bring any limitation to the functions and scope of use of the embodiments of the present disclosure.
[0204] For example, Figure 8 As shown, in some examples, the electronic device 700 includes a processor 701 (such as a central processing unit, a graphics processor, etc.), which may include a processor involved in any embodiment of the present disclosure, and the processor 701 can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 702 or a program loaded from a storage device (not shown) to a random access memory (RAM) 703. In RAM 703, various programs and data required for the operation of the computer system are also stored. The processor 701, ROM 702, and RAM 703 are connected to each other through a communication channel 704. An input / output (I / O) interface 705 is also connected to the communication channel 704.
[0205] For example, the following components may be connected to the I / O interface 705: an input device 706 including, for example, a touch screen, a touchpad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; an output device 707 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; a storage device including, for example, a magnetic tape, a hard disk, etc.; and a communication device 709 which may also include, for example, a network interface card such as a LAN card, a modem, etc. The communication device 709 may allow the electronic device 700 to communicate with other devices wirelessly or by wire to exchange data, performing communication processing via a network such as the Internet. The drive 710 is also connected to the I / O interface 705 as needed. Removable media 711, such as magnetic disks, optical disks, magneto-optical disks, semiconductor memories, etc., are installed on the drive 710 as needed, so that the computer program read therefrom can be installed into the storage device as needed. Although Figure 8 The electronic device 700 is shown to include various devices, but it should be understood that it is not required to implement or include all the devices shown. More or fewer devices may be implemented or included instead.
[0206] For example, the electronic device 700 may further include a peripheral interface (not shown in the figure), etc. The peripheral interface may be various types of interfaces, such as a USB interface, a lightning interface, etc. The communication device 709 may communicate with a network and other devices through wireless communication, such as the Internet, an intranet and / or a wireless network such as a cellular phone network, a wireless local area network (LAN) and / or a metropolitan area network (MAN). Wireless communication may use any of a variety of communication standards, protocols, and techniques, including, but not limited to, Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), Wideband Code Division Multiple Access (W-CDMA), Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Bluetooth, Wi-Fi (e.g., based on IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, and / or IEEE 802.11n standards), Voice over Internet Protocol (VoIP), Wi-MAX, protocols for email, instant messaging, and / or Short Message Service (SMS), or any other suitable communication protocol.
[0207] It should be noted that in the embodiments of the present disclosure, the specific functions and technical effects of the electronic device 700 can be referred to the above description of the data transmission device and the data transmission method, and will not be repeated here.
[0208] Fig. 9 A schematic block diagram showing another electronic device provided by at least one embodiment of the present disclosure
[0209] At least one embodiment of the present disclosure further provides an electronic device, such as Fig. 9 As shown, the electronic device 800 includes a data transmission device 810. The data transmission device 810 may be, for example, the data transmission device 100 provided in any of the above embodiments.
[0210] For example, the electronic device 800 may further include a processor 820 and a memory 830. The memory 830 is used to store computer-readable instructions (e.g., one or more computer program modules) in a non-temporary manner. The processor 820 is used to execute the computer-readable instructions, and when the computer-readable instructions are executed by the processor 820, one or more steps in the data transmission method described above may be executed. The memory 830 and the processor 820 may be interconnected through a bus or link, in a wired, wireless, and / or other form of communication medium, etc., and the embodiments of the present disclosure are not limited to this.
[0211] For example, the processor 820 may be a central processing unit (CPU), a graphics processing unit (GPU), or other forms of processing units having data processing capabilities and / or program execution capabilities. For example, the central processing unit (CPU) may be a RISC, X86, or ARM architecture, etc. The processor 820 may be a general-purpose processor or a dedicated processor, and may control other components in the electronic device 800 to perform desired functions.
[0212] For example, the memory 830 may include any combination of one or more computer program products, and the computer program product may include various forms of computer-readable storage media, such as volatile memory and / or non-volatile memory. Volatile memory may include, for example, random access memory (RAM) and / or cache memory (cache), etc. Non-volatile memory may include, for example, read-only memory (ROM), hard disk, erasable programmable read-only memory (EPROM), portable compact disk read-only memory (CD-ROM), USB memory, flash memory, etc. One or more computer program modules may be stored on the computer-readable storage medium, and the processor 820 may run one or more computer program modules to implement various functions of the electronic device 800. Various applications and various data, as well as various data used and / or generated by the application, etc. may also be stored in the computer-readable storage medium.
[0213] It should be noted that in the embodiments of the present disclosure, the specific functions and technical effects of the electronic device 800 can be referred to the above description of the data transmission device and the data transmission method, and will not be repeated here.
[0214] At least one embodiment of the present disclosure further provides a non-transitory computer-readable storage medium, which is used to non-transitorily store computer-readable instructions, and when the computer-readable instructions are executed by a computer, the above-mentioned data transmission method can be implemented.
[0215] Fig.10 A schematic diagram of a computer-readable storage medium provided for some embodiments of the present disclosure. Fig.10 As shown, the computer-readable storage medium 900 is used to store computer-readable instructions 910. For example, when the computer-readable instructions 910 are executed by a computer, one or more steps in the data transmission method described above can be executed.
[0216] For example, the computer-readable storage medium 900 may be applied to the electronic device 800 or the electronic device 700. For example, the relevant description of the non-volatile computer-readable storage medium 900 may also refer to Figure 8 The storage device in the electronic device 700 shown in FIG. Fig. 9The corresponding description of the memory 830 in the electronic device 800 is shown and will not be repeated here.
[0217] It should be noted that, in the embodiments of the present disclosure, the specific functions and technical effects of the computer-readable storage medium 900 can be referred to the above description of the data transmission device and the data transmission method, and will not be repeated here.
[0218] There are a few points to note:
[0219] (1) The drawings of the embodiments of the present disclosure only relate to the structures involved in the embodiments of the present disclosure. Other structures may refer to the general design.
[0220] (2) In the absence of conflict, the embodiments of the present disclosure and the features therein may be combined with each other to obtain new embodiments.
[0221] The above description is only a specific implementation of the present disclosure, but the protection scope of the present disclosure is not limited thereto. The protection scope of the present disclosure shall be based on the protection scope of the claims.
Claims
1. A data transmission device, comprising: an allocation module configured to receive a first transaction and a second transaction issued by a first transaction source module among a plurality of transaction source modules, and allocate a first virtual channel and a second virtual channel to the first transaction and the second transaction respectively, wherein the first transaction has different transaction information than the second transaction; and The first aggregation module is configured to, after arbitrating the first transaction and the second transaction, send the first transaction and the second transaction respectively through a communication channel using the first virtual channel and the second virtual channel.
2. The data transmission device according to claim 1, wherein: The allocation module is further configured to receive a third transaction issued by a first transaction source module among the plurality of transaction source modules, and in response to the first transaction and the third transaction having the same transaction information, allocate the first virtual channel to the third transaction.
3. The data transmission device according to claim 1, wherein: The allocation module is further configured to allocate the first virtual channel and the second virtual channel to the first transaction and the second transaction respectively according to the allocation configuration information. The allocation configuration information includes the corresponding relationship between multiple types of transaction information and multiple virtual channels.
4. The data transmission device according to claim 3, wherein: Each of the multiple types of transaction information includes: transaction source module identification information, transaction corresponding destination identification information, main port identification information, priority information and / or instruction type information.
5. The data transmission device according to claim 4, wherein: The transaction source module identification information and / or the transaction corresponding destination identification information include delay sensitive information, The delay sensitivity information is used to indicate the sensitivity of the multiple transaction source modules to delay, or the sensitivity of the destination corresponding to the transaction corresponding destination identification information to delay.
6. The data transmission device according to claim 5, wherein: In the allocation configuration information, the performance of multiple virtual channels corresponding to the multiple transaction information is configured accordingly according to the delay-sensitive information, priority information or instruction type information respectively included in the multiple transaction information.
7. The data transmission device according to claim 4, wherein: The allocation module is further configured to receive the first transaction sent by the first transaction source module through a first master port, wherein the master port identification information in the transaction information of the first transaction is the first master port.
8. The data transmission device according to claim 4, wherein: In the allocation configuration information, at least two pieces of transaction information with the same transaction source module identification information correspond to different virtual channels, or at least two pieces of transaction information with different transaction source module identification information correspond to the same virtual channel.
9. The data transmission device according to claim 4, wherein: The allocation module is further configured to receive an allocation configuration information update instruction and update the allocation configuration information.
10. The data transmission device according to any one of claims 1 to 9, wherein: The plurality of transaction source modules further comprises a second transaction source module; The data transmission device also includes: The second aggregation module is coupled to the first transaction source module, the second transaction source module and the allocation module respectively, and is configured to receive transactions issued by the first transaction source module and the second transaction source module, and provide the allocation module with transactions received by the second aggregation module.
11. The data transmission device according to claim 10, wherein: The plurality of transaction source modules further include a third transaction source module, wherein the third transaction source module is coupled to the allocation module; and The second aggregation module is coupled to the third transaction source module, coupled to the allocation module via the third transaction source module, and provides the allocation module with the transaction received by the second aggregation module through the third transaction source module.
12. A data transmission device, comprising: a distribution module configured to receive a first transaction and a second transaction respectively through a communication channel using a first virtual channel and a second virtual channel, wherein the first transaction and the second transaction are from a first source transaction module and have different transaction information; and The storage module has an object storage space and is configured to store the first transaction and the second transaction in a first storage subspace and a second storage subspace respectively allocated to the first virtual channel and the second virtual channel in the object storage space.
13. The data transmission device according to claim 12, wherein: The distribution module is further configured to parse the first transaction and the second transaction to obtain transaction information of each of the first transaction and the second transaction, and provide the first transaction and the second transaction to the storage module.
14. The data transmission device according to claim 13, wherein: The storage module is further configured to configure corresponding storage subspaces of the object storage space for virtual channels corresponding to different transactions according to the allocation configuration information. The allocation configuration information includes the corresponding relationship between multiple types of transaction information and multiple virtual channels.
15. A data transmission method, comprising: receiving a first transaction and a second transaction issued by a first transaction source module among a plurality of transaction source modules; Allocating a first virtual channel and a second virtual channel to the first transaction and the second transaction respectively; as well as After arbitrating the first transaction and the second transaction, respectively sending the first transaction and the second transaction through a communication channel using the first virtual channel and the second virtual channel, The first transaction has different transaction information than the second transaction.
16. A data transmission method, comprising: receiving a first transaction and a second transaction respectively using a first virtual channel and a second virtual channel through a communication channel, wherein the first transaction and the second transaction are from a first source transaction module and have different transaction information; and The first transaction and the second transaction are stored in a first storage subspace and a second storage subspace respectively allocated to the first virtual channel and the second virtual channel in the object storage space.
17. An electronic device, comprising the data transmission device described in any one of claims 1-11 and / or the data transmission device described in any one of claims 12-14.
18. The electronic device according to claim 17, further comprising the communication channel, wherein: The communication channel is coupled to the data transmission device.
19. An electronic device comprising: processor; as well as A memory, wherein the memory stores at least one computer program, and when the at least one computer program is executed by the processor, the data transmission method according to claim 15 or 16 is implemented.
20. A non-transitory computer-readable storage medium, used for non-temporarily storing computer-readable instructions, which, when executed by a computer, implements the data transmission method according to claim 15 or 16.