Data transmission apparatus, data transmission method, electronic device and storage medium
By designing a data transmission device that supports both multicast and unicast, the inefficiency of CrossBar technology in multi-core processors is solved, achieving efficient and flexible data access and robustness, and ensuring data consistency and efficient operation of processor cores.
Patent Information
- Application Number
- PCT/CN2024/135734
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-05-20
- Filing Date
- 2024-11-29
- Publication Date
- 2025-11-27
Smart Images

Figure CN2024135734_27112025_PF_FP_ABST
Abstract
Description
Data transmission apparatus, data transmission method, electronic device, and storage medium
[0001] Cross-reference to Related Applications
[0002] This application claims priority to the Chinese patent application No. 202410627298.2, filed on May 20, 2024, entitled “Data transmission apparatus, data transmission method, electronic device, and storage medium”, the content of which is incorporated herein by reference in its entirety. TECHNICAL FIELD
[0003] The present application relates to a data transmission apparatus, a data transmission method, an electronic device, and a computer-readable storage medium. BACKGROUND
[0004] In a multi-core processor, a command processor (CP) generates a data consistency instruction after completing a task, and sends the data consistency instruction to a plurality of caches, so that some data in the caches are synchronized to a memory or invalidated, to achieve data consistency. A processor core can also access data of a certain cache in a near or far end through a bus according to a physical address, to achieve data read and write. SUMMARY
[0005] According to various embodiments disclosed in the present application, a data transmission apparatus, a data transmission method, an electronic device, and a storage medium are provided.
[0006] A data transmission apparatus is configured to be connected with a plurality of request apparatuses and a plurality of receiving apparatuses, and includes a plurality of distribution modules, a plurality of forwarding modules, and an analysis module. The plurality of distribution modules correspond to the plurality of request apparatuses respectively. The plurality of forwarding modules correspond to the plurality of receiving apparatuses respectively. The analysis module is configured to receive at least one request sent by each of the request apparatuses, and obtain a transmission type corresponding to each of the requests by analysis, and send the request to a corresponding distribution module. Each of the distribution modules is configured to send the request to one or more of the forwarding modules according to the transmission type corresponding to the request in response to receiving the request sent by the analysis module. Each of the forwarding modules is configured to send the request to a corresponding receiving apparatus in response to receiving the request sent by the distribution module.
[0007] A data transmission method for a data transmission device configured to connect with a plurality of request devices and a plurality of receiving devices, the data transmission device comprising an analysis module, a plurality of distribution modules corresponding to the plurality of request devices respectively, and a plurality of forwarding modules corresponding to the plurality of receiving devices respectively, the method comprising: the analysis module receiving at least one request sent by each of the request devices, for each of the requests, analyzing a transmission type corresponding to the request, and sending the request to a corresponding distribution module; each of the distribution modules, in response to receiving the request sent by the analysis module, sending the request to one or more of the forwarding modules according to the transmission type corresponding to the request; and each of the forwarding modules, in response to receiving the request sent by the distribution module, sending the request to a corresponding receiving device.
[0008] An electronic device comprising a plurality of request devices, a plurality of receiving devices, and a data transmission device configured to connect with the plurality of request devices and the plurality of receiving devices, the data transmission device comprising a plurality of distribution modules corresponding to the plurality of request devices respectively, a plurality of forwarding modules corresponding to the plurality of receiving devices respectively, and an analysis module configured to receive at least one request sent by each of the request devices, for each of the requests, analyze a transmission type corresponding to the request, and send the request to a corresponding distribution module; wherein each of the distribution modules is configured to, in response to receiving the request sent by the analysis module, send the request to one or more of the forwarding modules according to the transmission type corresponding to the request; and each of the forwarding modules is configured to, in response to receiving the request sent by the distribution module, send the request to a corresponding receiving device.
[0009] The details of one or more embodiments of the application are set forth in the accompanying drawings and the description below. Other features and advantages of the application will become apparent from the description, the drawings, and the claims. BRIEF DESCRIPTION OF DRAWINGS
[0010] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following will briefly introduce the drawings needed to be used in the embodiments. Obviously, the drawings in the following description are only some embodiments of the present application, and for those skilled in the art, other drawings can also be obtained without creative labor based on these drawings.
[0011] FIG. 1 is a schematic diagram of a data transmission.
[0012] FIG. 2 is a schematic diagram of a data transmission device according to one or more embodiments.
[0013] FIG. 3 is a schematic diagram of another data transmission apparatus according to one or more embodiments.
[0014] FIG. 4 is a schematic diagram of another data transmission apparatus according to one or more embodiments.
[0015] FIG. 5 is a schematic diagram of another data transmission apparatus according to one or more embodiments.
[0016] FIG. 6 is a schematic diagram of another data transmission apparatus according to one or more embodiments.
[0017] FIG. 7 is a flowchart of a data transmission method according to one or more embodiments. DETAILED DESCRIPTION
[0018] In order to make the objects, technical solutions and advantages of the embodiments of the present disclosure clearer, the technical solutions of the embodiments of the present disclosure will be described clearly and completely below with reference to the drawings of the embodiments of the present disclosure. Obviously, the described embodiments are some but not all of the embodiments of the present disclosure. Based on the described embodiments of the present disclosure, all other embodiments obtained by those of ordinary skill in the art without creative effort belong to the scope of the present disclosure.
[0019] Unless otherwise defined, technical terms or scientific terms used in the present disclosure should be understood as having the same meaning as commonly understood by one of ordinary skill in the art to which the present disclosure belongs. The terms "first", "second", and similar terms used in the present disclosure do not denote any order, quantity, or importance, but are used to distinguish different components. Similarly, the terms "one", "a", or "the" and similar terms do not denote a quantity restriction, but mean that there is at least one. The terms "include", "comprise", and similar terms mean that the elements or objects before the terms encompass the elements or objects listed after the terms and their equivalents, and do not exclude other elements or objects. The terms "connect" or "connected" and similar terms do not mean a physical or mechanical connection, but can include an electrical connection, whether direct or indirect. The terms "upper", "lower", "left", "right", and the like are used only to indicate relative positional relationships, and when the absolute positions of the described objects are changed, the relative positional relationships can also be changed accordingly.
[0020] The AXI bus is an on-chip bus oriented to high performance, high bandwidth, and low latency, and is widely used in data transmission of high-performance processors. In order to meet the requirements of cross interconnection of multi-host devices accessing multi-slave devices and high-bandwidth data transmission, the AXI CrossBar (a bus structure) is widely used.
[0021] FIG. 1 shows a schematic diagram of data transmission.
[0022] As shown in FIG. 1, a device initiating an access request can be referred to as a master (Master, hereinafter also abbreviated as MST), and a device receiving and processing the access request can be referred to as a slave (Slave, hereinafter also abbreviated as SLV). Based on an AXI bus, Master0 can send a certain number of requests to different slaves (such as Slave0 / 1 / 2 / … / n) under certain conditions, and Master1 can also send a certain number of requests to different slaves under certain conditions. In the same clock cycle, a slave can receive a request sent by a master. If Master0 and Master1 send requests to a slave at the same time, the two requests from different sources need to be arbitrated, and the arbitrated request can continue to be sent to the corresponding slave.
[0023] The existing CrossBar technology mainly uses arbitration mechanism to realize bus channel selection by analyzing the request / address sent by the master, and the unicast is delivered to a certain slave, and the request cannot be broadcast to all slaves at the same time. In some multicast scenarios, the master needs to generate multiple requests for multiple slaves respectively, and send multiple requests through CrossBar. This way is low in efficiency, and since all accesses are transmitted in the form of unicast, different types of accesses cannot be flexibly configured.
[0024] At least one embodiment of the present disclosure provides a data transmission device, a data transmission method, an electronic device and a computer readable storage medium. The data transmission device is configured to be connected with a plurality of request devices and a plurality of receiving devices, and the data transmission device comprises a plurality of distribution modules, a plurality of forwarding modules and an analysis module. The plurality of distribution modules correspond to the plurality of request devices respectively, and the plurality of forwarding modules correspond to the plurality of receiving devices respectively. The analysis module is configured to receive at least one request sent by each request device, obtain a transmission type corresponding to the request for each request through analysis, and send the request to a corresponding distribution module, wherein the transmission type includes multicast and unicast. Each distribution module is configured to send the request to one or more of the plurality of forwarding modules according to the transmission type corresponding to the request in response to receiving the request sent by the analysis module. Each forwarding module is configured to send the request to a corresponding receiving device in response to receiving the request sent by the distribution module.
[0025] The data transmission device can parse the transmission type of each request and multicast and unicast the request based on the transmission type, that is, the request can be delivered to a certain slave device in a point-to-point manner, or the request can be transmitted in a multicast manner and sent to multiple slave devices according to requirements, and different routing modes can be flexibly selected for different requests. The data transmission device can be used in application scenarios of accessing multiple slave devices, and can realize the purpose of batch operating all slave devices through one request, thereby improving the processing efficiency. In addition, the data transmission device can process different types of requests, and thus the configuration of strategies such as arbitration strategies can be performed for different types of requests to achieve better effects. The arbitration strategies will be described in detail in the following embodiments.
[0026] FIG. 2 shows a schematic diagram of a data transmission device according to at least one embodiment of the present disclosure.
[0027] As shown in FIG. 2, the data transmission device 210 is configured to be connected with a plurality of request devices 220 and a plurality of receiving devices 230. The data transmission device 210 includes an analysis module 211, a plurality of distribution modules 212, and a plurality of forwarding modules 213. The plurality of distribution modules 212 correspond to the plurality of request devices 220 respectively, and the plurality of forwarding modules 213 correspond to the plurality of receiving devices 230 respectively. The analysis module 211 is configured to receive at least one request sent by each request device 220, parse the transmission type corresponding to each request, and send the request to the distribution module 212 corresponding to the request. The distribution module 212 corresponding to the request can be the distribution module 212 corresponding to the request device 220 sending the request. Each distribution module 212 is configured to send the request to one or more of the plurality of forwarding modules 213 according to the transmission type corresponding to the request in response to receiving the request sent by the analysis module 211. Each forwarding module 213 is configured to send the request to the receiving device 230 corresponding to the forwarding module in response to receiving the request sent by the distribution module 212.
[0028] For example, the data transmission device can be used in a CrossBar (crossbar matrix).
[0029] For example, each request device 220 can act as a master. In some embodiments, each request device 220 can be a processor core or a processing unit in a processor core, each request device 220 is connected to an interface of the data transfer device 210, and each request device 220 can access all the receiving devices connected to the data transfer device 210. In other embodiments, each request device can be an intermediate node connected between a processor core and the data transfer device 210, each processor core can be connected to two or more interfaces of the data transfer device 210 through two or more intermediate nodes, the processor core can distribute requests to different interfaces according to different address ranges, and the processor core acting as an access source can implement access to all the receiving devices. In other embodiments, two or more request devices 220 can be regarded as a processor core, each processor core can be connected to two or more interfaces of the data transfer device 210, the processor core can distribute requests to different interfaces according to different address ranges, and the processor core acting as an access source can implement access to all the receiving devices.
[0030] For example, each receiving device 220 can act as a slave. The receiving device can be, for example, a cache, a memory, a memory controller, or the like, which is a device for storing or managing data. In the following embodiments, a cache is taken as an example for illustration. The cache is located between a processor core and an HBM (High Bandwidth Memory), and is used to cache data loaded or stored by the processor core, so as to improve the read / write speed. In order to improve the read / write bandwidth of the cache and improve the robustness of the cache, the cache can be optimized as a cache group, which is divided into four cache banks (such as Cache0- Cache3) according to a 512B address, so that the total bandwidth is improved. When a task is completed, the instruction processing unit CP of the processor core can issue a command request to process the data of the four cache banks at the same time, the command is used to make the cache flush dirty cacheline to the HBM or perform invalid processing, wherein the dirty cacheline refers to data in the cache line that has been modified and has not been written back to the memory (such as the HBM), at this time, the data in the memory and the data in the cache line are inconsistent. After the command request is issued by the master and is arbitrated in the CrossBar, the arbitrated command request can be broadcast to all valid caches at the same time.
[0031] For example, the "multiple" in the embodiments of the present disclosure can be two or more, for example, the multiple request devices 220 described above can be two or more request devices, and the multiple receiving devices 230 described above can be two or more receiving devices. In the following embodiments, two request devices and four receiving devices are taken as examples for illustration.
[0032] For example, the multiple distribution modules 212 in the data transmission device are connected between the parsing module 211 and the multiple forwarding modules 213. The multiple distribution modules 212 correspond one-to-one to the multiple request devices 220, and the multiple forwarding modules 213 correspond one-to-one to the multiple receiving devices 230. Each distribution module is connected to the multiple forwarding modules, and each distribution module can send data to any forwarding module or receive data from any forwarding module.
[0033] For example, the request can include a read-write request or a command request, and the command request can be, for example, a data consistency command request.
[0034] For example, the multiple request devices include a first request device, and the multiple distribution modules include a first distribution module corresponding to the first request device. The first request device can send a first request to the parsing module 211 in the data transmission device, and the parsing module 211 can parse the data packet of the first request to obtain a transmission type of the first request. The transmission type can include, for example, multicast and unicast. Multicast can include sending a data consistency instruction to at least part of the multiple receiving devices, and unicast can include sending a read-write request to one of the multiple receiving devices based on a destination address. The parsing module 211 provides the first request and its transmission type to the first distribution module, and the first distribution module sends the first request to one or more of the multiple forwarding modules according to the transmission type. In the following embodiments, multicast is also referred to as broadcast.
[0035] For example, the parsing module is further configured to parse a destination address of the request. Each distribution module is configured to: in a case where the transmission type corresponding to the request is multicast, send the request to multiple target forwarding modules in the multiple forwarding modules; and in a case where the transmission type corresponding to the request is unicast, send the request to one target forwarding module in the multiple forwarding modules according to the destination address corresponding to the request.
[0036] For example, in a case where the transmission type corresponding to the first request is multicast, the first distribution module can send the first request to all or part of the forwarding modules, and each forwarding module that receives the first request can send the first request to the corresponding receiving device.
[0037] For example, the plurality of receiving devices 230 can include a first receiving device, and the plurality of forwarding modules 213 can include a first forwarding module corresponding to the first receiving device. In a case where the transmission type corresponding to the first request is unicast, if the destination address of the first request corresponds to the first receiving device, the first distribution module can send the first request to the first forwarding module, and the first forwarding module sends the first request to the first receiving device.
[0038] The data transmission device according to the embodiments of the present disclosure can parse the transmission type of each request and perform multicast and unicast on the request based on the transmission type, that is, the request can be transmitted to a certain slave device point by point, or the request can be transmitted to multiple slave devices in multicast mode according to the demand, and the routing mode can be flexibly selected for different requests. The data transmission device can be used in an application scenario of accessing multiple slave devices, and can realize the purpose of batch operating all slave devices through one request, thereby improving the processing efficiency. Moreover, the data transmission device according to the embodiments of the present disclosure can process different types of requests, and thus the configuration of strategies such as arbitration strategies can be performed for different types of requests to achieve better effects. The arbitration strategies will be described in detail in the following embodiments.
[0039] For example, each distribution module includes at least one distributor, each distributor includes a first interface and a plurality of second interfaces; each forwarding module includes at least one selector, each selector includes a third interface and a plurality of fourth interfaces; the first interface of each distributor is connected with the parsing module, and the plurality of second interfaces of each distributor are connected with the plurality of forwarding modules; the third interface of each selector is connected with the corresponding receiving device, and the plurality of fourth interfaces of each selector are connected with the plurality of distribution modules.
[0040] FIG. 3 shows a schematic diagram of another data transmission device according to at least one embodiment of the present disclosure.
[0041] As shown in FIG. 3, MST0 and MST1 represent two request devices, Cache0- Cache3 represent four receiving devices, Cache0- Cache3 can also be represented as SLV0- SLV3, and RDFC represents a parsing module. Each distribution module can include a distributor DMUX, and the distributor DMUX is single-input and multiple-output. Each forwarding module can include a selector MUX, and the selector MUX is multiple-input and single-output. The first interface of each distributor DMUX is connected with the parsing module RDFC, the plurality of second interfaces of each distributor DMUX are respectively connected with the plurality of selectors MUX, the third interface of each selector MUX is respectively connected with one Cache, and the plurality of fourth interfaces of each selector MUX are respectively connected with the plurality of distributors DMUX.
[0042] For example, in other embodiments, each distribution module can also include two or more distributors DMUX, for example, each distribution module can also include two distributors DMUX, and the two distributors DMUX are respectively used to process multicast requests and unicast requests (also referred to as ordinary unicast requests or ordinary requests below).
[0043] FIG. 4 shows a schematic diagram of another data transmission device provided by at least one embodiment of the present disclosure.
[0044] As shown in FIG. 4, the AXI protocol includes five channels AW / W / AR / R / B, that is, each interface (such as each interface of the parsing module, each interface of the distribution module, and each interface of the forwarding module) can include five sub-interfaces, which correspond to the five channels respectively. The AW channel is used to send write request information, the W channel is used to send data to be written, the B channel is used to transmit response information returned after the receiving device processes the write request, the AR channel is used to transmit read request, and the R channel is used to transmit response information returned after the receiving device processes the read request. The lines and arrows shown in FIG. 3 can be used to represent the transmission paths of the three channels AR / AW / W.
[0045] For example, there is a connection between the distributor DMUX and the selector MUX, which is not shown in the figure. REGSLICE represents a register slice, a kind of pipeline register, which is used to isolate the timing path between the master device and the slave device. The requests sent by MST0 and MST1 pass through the REGSLICE to break the timing, and then all the requests are sent to the parsing module RDFC. At the outlet of the CrossBar, the requests are also transmitted to the respective Cache after passing through the REGSLICE. The parsing module RDFC can respectively decode and process the request types from MST0 or MST1, and distinguish whether the current request is a multicast request (such as a consistency command request) or a unicast request (such as an ordinary access request) through a specific signal.
[0046] For example, the plurality of receiving devices are divided into a plurality of device groups, the plurality of device groups correspond to a plurality of request devices respectively, and the plurality of forwarding modules include a plurality of module groups corresponding to the plurality of device groups respectively; each distribution module is configured to, in a case where a transmission type corresponding to a request is multicast, send the request to each forwarding module in a corresponding module group.
[0047] For example, one processor core connects with two request devices MST0 and MST1 to two interfaces of the data transfer device, and accesses Cache0~Cache3 through two independent groups of channels of the data transfer device, which can be called odd channel ODD and even channel EVEN respectively. The processor core can distribute the requests to the two request devices MST0 and MST1 according to the physical address, and MST0 accesses Cache1 and Cache3 through DMUX0, MUX1 and MUX3, and MST1 accesses Cache0 and Cache2 through DMUX1, MUX0 and MUX2. When the analysis module RDFC receives and analyzes the multicast request of MST0, the multicast request of MST0 is sent to DMUX0, and DMUX0 sends the multicast request to MUX1 and MUX3 to send to Cache1 and Cache3 through MUX1 and MUX3 respectively. When the analysis module RDFC receives and analyzes the unicast request of MST0 to Cache1, the unicast request of MST0 is sent to DMUX0, and DMUX0 sends the multicast request to MUX1 to send to Cache1 through MUX1. The other group of channels is the same. Based on this way, the requests can be distributed to two or more groups of channel transmission, further improving the transmission efficiency.
[0048] For example, in another embodiment, each request device can access all Cache0~Cache3, and each DMUX connects MUX0~MUX3. Each Master connects with one interface of the data transfer device, and accesses Cache0~Cache3 through two groups of channels of the data transfer device, which can be called odd channel ODD and even channel EVEN respectively. MST0 accesses Cache0~Cache3 through DMUX0, MUX0~MUX3, and MST1 accesses Cache0~Cache3 through DMUX1, MUX0~MUX3. For example, when the analysis module RDFC receives and analyzes the multicast request of MST0, the multicast request of MST0 is sent to DMUX0, and DMUX0 sends the multicast request to MUX0~MUX3, and MUX0~MUX3 sends the request to Cache0~Cache3 respectively.
[0049] If the command requests (CP commands) generated by the command processing units (CPs) in the processor cores are accessed from different interfaces according to different address intervals and broadcast to all the caches in the cache group through different groups of channels, the CP commands issued by multiple masters will conflict in the broadcasting process, and the CP command issued by a master will also conflict with the normal requests of other masters accessing a specific cache. To solve this problem, the disclosure provides the following embodiments.
[0050] For example, the at least one request includes a first request and a second request; the parsing module is further configured to: if the first request and the second request are received within one clock cycle, according to an arbitration strategy, select one request to be processed preferentially from the first request and the second request.
[0051] For example, the parsing module is further configured to: in a case where the transmission type of the first request is multicast and the transmission type of the second request is unicast, preferentially process the first request. That is, multicast requests have a higher priority than unicast requests, and since multicast requests include CP commands for implementing data consistency, preferentially processing multicast requests can help maintain data consistency and reduce or avoid reading incorrect data.
[0052] For example, in a case where the transmission types of the first request and the second request are both multicast, first determine whether there is a multicast request on the group of channels corresponding to MST0 or MST1 that has not received a response indicating that processing is complete. If there is, the first request (multicast) or the second request (multicast) from MST0 or MST1 will be blocked. If not, the first request and the second request will be selected to be processed preferentially through a polling algorithm. That is, multicast requests and multicast requests have the same priority.
[0053] For example, in a case where the transmission types of the first request and the second request are both unicast, first determine whether there is a multicast request on the group of channels corresponding to MST0 or MST1 that has not received a response indicating that processing is complete. If there is, the first request (unicast) or the second request (unicast) from MST0 or MST1 will be blocked. If not, the first request and the second request will be selected to be processed preferentially through a polling algorithm. That is, unicast requests and unicast requests have the same priority.
[0054] For example, the at least one request comprises a first request, the first request corresponds to a multicast transmission type, and the first request corresponds to a plurality of target receiving devices in the plurality of receiving devices. The parsing module is further configured to, in a case that the first request is sent to the plurality of target receiving devices and feedback data from the plurality of target receiving devices has not been received, if a second request is received, stop processing the second request until the feedback data from the plurality of target receiving devices is received.
[0055] For example, in the RDFC module, a flag is set for each of the MST0 and the MST1 for a multicast request. In a case that each Master can access all the Cache0~Cache3, if the flag0=1, it represents that a multicast request currently corresponding to the MST0 exists on a group of channels and has been sent to all the Cache, but a response of processing completion has not been received. At this time, a subsequent multicast request or a normal unicast request from the MST0 and the MST1 is blocked until the flag0 flag is pulled down. If the flag1=1, it represents that a multicast request currently corresponding to the MST1 exists on a group of channels and has been sent to all the Cache, but a response of processing completion has not been received. At this time, a subsequent multicast request or a normal unicast request from the MST0 and the MST1 is blocked until the flag1 flag is pulled down.
[0056] For example, each of the distribution modules is further configured to, in a case that a target receiving device to be accessed by a request is in a failure state, send the request to a forwarding module corresponding to another receiving device in the plurality of receiving devices other than the target receiving device. For example, the MST0 sends a read request for the Cache1, and if the distribution module determines that the Cache1 is unavailable (for example, damaged), the read request can be sent to another Cache other than the Cache1, and the other Cache is used to read the desired data from the memory. Based on this manner, request loss due to damage of a Cache caused by process / yield problem can be avoided, and robustness is improved.
[0057] For example, each of the distribution modules is further configured to, in a case that a target receiving device to be accessed by a request is in a failure state, send the request to a forwarding module corresponding to another receiving device in the same device group as the target receiving device.
[0058] For example, if Cache 1 is damaged due to a process problem, even if the request resolves that the access destination is Cache 1, in order to ensure that the request is not lost, the normal request from MST 0 can be sent to Cache 3 in the same group, and vice versa. If Cache 0 is damaged, even if the request resolves that the access destination is Cache 0, in order to ensure that the request is not lost, the normal request from MST 1 can be sent to Cache 2 in the same group, and vice versa.
[0059] For example, for a multicast request, if a cache in the plurality of caches that is intended to be accessed is damaged, the multicast request can be sent to other valid caches.
[0060] For example, each distribution module can include a first distribution sub-module and a second distribution sub-module, the first distribution sub-module being configured to process requests of a transmission type of unicast, and the second distribution sub-module being configured to process requests of a transmission type of multicast.
[0061] FIG. 5 shows a schematic diagram of another data transmission device according to at least one embodiment of the present disclosure.
[0062] As shown in FIG. 5, the first distribution module DMUX0 can include a distributor DMUX00 and a distributor DMUX01, which can be respectively a first distribution sub-module and a second distribution sub-module of the first distribution module, the distributor DMUX00 being configured to process normal unicast requests sent by MST 0, and the distributor DMUX01 being configured to process multicast requests sent by MST 0. The second distribution module DMUX1 can include a distributor DMUX10 and a distributor DMUX11, which can be respectively a first distribution sub-module and a second distribution sub-module of the second distribution module, the distributor DMUX10 being configured to process normal unicast requests sent by MST 1, and the distributor DMUX11 being configured to process multicast requests sent by MST 1. The lines and arrows shown in FIG. 5 can be used to represent transmission paths of the channel B.
[0063] For example, each forwarding module is further configured to receive feedback data from the corresponding receiving device, and send the feedback data to a first distribution sub-module in a distribution module corresponding to the feedback data, if a transmission type corresponding to the feedback data is unicast, or send the feedback data to a second distribution sub-module in the distribution module corresponding to the feedback data, if the transmission type corresponding to the feedback data is multicast.
[0064] For example, each distribution module is further configured to send the feedback data to the analysis module; the analysis module is further configured to: for each multicast request, according to the number of receiving devices to be accessed by the request and the number of received feedback data corresponding to the request, determine the processing progress of the request.
[0065] For example, each multicast request can be broadcast to all intact caches, and a broadcast counter (hereinafter also referred to as a counter) is set for MST0 and MST1 respectively to record the number of broadcasts to each cache, and when a response is returned from a cache, the counter value is reduced by 1, until it is reduced to 0, which represents that the broadcast has been processed, as shown in Table 1.
[0066] Table 1
[0067] The following embodiments will be described for the five channels AW / W / AR / R / B of the AXI protocol respectively.
[0068] As shown in FIG. 3, for the AW channel, if it is a normal request, the Slave to be accessed by the request is parsed in the RDFC module according to the destination address. According to the validity of each cache in the cache group, the request is routed to the corresponding cache through the distribution module and the forwarding module. The first information (such as demux information) of the cache to be accessed by the request of the AW channel is placed in the data queue (such as aw fifo) of the AW channel to provide the W channel as an arbitration result. If it is a multicast request, the initial value of the broadcast counter is set according to the number of intact caches (such as Table 1). The second signal (such as bc_src signal) representing the source (Master0 / 1) of the multicast request and the third signal (such as is_bc signal) representing the flag of the multicast request are packaged and broadcast to all available caches together with other AXI protocol signals. The sequence number of the cache that has completed the broadcast is recorded through the table (such as aw bc_tbl0 / 1 in FIG. 3), and when all the broadcasts are completed, the packaged information is placed in the aw fifo to provide the W channel request.
[0069] For example, for the W channel, if it is a normal request, the information in the aw fifo is used to determine which cache the data of the W channel accesses. The request of the AW channel will be one cycle faster than the request of the W channel. If it is a multicast request, the signal in the aw fifo and the validity of the cache are used to determine which cache the request is broadcast to. The sequence number of the cache that has completed the broadcast of the data of the W channel is recorded through the table (such as aw bc_tbl0 / 1 in FIG. 3).
[0070] For example, for the AR channel, according to the destination address parsed in the RDFC module and the Cache validity, it is determined which Cache is accessed by the read request.
[0071] As shown in FIG. 5, for the B channel, Cache 0 to Cache 3 return the response data (b response) of the B channel. First, according to the information carried by the response data, it is determined that the current response is a response of a normal request from MST0, a response of a normal request from MST1, a response of a multicast request from MST0 or a response of a multicast request from MST1. Different responses can enter different distributors to participate in arbitration. For MST0, distributors DMUX00 and DMUX01 can be set to process the response of the normal request from MST0 and the response of the multicast request from MST0 respectively. For MST1, distributors DMUX10 and DMUX11 can be set to process the response of the normal request from MST1 and the response of the multicast request from MST1 respectively. The four kinds of responses can be returned to the RDFC module for processing first, and finally returned to MST0 and MST1, completing a complete write request through CrossBar multicast access / single access Cache operation.
[0072] FIG. 6 shows a schematic diagram of another data transmission device provided by at least one embodiment of the present disclosure.
[0073] As shown in FIG. 6, for the R channel, the response data returned by Cache 1 and the response data returned by Cache 3 can be arbitrated (for example, round robin arbitration), and the response data generated by the arbitration is returned to MST0. The response data returned by Cache 0 and the response data returned by Cache 2 can be arbitrated, and the response data generated by the arbitration is returned to MST1. Finally, a complete read request access to Cache and return data operation is completed.
[0074] For example, each module included in the data transmission device can be implemented by a hardware (for example, a circuit) module, a software module or any combination of the two. The modules and structures of the data transmission device described above are only exemplary and are not limited. According to the needs, the data transmission device can also have other modules and structures.
[0075] The data transmission device provided by at least one embodiment of the present disclosure can be used in an application scenario of accessing multiple caches, and can implement batch operations on data in all caches through one request. Based on an AXI bus, the data transmission device provided by at least one embodiment of the present disclosure can either transmit a request to a certain slave in a point-to-point manner or transmit the request in a multicast manner and send the request to multiple slaves according to requirements, and different routing modes can be flexibly selected for different requests.
[0076] The data transmission device according to at least one embodiment of the present disclosure can block access of the current master and other masters to the cache while broadcasting a high-priority request issued by the master to the multiple caches, and is helpful to maintaining data consistency.
[0077] Due to the influence of process / yield, a slave can be easily damaged, and when the master issues a request to access a damaged slave, the request cannot be received. According to the data transmission device provided by at least one embodiment of the present disclosure, when a slave corresponding to a destination address is damaged, the request can be forwarded to another effective slave for processing, so as to avoid loss of the request and improve robustness.
[0078] At least one embodiment of the present disclosure further provides a data transmission method, which is used for a data transmission device configured to be connected with multiple request devices and multiple receiving devices, and includes an analysis module, multiple distribution modules respectively corresponding to the multiple request devices, and multiple forwarding modules respectively corresponding to the multiple receiving devices.
[0079] FIG. 7 shows a flowchart of a data transmission method provided by at least one embodiment of the present disclosure.
[0080] As shown in FIG. 7, the method can include steps S710-S730.
[0081] In step S710, the analysis module receives at least one request sent by each request device, analyzes a transmission type corresponding to the request for each request, and sends the request to a corresponding distribution module.
[0082] In step S720, each distribution module sends a request to one or more of the multiple forwarding modules according to a transmission type corresponding to the request in response to receiving the request sent by the analysis module.
[0083] In step S730, each forwarding module sends a request to a corresponding receiving device in response to receiving the request sent by the distribution module.
[0084] This data transmission method can parse the transmission type of each request and perform multicast and unicast based on the transmission type. It can transmit requests point-to-point to a single slave device or multicast requests to multiple slave devices as needed, flexibly selecting routing methods for different requests. It can be used in application scenarios that access multiple slave devices, achieving the goal of batch operating all slave devices with a single request, thus improving processing efficiency. Furthermore, since the data transmission method of this disclosure can handle different types of requests, strategies such as arbitration policies can be configured for different types of requests to achieve better results.
[0085] Regarding this data transmission method, please refer to the above-described embodiments concerning the data transmission device, which will not be repeated here.
[0086] At least one embodiment of this disclosure also provides an electronic device, including a plurality of requesting devices, a plurality of receiving devices, and a data transmission device. The data transmission device is configured to be connected to the plurality of requesting devices and the plurality of receiving devices. The data transmission device includes a plurality of allocation modules, a plurality of forwarding modules, and a parsing module. The plurality of allocation modules correspond to the plurality of requesting devices, and the plurality of forwarding modules correspond to the plurality of receiving devices. The parsing module is configured to receive at least one request sent by each of the requesting devices, parse the transmission type corresponding to each request to obtain the transmission type, and send the request to the corresponding allocation module. Each allocation module is configured to, in response to receiving a request sent by the parsing module, send the request to one or more of the plurality of forwarding modules according to the transmission type corresponding to the request. Each forwarding module is configured to, in response to receiving a request sent by the allocation module, send the request to the corresponding receiving device.
[0087] This electronic device can parse the transmission type of each request and perform multicast and unicast based on the transmission type. It can transmit requests point-to-point to a single slave device or multicast requests to multiple slave devices as needed, flexibly selecting routing methods for different requests. It can be used in application scenarios that access multiple slave devices, achieving the goal of batch operating all slave devices with a single request, thus improving processing efficiency. Furthermore, since the electronic device of this disclosure can handle different types of requests, strategies such as arbitration policies can be configured for different types of requests to achieve better results.
[0088] Regarding this electronic device, please refer to the above-described embodiments concerning the data transmission device, which will not be repeated here.
[0089] The above description merely illustrates the preferred embodiments of the present disclosure and the principles of the technology applied. It should be understood by those skilled in the art that the disclosed scope of the present disclosure is not limited to the technical solutions formed by the specific combinations of the above technical features, and should also cover other technical solutions formed by the combinations of the above technical features or their equivalent features without departing from the above disclosed concept. For example, the technical solutions formed by replacing the above features with the technical features disclosed in the present disclosure (but not limited to) having similar functions.
[0090] In addition, although each operation is described in a particular order, this should not be understood as requiring the operations to be performed in the specific order shown or in a sequential order. In certain circumstances, multitasking and parallel processing can be advantageous. Similarly, although several implementation details are included in the above discussion, these should not be interpreted as limiting the scope of the present disclosure. Certain features described in the context of separate embodiments can also be combined in a single embodiment. Conversely, various features described in the context of a single embodiment can also be implemented separately or in any suitable subcombination.
[0091] Although the subject matter has been described in language specific to structural features and / or methodological acts, it is to be understood that the subject defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are merely illustrative of example forms of implementing the claims.
[0092] For the present disclosure, the following points need to be explained:
[0093] (1) The drawings of the embodiments of the present disclosure only involve the structures involved in the embodiments of the present disclosure, and other structures can refer to the general design.
[0094] (2) In the case of no conflict, the embodiments of the present disclosure and the features in the embodiments can be combined with each other to obtain new embodiments.
[0095] The above is merely a specific implementation of the present disclosure, but the protection scope of the present disclosure is not limited thereto, and the protection scope of the present disclosure should be subject to the protection scope of the claims.
Claims
1. A data transmission apparatus configured to connect with a plurality of requesting apparatuses and a plurality of receiving apparatuses, comprising: a plurality of distribution modules corresponding to the plurality of requesting apparatuses respectively; a plurality of forwarding modules corresponding to the plurality of receiving apparatuses respectively; and a parsing module configured to receive at least one request sent by each of the requesting apparatuses, parse a transmission type corresponding to each of the requests, and send the request to a corresponding distribution module; wherein each of the distribution modules is configured to send the request to one or more of the forwarding modules according to the transmission type corresponding to the request in response to receiving the request sent by the parsing module; each of the forwarding modules is configured to send the request to a corresponding receiving apparatus in response to receiving the request sent by the distribution module; the transmission type comprises multicast and unicast; wherein the multicast comprises sending a data consistency instruction to at least part of the plurality of receiving apparatuses; the unicast comprises sending a read-write request to one of the plurality of receiving apparatuses based on a destination address; the parsing module is further configured to parse the destination address of the request; each of the distribution modules is configured to: in a case where the transmission type corresponding to the request is multicast, send the request to a plurality of target forwarding modules among the forwarding modules; and in a case where the transmission type corresponding to the request is unicast, send the request to a target forwarding module among the forwarding modules according to the destination address corresponding to the request; the plurality of receiving apparatuses are divided into a plurality of apparatus groups, the plurality of apparatus groups correspond to the plurality of requesting apparatuses respectively, and the plurality of forwarding modules comprise a plurality of module groups corresponding to the plurality of apparatus groups respectively; each of the distribution modules is configured to, in a case where the transmission type corresponding to the request is multicast, send the request to each of the forwarding modules in a corresponding module group; the at least one request comprises a first request, the transmission type corresponding to the first request is multicast, and the first request corresponds to a plurality of target receiving apparatuses among the plurality of receiving apparatuses; the parsing module is further configured to, in a case where the first request is sent to the plurality of target receiving apparatuses and feedback data from the plurality of target receiving apparatuses has not been received, stop processing a second request until the feedback data from the plurality of target receiving apparatuses is received if the second request is received; the at least one request comprises the first request and the second request; the parsing module is further configured to, if the first request and the second request are received within one clock cycle, select one of the first request and the second request to be processed preferentially according to an arbitration strategy; the parsing module is further configured to: in a case where the transmission type of the first request is multicast and the transmission type of the second request is unicast, process the first request preferentially; and each of the distribution modules is further configured to: in a case where a target receiving apparatus to be accessed by the request is in a fault state, send the request to a forwarding module corresponding to another receiving apparatus among the plurality of receiving apparatuses except the target receiving apparatus. 2. The data transmission device of claim 1, wherein, 3. The data transmission apparatus of claim 2, wherein, 4. The data transmission apparatus of claim 3, wherein, 5. The data transmission device according to any one of claims 1 to 4, wherein 6. The data transmission apparatus of any of claims 1-4, wherein, 7. The data transmission apparatus of claim 6, wherein, 8. The data transmission apparatus of any of claims 1-4, wherein, 9. The data transmission apparatus of any of claims 2-4, wherein, Each of the allocation modules comprises: a first allocation submodule for processing requests with a unicast transmission type; and a second allocation submodule for processing requests with a multicast transmission type.
10. The data transmission apparatus of claim 9, wherein, Each of the forwarding modules is further configured to: receive feedback data from a corresponding receiving device; in a case where the transmission type corresponding to the feedback data is unicast, send the feedback data to the first allocation submodule in the allocation module corresponding to the feedback data; and in a case where the transmission type corresponding to the feedback data is multicast, send the feedback data to the second allocation submodule in the allocation module corresponding to the feedback data. Each of the allocation modules is further configured to send the feedback data to the parsing module.
11. The data transmission apparatus of any of claims 1-4, wherein, The parsing module is further configured to, for each request with a multicast transmission type, determine the processing progress of the request according to the number of receiving devices to be accessed by the request and the number of feedback data corresponding to the request that is received. Each of the allocation modules comprises at least one allocator, and each of the allocators comprises a first interface and a plurality of second interfaces.
12. The data transmission device according to any one of claims 1 to 4, wherein, Each of the forwarding modules comprises at least one selector, and each of the selectors comprises a third interface and a plurality of fourth interfaces. The first interface of each of the allocators is connected to the parsing module, and the plurality of second interfaces of each of the allocators are connected to the plurality of forwarding modules. The third interface of each of the selectors is connected to a corresponding receiving device, and the plurality of fourth interfaces of each of the selectors are connected to the plurality of allocation modules.
13. A data transmission method for a data transmission device configured to be connected to a plurality of requesting devices and a plurality of receiving devices, the data transmission device comprising a parsing module, a plurality of allocation modules corresponding to the plurality of requesting devices respectively, and a plurality of forwarding modules corresponding to the plurality of receiving devices respectively, the method comprising: the parsing module receiving at least one request sent by each of the requesting devices, for each of the requests, parsing a transmission type corresponding to the request, and sending the request to a corresponding allocation module; each of the allocation modules, in response to receiving the request sent by the parsing module, sending the request to one or more of the plurality of forwarding modules according to the transmission type corresponding to the request; and each of the forwarding modules, in response to receiving the request sent by the allocation module, sending the request to a corresponding receiving device.
14. An electronic device comprising: a plurality of requesting devices; a plurality of receiving devices; a data transmission device configured to be connected to the plurality of requesting devices and the plurality of receiving devices, comprising: a plurality of allocation modules corresponding to the plurality of requesting devices respectively; a plurality of forwarding modules corresponding to the plurality of receiving devices respectively; and a parsing module configured to receive at least one request sent by each of the requesting devices, for each of the requests, parse a transmission type corresponding to the request, and send the request to a corresponding allocation module. Each of the distribution modules is configured to, in response to receiving the request sent by the parsing module, send the request to one or more of the plurality of forwarding modules according to a transmission type corresponding to the request. Each of the forwarding modules is configured to, in response to receiving the request sent by the distribution module, send the request to a corresponding receiving device.
15. The electronic device of claim 14, wherein, The transmission type includes multicast and unicast. The multicast includes sending data consistency instructions to at least part of the plurality of receiving devices. The unicast includes sending a read-write request to one of the plurality of receiving devices based on a destination address.
16. The electronic device of claim 15, wherein, The parsing module is further configured to parse a destination address of the request. Each of the distribution modules is configured to: In a case where the transmission type corresponding to the request is multicast, send the request to a plurality of target forwarding modules in the plurality of forwarding modules. In a case where the transmission type corresponding to the request is unicast, send the request to one target forwarding module in the plurality of forwarding modules according to a destination address corresponding to the request.
17. The electronic device of claim 16, wherein, The plurality of receiving devices are divided into a plurality of device groups, the plurality of device groups correspond to the plurality of requesting devices respectively, and the plurality of forwarding modules include a plurality of module groups corresponding to the plurality of device groups respectively. Each of the distribution modules is configured to, in a case where the transmission type corresponding to the request is multicast, send the request to each forwarding module in a corresponding module group.
18. The electronic device of any of claims 14-17, wherein, The at least one request includes a first request, the transmission type corresponding to the first request is multicast, and the first request corresponds to a plurality of target receiving devices in the plurality of receiving devices. The parsing module is further configured to, in a case where the first request is sent to the plurality of target receiving devices and feedback data from the plurality of target receiving devices has not been received, stop processing a second request until the feedback data from the plurality of target receiving devices is received, if the second request is received.
19. The electronic device of any of claims 14-17, wherein, The at least one request includes a first request and a second request. The parsing module is further configured to, if the first request and the second request are received within one clock cycle, select one of the first request and the second request to be processed preferentially according to an arbitration strategy.
20. The electronic device of claim 19, wherein, The parsing module is further configured to: In a case where the transmission type of the first request is multicast and the transmission type of the second request is unicast, process the first request preferentially.
Citation Information
Patent Citations
Broadcast transmission method and system based on AXI protocol, and medium
CN115189977A
System on chip, electronic component, electronic device and transmission processing method
CN115827284A
Concurrent transmission module and method based on AXI bus
CN116150058A
Crossbar switch module, multi-core interconnection chip, transaction processing method and product
CN117951070A
Data transmission device, data transmission method, electronic equipment and storage medium
CN118519949A