AXI protocol network-on-chip-oriented read transaction management method
By introducing a read transaction management device into the AXI protocol on-chip network, splitting and sorting read transaction request and response data, the problem that the amount of transaction data of the main device exceeds the on-chip network limit is solved, and the system performance is improved and compatible with different network types are improved.
Patent Information
- Application Number
- CN202411825693.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-12
- Publication Date
- 2025-04-18
- Estimated Expiration
- 2044-12-12
AI Technical Summary
In the AXI protocol, when the master device supports outstanding capability, the amount of transaction data sent may exceed the limit of the on-chip network, resulting in the master device requiring request unpacking and response recycling and forwarding, affecting system performance.
A read transaction management method for AXI protocol on-chip network is designed, by adding a read transaction management device between the main device and the on-chip network, the device includes an unpacking module, a transaction sorting FIFO memory and a response data memory. This method splits read transaction requests into multiple sets of unpacking contents, writes them into transaction sorting FIFO memory in order, and stores the unpacking response in response data memory, and finally returns to the main device in order.
Through this method, the continuous issuance of read transaction requests and the order-preserved return of response data is realized, which improves system performance and optimizes the utilization rate of response data storage under the premise of compatibility and non-consistent networks.
Smart Images

Figure CN119847953A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of chip technology, and in particular to a read transaction management method for an AXI protocol on-chip network. Background Art
[0002] With the development of technology, on-chip network applications based on the AXI (Advanced eXtensible Interface) protocol are becoming more and more common. The on-chip network is responsible for connecting master and slave devices with various AXI characteristics to the network and ensuring that their information is reliably delivered and that the bandwidth meets business needs.
[0003] In the AXI protocol, outstanding technology enables the master device to continue to initiate multiple read and write transactions without receiving a response to the previous transaction. Therefore, in complex system design, the master device often supports outstanding capabilities. This not only reduces bus occupancy time, but also improves system response speed and task parallelism, as well as improves the flexibility and speed of data transmission.
[0004] However, the amount of transaction data sent by the master device that supports outstanding capabilities is often greater than the transaction data limit of the on-chip network, which means that the master device must perform request unpacking and response recovery and forwarding before accessing the on-chip network. Each read transaction request sent by the master device will be unpacked into multiple unpacking transactions. These multiple unpacking transactions have the same transaction ID as the original read transaction request, but different unpacking transactions are often sent to different slave devices. In accordance with the order preservation requirements of the AXI protocol, the response return of unpacking transactions sent to the same slave device in sequence is naturally order-preserving, so the unpacking transaction sent to the same slave device can be sent without waiting for the response return of the previous unpacking transaction. However, unpacking transactions sent to different slave devices need to be blocked until the response of the previous unpacking transaction is returned before they can be sent, so as to ensure the correct return of the response, but this will greatly affect the system performance. Summary of the invention
[0005] In view of the above problems and technical requirements, this application proposes a read transaction management method for AXI protocol on-chip network. The technical solution of this application is as follows:
[0006] A read transaction management method for an AXI protocol on-chip network, the method is applied to a read transaction management device connected between a master device and an on-chip network, the read transaction management device includes an unpacking module, a transaction sorting FIFO memory and a response data memory, the read transaction management method includes:
[0007] When a read transaction request sent by the master device is obtained, the request data carried by the read transaction request is split by using the unpacking module to obtain multiple groups of unpacked contents arranged in sequence and determine the unpacking attribute information of each group of unpacked contents, wherein the unpacking attribute information of each group of unpacked contents includes the transaction ID of the read transaction request to which it belongs and the storage location information in the response data memory allocated for the unpacked contents; the unpacking attribute information of each group of unpacked contents is written into the transaction sorting FIFO memory in sequence according to the arrangement order and the value of the write pointer is used as the unpacking ID of the unpacked contents, and the unpacking request carrying the unpacked contents and the corresponding unpacking ID is sent to the corresponding slave device via the on-chip network;
[0008] When an unpacking response returned by the slave device in response to the unpacking request is obtained via the on-chip network, the unpacking attribute information corresponding to the unpacking ID carried by the unpacking response in the transaction sorting FIFO memory is determined, and the unpacking response is stored in the response data memory according to the storage location information in the unpacking attribute information; based on the read pointer of the transaction sorting FIFO memory, each unpacking response is read from the corresponding storage location information in the response data memory in the order of arrangement of each group of unpacking contents, and the unpacking ID carried by the read unpacking response is replaced with the transaction ID in the corresponding unpacking attribute information, and then returned to the master device in sequence.
[0009] A further technical solution is that the transaction management method further includes:
[0010] Determine the type of the on-chip network to be entered by the obtained read transaction request, the on-chip network type being a consistent network or a non-consistent network;
[0011] The request data carried by the read transaction request is sequentially split into multiple groups of unpacked contents according to the transaction data volume of the on-chip network type, and storage location information of each group of unpacked contents is sequentially allocated in the response data memory according to the transaction data volume of each group of unpacked contents, and the unpacked attribute information of each group of unpacked contents is determined to include the transaction ID of the read transaction request, the on-chip network type to be entered by the read transaction request, and the storage location information of the unpacked contents; wherein the data storage bit width of the response data memory is a predetermined bus bit width, and the predetermined bus bit width does not exceed the transaction data volume of the consistency network;
[0012] The read transaction request to enter the consistent network is unpacked and the generated multiple unpacking requests are sent to the slave device via the consistent network in sequence; the read transaction request to enter the inconsistent network is unpacked and the generated multiple unpacking requests are sent to the slave device via the inconsistent network in sequence.
[0013] A further technical solution is that the response data memory includes a plurality of storage blocks whose storage addresses are continuous and managed by linked list technology, the data storage capacity of each storage block is consistent with the transaction data volume corresponding to the non-consistent network, and the storage location information allocated to each group of unpacked content in the response data memory includes:
[0014] For multiple groups of unpacked contents obtained by splitting the read transaction request to enter the consistency network, each storage block in the response data storage device that is in an idle state is allocated to each group of unpacked contents in the order of arrangement until the storage block is full or until all the unpacked contents are allocated, and each storage block is allocated to several groups of unpacked contents to enter the consistency network;
[0015] For the multiple groups of unpacked contents split from the read transaction request to enter the inconsistency network, the idle storage blocks in the response data storage device are allocated to each group of unpacked contents in sequence according to the arrangement order until all the unpacked contents are allocated, and each storage block is allocated to a group of unpacked contents to enter the inconsistency network.
[0016] A further technical solution is that the storage location information of each group of unpacked contents is the storage base address of the storage block allocated to the unpacked contents, and the unpacking attribute information of each group of unpacked contents also includes the package number of the unpacked contents, and the package number indicates the arrangement order of the unpacked contents in all the unpacked contents obtained by unpacking the corresponding read transaction request;
[0017] Storing the unpacked response in the response data storage according to the storage location information in the unpacked attribute information includes:
[0018] The storage base address is determined according to the storage location information in the unpacking attribute information, the offset address is determined according to the package number in the unpacking attribute information and the target storage address is determined in combination with the storage base address, and the unpacking response is stored at the target storage address in the response data storage device.
[0019] A further technical solution is to divide each storage block from the storage base address according to the predetermined bus width and set k storage entries, the data storage capacity of each storage entry is the predetermined bus width, and the predetermined bus width is consistent with the transaction data volume corresponding to the consistency network; each storage entry corresponds to an offset address and has an entry identifier, and the integer parameter k≥2;
[0020] Determining the offset address according to the package number in the unpacking attribute information and determining the target storage address in combination with the storage base address includes:
[0021] For each unpacking response with a predetermined bus width received via the consistency network, a packet number in the unpacking attribute information corresponding to the unpacking ID carried in the unpacking response is used to perform a modulus operation on k, and the offset address of the storage entry corresponding to the modulus operation result is used as the offset address of the unpacking response to calculate the target storage address, and after the unpacking response is stored at the target storage address, the entry flag of the storage entry at the target storage address is set to be valid to indicate that the storage entry is full;
[0022] For each unpacking response with a predetermined bus width received via an inconsistent network, the offset address of the storage entry marked as invalid starting from the storage base address in the unpacking attribute information corresponding to the unpacking ID carried by the unpacking response is used as the offset address of the unpacking response to calculate the target storage address; after the unpacking response is stored at the target storage address, the entry identifier of the storage entry at the target storage address is set to valid to indicate that the storage entry is full; when the entry identifier of the storage entry is invalid, it indicates that the storage entry is empty.
[0023] A further technical solution is that the read transaction management device further includes a bit width conversion component, which sequentially splits the request data carried by the read transaction request to obtain multiple groups of unpacked contents and sequentially allocates storage location information in the response data storage device to each group of unpacked contents, and further includes:
[0024] After converting the request data carried by the read transaction request into a predetermined bus bit width by using the bit width conversion component, the request data is split according to the transaction data volume of the on-chip network type to obtain multiple groups of unpacked contents, and the data bit width of each group of unpacked contents is the predetermined bus bit width and the data volume is the transaction data volume of the on-chip network type; after generating an unpacked request according to each group of unpacked contents, the unpacked request is converted into a data transmission bit width that conforms to the on-chip network by using the bit width conversion component, and then sent to the slave device via the on-chip network;
[0025] After receiving the original response result that complies with the data transmission bit width of the network on chip via the network on chip, the bit width conversion component is used to convert the original response result for one depacketization request into a plurality of depacketization responses with a predetermined bus bit width.
[0026] A further technical solution is that the unpacking attribute information of each group of unpacking contents also includes the transaction length of the unpacking contents, each entry in the transaction sorting FIFO memory for storing the unpacking attribute information also has a response identifier and is initialized to an invalid state, and the read transaction management method also includes:
[0027] After storing all the unpacking responses carrying the same unpacking ID in the response data storage, the response flag of the entry where the unpacking attribute information corresponding to the unpacking ID carried by the unpacking response is located in the transaction sorting FIFO storage is set to a valid state;
[0028] When it is detected that the response identifier of the entry corresponding to the current read pointer is in an invalid state, the current read pointer is kept unchanged. When it is detected that the response identifier of the entry corresponding to the current read pointer is in a valid state, the target read address and transaction length are determined according to the unpacking attribute information in the entry corresponding to the current read pointer, and each unpacking response is read in sequence according to the transaction length from the target read address of the response data storage device, and the read pointer is updated.
[0029] A further technical solution is that the read transaction management method further includes:
[0030] After returning any one beat of the unpacking response to the master device, the entry identifier of the storage entry of the storage block for storing the unpacking response in the response data storage is set to invalid;
[0031] For each group of unpacked content whose on-chip network type to be entered by the read transaction request is a coherent network, after each unpacking response of the unpacking request generated by the unpacked content is returned to the master device, the response identifier of the entry where the unpacking attribute information of the unpacked content is located in the transaction sorting FIFO memory is reset to an invalid state, and when it is detected that the result of taking the package number of the returned unpacked content modulo k is k-1 or when it is detected that the response identifier of the entry where the unpacking attribute information of the last group of unpacked content is located is reset to an invalid state, the storage block allocated to the unpacked content is recycled and reset to an idle state;
[0032] For each group of unpacked content whose on-chip network type to which the read transaction request belongs is a non-consistent network, after the unpacking responses of each beat of the unpacking request generated by the unpacking content are returned to the master device, the response identifier of the entry in the transaction sorting FIFO memory where the unpacking attribute information of the unpacked content is located is reset to an invalid state, and the storage block allocated to the unpacked content is recovered and reset to an idle state.
[0033] Its further technical solution is that the unpacking attribute information of each group of unpacking contents also includes an end identifier. Among the multiple groups of unpacking contents arranged in sequence obtained by splitting a read transaction request, the end identifier of the last group of unpacking contents is in a valid state, and the end identifiers of other groups of unpacking contents are in an invalid state.
[0034] A further technical solution is that the transaction management device includes a plurality of transaction sorting FIFO memories, each transaction sorting FIFO memory has a unique queue identifier, and the transaction management method further includes:
[0035] After multiple groups of unpacked contents obtained by unpacking a read transaction request are sent to the slave device in sequence via the on-chip network, other read transaction requests sent by the master device continue to be obtained; the unpacking attribute information of the multiple groups of unpacked contents obtained by splitting each read transaction request is sequentially written into the same transaction sorting FIFO memory, and the unpacking attribute information of the unpacked contents obtained by splitting different read transaction requests is written into different transaction sorting FIFO memories, and the unpacking ID of each group of unpacked contents includes the queue identifier of the transaction sorting FIFO memory written therein and the value of the write pointer when the unpacking attribute information is written into the transaction sorting FIFO memory;
[0036] When the unpacking response is returned to the master device, the unpacking responses read based on the read pointers of the transaction ordering FIFO memories are arbitrated and returned to the master device in sequence.
[0037] The beneficial technical effects of this application are:
[0038] The present application discloses a read transaction management method for an AXI protocol on-chip network. The method unpacks the read transaction request sent by the master device through an added read transaction management device, re-numbers the unpacked content and sends it with the unpacking ID and temporarily stores the unpacking attribute information, then temporarily stores the returned unpacking response in a response data memory, and then uses the read pointer of the transaction sorting FIFO memory to return the unpacking response to the master device in sequence. The method realizes the continuous sending of read transaction requests on the basis of ensuring the return order of response data, thereby improving system performance.
[0039] This method also takes into account the difference in transaction data volume between consistent networks and inconsistent networks. On the premise of being compatible with these two application scenarios, by reasonably configuring the response data storage device, efficient sharing and high utilization of the response data storage device can be achieved under the two network types, thereby ensuring the maximization of outstanding capabilities when the master device needs to perform unpacking processing to access different on-chip networks. BRIEF DESCRIPTION OF THE DRAWINGS
[0040] Figure 1 It is a schematic diagram of the system framework of an embodiment of the present application.
[0041] Figure 2 It is a flowchart of sending unpacking transactions in a read transaction management method according to an embodiment of the present application.
[0042] Figure 3 It is a flowchart of writing a received unpacking response into a response data storage in a read transaction management method according to an embodiment of the present application.
[0043] Figure 4It is a flowchart of reading out an unpacked response in a response data storage device and returning it to a master device in a read transaction management method according to an embodiment of the present application.
[0044] Figure 5 It is a schematic diagram of the system framework of another embodiment of the present application. DETAILED DESCRIPTION
[0045] The specific implementation of the present application is further described below in conjunction with the accompanying drawings.
[0046] The present application discloses a read transaction management method for an AXI protocol on-chip network. The method is targeted at an application scenario in which a master device is connected to multiple slave devices via an on-chip network, and bidirectional data transmission is performed between the master device and the slave device via the on-chip network based on the AXI protocol. The master device sends a read transaction request to the slave device via the on-chip network, and the slave device reads data according to the read transaction request and generates response data and returns it to the master device via the on-chip network.
[0047] Based on this application scenario, the present application adds a read transaction management device between the master device and the on-chip network. The read transaction management device executes the read transaction management method of the present application to manage the request sending and response return process between the master device and the slave device. Figure 1 As shown in the system structure diagram, the read transaction management device includes an unpacking module, a transaction sorting FIFO memory and a response data memory. In one embodiment, the response data memory is implemented using SRAM (Static Random-Access Memory).
[0048] The read transaction management method implemented by the read transaction management device includes the following steps, including a request sending process, a response storage process and a response return process, which are respectively described as follows:
[0049] 1. Request issuance process, please refer to Figure 2 The flowchart shown includes the following steps:
[0050] Step 210: Obtain a read transaction request sent by the master device. The read transaction request sent by the master device carries request data and a transaction ID. The transaction ID of each read transaction request is used to uniquely identify a read transaction request.
[0051] In actual applications, the on-chip network between the master device and the slave device includes a consistent network and an inconsistent network. For a master device that supports outstanding capabilities, it will send a read transaction request to both the consistent network and the inconsistent network. Therefore, each read transaction request will also carry the type of on-chip network to be entered, where the on-chip network type is a consistent network or an inconsistent network.
[0052] Step 220: Use the unpacking module to split the request data carried in the read transaction request into multiple groups of unpacked contents arranged in sequence.
[0053] The request data carried in the read transaction request exceeds the single transaction data volume of the on-chip network. Therefore, the request data carried in the read transaction request needs to be unpacked before it can be sent to the on-chip network. Each group of unpacked content obtained by splitting meets the single transaction data volume requirement of the on-chip network.
[0054] As mentioned above, there are two types of actual on-chip networks, and the limits on the amount of data for a single transaction are different for coherent networks and non-coherent networks: coherent networks usually limit the amount of data and boundaries of a single transaction according to the size of the cache line, and the amount of data for a single transaction is relatively small, such as the common amount of data for a single transaction is 64B. Non-coherent networks usually limit the amount of data and boundaries of a single transaction according to aspects such as anti-network turbulence and transmission energy efficiency, and the amount of data for a single transaction is relatively large, such as the common amount of data for a single transaction is 1KB.
[0055] Therefore, in order to meet the single transaction data volume requirements of different types of on-chip networks, the method can be applied to two different types of on-chip networks. In one embodiment, the type of on-chip network to be entered by the read transaction request is first determined, and then the request data carried by the read transaction request is sequentially split according to the transaction data volume of the on-chip network type to obtain multiple groups of unpacked contents, and the data volume of each group of unpacked contents obtained by splitting is the transaction data volume of the on-chip network type to be entered.
[0056] Step 230: Determine the unpacking attribute information of each group of unpacking contents
[0057] The multiple groups of unpacked contents obtained by splitting a read transaction request all have the transaction ID of the read transaction request to which they belong, and before each group of unpacked contents is sent to the slave device, the storage location information in the response data storage device must first be allocated to each group of unpacked contents, thereby ensuring that the response data returned by each group of unpacked contents has its own independent storage space to avoid data errors.
[0058] In addition, as described above, the read transaction request issued by the master device may enter a consistent network or an inconsistent network. Therefore, in order to distinguish the type of on-chip network that the unpacked content is to enter, in another embodiment, the unpacking attribute information of each group of unpacked content also includes the type of on-chip network that the read transaction request is to enter.
[0059] The multiple groups of unpacked contents obtained by splitting the read transaction request are arranged in sequence according to the order of the request data carried. Therefore, in another embodiment, the unpacking attribute information of each group of unpacked contents also includes the package number of the group of unpacked contents, and the package number is used to indicate the arrangement order of the group of unpacked contents among all the unpacked contents obtained by unpacking the read transaction request to which it belongs.
[0060] In another embodiment, the unpacking attribute information of each group of unpacking contents also includes an end identifier. Among the multiple groups of unpacking contents arranged in sequence obtained by splitting a read transaction request, the end identifier of the last group of unpacking contents is in a valid state, and the end identifiers of other groups of unpacking contents are in an invalid state. Therefore, through the end identifier in the unpacking attribute information of each group of unpacking contents, it is possible to determine whether the group of unpacking contents is the last group of unpacking contents split by the read transaction request.
[0061] In another embodiment, the unpacking attribute information of each group of unpacking contents further includes the transaction length of the unpacking contents.
[0062] In summary, the unpacking attribute information of each group of unpacking contents includes the transaction ID of the read transaction request, storage location information, the type of on-chip network to be entered by the read transaction request, the packet number, the end identifier, and the transaction length.
[0063] Since the read transaction request may enter the consistent network or the inconsistent network, the unpacked content split by the read transaction management device will include two different transaction data volumes, so it is necessary to allocate storage location information in the response data memory for each group of unpacked content in turn according to the transaction data volume of each group of unpacked content. The two unpacked contents with different transaction data volumes will occupy different storage sizes. Therefore, in order to enable the unpacked contents with two different transaction data volumes to share the response data memory, and to ensure that the response data memory can be maximized when only one on-chip network is used in certain time periods, in one embodiment, the data storage bit width of the response data memory is set to a predetermined bus bit width, and the predetermined bus bit width does not exceed the transaction data volume of the consistent network. In order to simplify the implementation, the predetermined bus bit width is taken as the transaction data volume of the consistent network.
[0064] On the other hand, in order to facilitate the management of storage space, the response data storage device is divided into multiple storage blocks with continuous storage addresses. These storage blocks are managed through linked list technology. The storage block status management linked list can provide storage blocks in an idle state and recycle storage blocks that are reset to an idle state after use. The data storage capacity of each storage block is consistent with the transaction data volume corresponding to the non-consistent network. After such configuration, the data storage capacity of each storage block just meets the transaction data volume corresponding to the non-consistent network, and a storage block can be directly allocated to the unpacked content to be entered into the non-consistent network. The transaction data volume corresponding to the consistent network is smaller than that of the non-consistent network, so one storage block can be used to allocate to multiple unpacked contents to be entered into the consistent network. The storage location information allocated to each group of unpacked content in the response data storage device includes:
[0065] For the multiple groups of unpacked contents obtained by splitting the read transaction request to enter the consistency network, the storage space of each storage block in the response data storage device starting from the storage base address is allocated to each group of unpacked contents in sequence according to the arrangement order until the storage block is full or until all the unpacked contents of the read transaction request are allocated. The storage block in the idle state is the storage block that is not allocated to other unpacked contents at all. When a storage block is full and all the unpacked contents of the read transaction request have not been allocated, other idle storage blocks continue to be allocated in sequence. In this case, one or more storage blocks are allocated to the multiple groups of unpacked contents split from a read transaction request, and each storage block is allocated to several groups of unpacked contents to enter the consistency network, and these multiple groups of unpacked contents share the same storage block. For example, in one instance, the data storage capacity of each storage block is 1KB, and the read transaction request to enter the consistency network is split into 18 groups of unpacked content with a transaction data volume of 64B. Then, the storage space starting from the storage base address in an idle storage block is allocated to the first 16 groups of unpacked content in order of arrangement, and then the storage block is filled up. Then, the storage space starting from the storage base address in another idle storage block is allocated to the last two groups of unpacked content in order. Although the second storage block is not filled up, the remaining storage space of the storage block is no longer allocated to the unpacked content of other read transaction requests, so as to avoid data errors between different read transaction requests.
[0066] For multiple groups of unpacked contents obtained by splitting the read transaction request to enter the non-consistent network, the idle storage blocks in the response data storage are allocated to each group of unpacked contents in the order of arrangement until all the unpacked contents are allocated, and each storage block is allocated to a group of unpacked contents, and each group of unpacked contents occupies one storage block. For example, in the above example, the data storage capacity of each storage block is 1KB, and the read transaction request to enter the non-consistent network is split to obtain 2 groups of unpacked contents with a transaction data volume of 1KB, then the two idle storage blocks are allocated to the two groups of unpacked contents respectively.
[0067] Through the above allocation, the storage address allocated to each group of unpacked contents can be determined, thereby generating the storage location information of the unpacked contents.
[0068] Step 240, the unpacking attribute information of each group of unpacked content is written into the transaction sorting FIFO memory in the order of arrangement. Each time the unpacking attribute information of a group of unpacked content is written, the write pointer is automatically updated by one, and the value of the write pointer when the unpacking attribute information is written is used as the unpacking ID of the unpacked content. The unpacking ID of each group of unpacked content is used to uniquely identify a group of unpacked content, so that the ID re-numbering of the unpacked content can be completed. In addition, each entry in the transaction sorting FIFO memory for storing the unpacking attribute information also has a response identifier and is initialized to an invalid state.
[0069] For example, Figure 1 In the example, a read transaction request is split into unpacked content 1, unpacked content 2, unpacked content 3, etc., and the unpacked attribute information of these unpacked contents is written into each entry in sequence.
[0070] Step 250, sending the unpacking request carrying the unpacking content and the corresponding unpacking ID to the corresponding slave device via the on-chip network, including: unpacking the read transaction request to enter the consistency network and generating multiple unpacking requests to send them to the slave device via the consistency network in sequence, unpacking the read transaction request to enter the inconsistency network and generating multiple unpacking requests to send them to the slave device via the inconsistency network in sequence.
[0071] Multiple unpacking requests generated by unpacking the same read transaction request are sent to multiple slave devices in sequence according to the order of the unpacking contents. Even if multiple unpacking requests are sent to different slave devices, there is no need to wait for the response of the previous unpacking request to be returned.
[0072] As described above, in order to better share the response data memory in the case of a consistent network and an inconsistent network, the data storage bit width of the response data memory is set to a predetermined bus bit width. However, the read transaction request directly issued by the master device is in accordance with the data transmission bit width of the master device but not necessarily the predetermined bus bit width, and the unpacking request issued to the slave device also needs to be in accordance with the data transmission bit width of the on-chip network but not necessarily the predetermined bus bit width. The read transaction management device also includes a bit width conversion component. After obtaining the read transaction request issued by the master device in accordance with the data transmission bit width of the master device in the above step 210, the request data carried by the read transaction request is first converted into the predetermined bus bit width by using the bit width conversion component, and then the request data is split according to the transaction data volume of the on-chip network type in step 220 to obtain multiple groups of unpacking contents, and the data bit width of each group of unpacking contents is the predetermined bus bit width and the data volume is the transaction data volume of the on-chip network type. After generating an unpacking request according to each group of unpacking contents in step 240, the unpacking request is converted into the data transmission bit width in accordance with the on-chip network by using the bit width conversion component and then sent to the slave device via the on-chip network. In this way, no matter what data transmission bit width is adopted by the master device and the on-chip network, they can be uniformly managed according to the predetermined bus bit width, thereby improving the utilization rate of the response data memory.
[0073] 2. Response to the deposit process, please refer to Figure 3 The flowchart shown includes the following steps:
[0074] Step 310: Obtain the unpacking response returned by the slave device to the unpacking request via the on-chip network. The unpacking response returned by each slave device to each unpacking request will carry the same unpacking ID as the unpacking request.
[0075] The unpacking response obtained in this step is a per-beat unpacking response with a predetermined bus width. Since the data transmission width of the on-chip network is not necessarily the predetermined bus width, after receiving the original response result that conforms to the data transmission width of the on-chip network via the on-chip network, the bit width conversion component is first used to convert the original response result for an unpacking request into several beat unpacking responses with a predetermined bus width.
[0076] The transaction data volume contained in the original response result received via the consistent network is different from that in the original response result received via the inconsistent network. When the predetermined bus width is consistent with the transaction data volume corresponding to the consistent network, the original response result received via the consistent network will be converted into a one-shot unpacking response, which is a complete response to an unpacking request. The original response result received via the inconsistent network will be converted into multiple-shot unpacking responses carrying the same unpacking ID, and these multiple-shot unpacking responses together are a complete response to an unpacking request.
[0077] Step 320, determine the unpacking attribute information corresponding to the unpacking ID carried by each received unpacking response in the transaction sorting FIFO memory. Since each unpacking ID is the write pointer when the unpacking attribute information is written into the transaction sorting FIFO memory, the unpacking ID can be used to locate the entry in the transaction sorting FIFO memory, thereby determining the unpacking attribute information corresponding to the unpacking ID.
[0078] Step 330, store the received unpacking response in the response data storage device according to the storage location information in the unpacking attribute information corresponding to the unpacking ID carried by each unpacking response. The storage location information in the unpacking attribute information corresponding to the unpacking ID carried by each unpacking response is the storage location information assigned to the unpacking content with the unpacking ID. Since the unpacking content, the unpacking request, and each unpacking response returned for the unpacking request all carry the same unpacking ID, the storage location information assigned to the unpacking content is also the storage location information assigned to the unpacking request and the unpacking response. This application simplifies the description in this way later.
[0079] Since each group of unpacked content entering an inconsistent network occupies a separate storage block, while each group of unpacked content entering a consistent network occupies storage addresses continuously in the storage block, the specific storage address of the unpacked content can be determined by locating the storage block allocated to the unpacked content. Therefore, when generating the storage location information of each group of unpacked content, the specific storage address allocated to each group of unpacked content is often not directly recorded as the storage location information. Instead, the storage base address of the storage block allocated to each group of unpacked content is recorded as the storage location information of the unpacked content. In this case, only the storage block can be located according to the storage location information in the unpacking attribute information, and it is necessary to further locate the specific storage address of each unpacking response.
[0080] The multi-beat unpacking responses for a unpacking request obtained through the inconsistency network will be returned in sequence, so after locating the storage block allocated to the unpacking response according to the storage location information, each beat of the unpacking response can be stored continuously in the storage block in sequence.
[0081] Only one unpacking response will be obtained for an unpacking request through the consistency network, and the storage location information of multiple unpacking requests obtained from the same read transaction request are continuous in order of arrangement. Therefore, the offset address can be determined according to the arrangement order of the unpacking requests indicated by the package number in the unpacking attribute information, and then the target storage address of the unpacking response can be determined by combining the storage base address provided by the storage location information in the unpacking attribute information, and then the unpacking response is stored at the target storage address in the response data storage device.
[0082] By configuring a counter for each group of unpacked content, the offset address can be calculated according to the network type and packet number of the unpacked response according to the above method, but this will cause a large waste of resources. In order to save resources, in another embodiment, each storage block is divided from the storage base address according to the predetermined bus width and k storage entries are set. The data storage capacity of each storage entry is the predetermined bus width. Each storage entry corresponds to an offset address and has an entry identifier, and the integer parameter k ≥ 2. For example, in Figure 1 In the example, the response data storage includes N storage blocks, the integer parameter N≥2, each storage block is divided into k storage entries, and the entry identifiers of the k storage entries of each storage block are Set[0] to Set[k-1]. Based on this:
[0083] For each unpacking response with a predetermined bus width received via the consistency network, the packet number in the unpacking attribute information corresponding to the unpacking ID carried by the unpacking response is modulo k, and the offset address of the storage entry corresponding to the modulo result is used as the offset address of the unpacking response to calculate the target storage address, and after the unpacking response is stored at the target storage address, the entry flag of the storage entry at the target storage address is set to valid to indicate that the storage entry is full. For example, in one example, each storage block is divided into 16 storage entries. The read transaction request to enter the consistency network is split into 18 groups of unpacked contents with a transaction data volume of 64B. The unpacked contents with package numbers 1 to 16 arranged in sequence are assigned to storage entries 1 to 16 of storage block 1, and the unpacked contents with package numbers 17 and 18 arranged in sequence are assigned to storage entries 1 and 2 of storage block 2. When an unpacked response is received and its corresponding package number is determined to be 10, the storage base address of storage block 1 and the package number 10 can be determined according to the unpacked attribute information, and then the result of taking the modulus of k=16 by the package number 10 is 10, thereby determining that the offset address is the offset address corresponding to the storage entry 10, and the corresponding target storage address of the unpacked package can be determined.
[0084] For each unpacking response with a predetermined bus width received via the inconsistent network, the target storage address is calculated by marking the offset address of the storage entry that is invalid starting from the storage base address in the unpacking attribute information corresponding to the unpacking ID carried by the unpacking response as the offset address of the unpacking response. After the unpacking response is stored at the target storage address, the entry identifier of the storage entry at the target storage address is set to valid to indicate that the storage entry is full. When the entry identifier of the storage entry is invalid, it indicates that the storage entry is empty. For example, in one instance, each storage block is divided into 16 storage entries. For any unpacking transaction to be entered into the inconsistent network, a 16-beat unpacking response of the unpacking transaction will be received via the inconsistent network. When an unpacking response is received, the storage block allocated to the unpacking request to which the unpacking response is directed can be determined based on the unpacking attribute information. Assume that Figure 1 Storage block 3 in. When the first unpacking response of the unpacking transaction is received, the entry identifier of the first storage entry of storage block 3 is queried and is invalid. At this time, the offset address of the first storage entry is used as the offset address and the unpacking response is saved to the first storage entry. Then the entry identifier of the first storage entry is set to valid. When the second unpacking response of the unpacking transaction is received, it is queried that the entry identifier of the first storage entry is valid, but the entry identifier of the second storage entry is invalid. At this time, the offset address of the second storage entry is used as the offset address and the unpacking response is saved to the second storage entry, and so on.
[0085] In addition, during the response storage process, when it is determined that several unpacking responses carrying the same unpacking ID are stored in the response data storage, the response identifier of the entry where the unpacking attribute information corresponding to the unpacking ID carried by these unpacking responses is located in the transaction sorting FIFO storage is set to a valid state. Among them:
[0086] Each beat unpacking response received through the consistency network is the complete response to an unpacking request. Therefore, after writing an unpacking response to the response data storage device, the response identifier of the entry containing the unpacking attribute information corresponding to the carried unpacking ID in the transaction sorting FIFO storage device can be set to a valid state.
[0087] The unpacking response received per beat via the non-consistent network is only a partial response to an unpacking request. When it is determined that an unpacking request has not been received and all unpacking responses have not been written, the unpacking response continues to be received. When it is determined that all unpacking responses for an unpacking request have been written, the response flag of the entry where the current unpacking request is located in the transaction sorting FIFO memory can be set to a valid state, indicating that all responses to this unpacking request have been collected.
[0088] 3. Response return process, please refer to Figure 4The flowchart shown includes the following steps:
[0089] Based on the read pointer of the transaction sorting FIFO memory, each unpacking response is read from the corresponding storage location information in the response data memory in the order of arrangement of each group of unpacking contents, and the unpacking ID carried by the read unpacking response is replaced with the transaction ID in the corresponding unpacking attribute information and then returned to the master device in sequence. Similarly, when returning the unpacking response to the master device, it is also necessary to use the bit width conversion component to convert the unpacking response of the predetermined bus bit width into an unpacking response that conforms to the data transmission bit width of the master device. Specifically:
[0090] For the transaction sorting FIFO memory, when the response identifier of the entry corresponding to the current read pointer is detected to be in an invalid state, it means that the unpacking request of the entry corresponding to the current read pointer has not yet collected all responses, and the current read pointer is kept unchanged at this time. When the response identifier of the entry corresponding to the current read pointer is detected to be in a valid state, it means that the unpacking request of the entry corresponding to the current read pointer has collected all responses. At this time, the target read address and transaction length can be determined according to the unpacking attribute information in the entry corresponding to the current read pointer. The method for determining the target read address according to the unpacking attribute information in the entry corresponding to the current read pointer is the same as the method for determining the target storage address during storage, which is based on the packet number to determine the offset address and then calculated in combination with the storage base address, which will not be repeated here. Then, the unpacking responses of the unpacking request of the entry corresponding to the current read pointer are read in sequence from the target read address of the response data memory according to the transaction length and returned to the master device in sequence. After all the unpacking responses of the unpacking request of the entry corresponding to the current read pointer are returned to the master device, the read pointer is automatically updated plus one to point to the next entry. In this way, even if the unpacking responses of different unpacking transactions are returned out of order, the unpacking responses of each unpacking transaction obtained by unpacking the same read transaction request can be returned to the master device in sequence, thereby achieving order-preserving response return.
[0091] For example, Figure 1 In the example, the current read pointer is at the entry corresponding to unpacked content 1. Assuming that the read transaction management device has collected all unpacked responses of unpacked content 3, the response identifier corresponding to unpacked content 3 is set to valid. However, the response identifier at the entry of unpacked content 1 pointed to by the current read pointer is still invalid, so no response is returned and the read pointer remains unchanged.
[0092] Then, assuming that the read transaction management device has collected all the unpacking responses of unpacking content 1, the response identifier corresponding to unpacking content 1 is set to valid. At this time, it is detected that the response identifier at the entry of unpacking content 1 pointed to by the current read pointer is valid, and the unpacking responses of each beat of unpacking content 1 are read from the response data storage device and returned in sequence. After the return is completed, the response identifier at the entry where unpacking content 1 is located is reset to invalid, and the read pointer is automatically updated to the entry where unpacking content 2 is located. The response identifier at the entry of unpacking content 2 pointed to by the current read pointer is still invalid, so no response is returned.
[0093] Then, assuming that the read transaction management device collects all the unpacking responses of the unpacking content 2, the response identifier corresponding to the unpacking content 2 is set to valid. At this time, it is detected that the response identifier at the entry of the unpacking content 2 pointed to by the current read pointer is valid, and the unpacking responses of each beat of the unpacking content 2 are read from the response data storage device and returned in sequence. After the return is completed, the response identifier at the entry where the unpacking content 2 is located is reset to invalid, and the read pointer is automatically updated to the entry where the unpacking content 3 is located. At this time, the response identifier at the entry of the unpacking content 3 pointed to by the current read pointer is also valid, then the unpacking responses of each beat of the unpacking content 3 are continued to be read from the response data storage device and returned in sequence, and after the return is completed, the response identifier at the entry where the unpacking content 3 is located is reset to invalid, and the read pointer is automatically updated to the next entry. It can be seen from this example that although the responses of the unpacking contents 1, 2, and 3 are returned in disorder, the responses will still be returned to the master device in the order of the unpacking contents 1, 2, and 3.
[0094] In addition, during the response reading process, the entry identifiers of the storage items of the storage block and the response identifiers of each entry in the transaction sorting FIFO memory are dynamically updated, and the storage block is dynamically recycled, including:
[0095] (1) Dynamically updating the entry identifier of the storage entry of the storage block, including: after returning any one-beat unpacking response to the master device, setting the entry identifier of the storage entry of the storage block used to store the unpacking response in the response data storage device to invalid.
[0096] (2) Dynamically updating the response identifier of each entry in the transaction sorting FIFO memory, including: after all unpacking responses of a group of unpacking contents are returned to the master device, resetting the response identifier of the entry in the transaction sorting FIFO memory where the unpacking attribute information of the unpacking contents is located to an invalid state.
[0097] For each group of unpacked contents entering the consistency network, a group of unpacked contents has only one unpacked response. Therefore, after the one-shot unpacked responses of a group of unpacked contents are returned to the master device, the response identifier of the entry in the transaction sorting FIFO memory where the unpacked attribute information of the group of unpacked contents is located can be reset to an invalid state.
[0098] For each group of unpacked contents entering the inconsistent network, one group of unpacked contents has multiple unpacked responses. Therefore, the response identifier of the entry in the transaction sorting FIFO memory where the unpacked attribute information of the group of unpacked contents is located can be reset to an invalid state only after all the unpacked responses of a group of unpacked contents are returned to the main device.
[0099] (3) Dynamically reclaim storage blocks
[0100] For each group of unpacked content entering the inconsistency network, each group of unpacked content occupies a storage block separately, so after all the unpacked responses of a group of unpacked content are returned to the main device, the storage block allocated to this group of unpacked content can be recovered and reset to an idle state.
[0101] For each group of unpacked content entering the consistency network, multiple groups of unpacked content share one storage block, so the storage block may not be directly recovered after the unpacking response of a group of unpacked content is returned to the main device. When it is detected that the result of the packet number of the currently returned unpacked content modulo k is k-1 or when it is detected that the response identifier of the entry where the unpacking attribute information of the last group of unpacked content is located is reset to an invalid state, it means that all unpacking responses in the storage block are read out and returned to the main device. At this time, the storage block allocated to this group of unpacked content can be recovered and reset to an idle state.
[0102] The read transaction management device of the present application can use the above-mentioned read transaction management method to unpack each read transaction request sent by the master device and send it continuously without blocking, and can still ensure that the response is returned in order to avoid data errors, thereby improving system efficiency on the basis of ensuring transaction accuracy. Furthermore, the master device can send multiple read transaction requests continuously, and the read transaction management device also includes multiple transaction sorting FIFO memories. Multiple read transaction requests sent continuously by the master device can be processed continuously by using multiple transaction sorting FIFO memories, and the next read transaction request can be processed and sent without waiting for all responses to the previous read transaction request to be returned. Please refer to Figure 5 As shown in the system architecture diagram, the read transaction management method of the read transaction management device includes:
[0103] After unpacking multiple groups of unpacked contents obtained from a read transaction request and sending them to the slave device in sequence via the on-chip network, continue to obtain other read transaction requests sent by the master device, and then continue to unpack and send them according to the above method. The unpacking attribute information of the multiple groups of unpacked contents obtained by splitting each read transaction request is sequentially written into the same transaction sorting FIFO memory, and the unpacking attribute information of the unpacked contents obtained by splitting different read transaction requests is written into different transaction sorting FIFO memories. In this way, different read transaction requests are managed by different transaction sorting FIFO memories to avoid conflicts. In this case, the unpacking ID of each group of unpacked contents includes the queue identifier of the transaction sorting FIFO memory written and the value of the write pointer when the unpacking attribute information is written into the transaction sorting FIFO memory, and each transaction sorting FIFO memory has a unique queue identifier.
[0104] The subsequent response registration and response return for each read transaction request are the same, but in this case, the unpacking response return of the read transaction request will be read according to the read pointer of each transaction sorting FIFO memory. At this time, the unpacking response process of multiple transaction sorting FIFO memories may have data conflicts. Therefore, when the unpacking response is returned to the main device, the unpacking responses read based on the read pointers of each transaction sorting FIFO memory are arbitrated and returned to the main device in sequence. This step can be implemented using the arbitrator built into the read transaction management device.
[0105] The above is only a preferred embodiment of the present application, and the present application is not limited to the above embodiments. It is understood that other improvements and changes directly derived or associated by those skilled in the art without departing from the spirit and concept of the present application should be considered to be included in the protection scope of the present application.
Claims
1. A read transaction management method for an AXI protocol on-chip network, characterized in that: A read transaction management device is applied to a read transaction management device connected between a host device and an on-chip network, the read transaction management device comprises an unpacking module, a transaction sorting FIFO memory and a response data memory, and the read transaction management method comprises: When a read transaction request sent by the master device is obtained, the unpacking module is used to split the request data carried by the read transaction request to obtain multiple groups of unpacked contents arranged in sequence and determine the unpacking attribute information of each group of unpacked contents, wherein the unpacking attribute information of each group of unpacked contents includes the transaction ID of the read transaction request to which it belongs and the storage location information in the response data memory allocated for the unpacked contents; the unpacking attribute information of each group of unpacked contents is sequentially written into the transaction sorting FIFO memory in the order of arrangement and the value of the write pointer is used as the unpacking ID of the unpacked contents, and the unpacking request carrying the unpacked contents and the corresponding unpacking ID is sent to the corresponding slave device via the on-chip network; When an unpacking response returned by the slave device in response to an unpacking request is obtained via the on-chip network, the unpacking attribute information corresponding to the unpacking ID carried by the unpacking response in the transaction sorting FIFO memory is determined, and the unpacking response is stored in the response data memory according to the storage location information in the unpacking attribute information; based on the read pointer of the transaction sorting FIFO memory, each unpacking response is read from the corresponding storage location information in the response data memory in the order of arrangement of each group of unpacking contents, and the unpacking ID carried by the read unpacking response is replaced with the transaction ID in the corresponding unpacking attribute information, and then returned to the master device in sequence.
2. The read transaction management method according to claim 1, characterized in that: The read transaction management method further includes: Determine the type of the on-chip network to be entered by the acquired read transaction request, where the on-chip network type is a consistent network or a non-consistent network; The request data carried by the read transaction request is sequentially split into a plurality of groups of unpacked contents according to the transaction data volume of the on-chip network type, and storage location information in the response data memory is sequentially allocated to each group of unpacked contents according to the transaction data volume of each group of unpacked contents, and the unpacked attribute information of each group of unpacked contents is determined to include the transaction ID of the read transaction request, the on-chip network type to be entered by the read transaction request, and the storage location information of the unpacked contents; wherein the data storage bit width of the response data memory is a predetermined bus bit width, and the predetermined bus bit width does not exceed the transaction data volume of the consistency network; The read transaction request to enter the consistent network is unpacked and the generated multiple unpacking requests are sent to the slave device via the consistent network in sequence; the read transaction request to enter the inconsistent network is unpacked and the generated multiple unpacking requests are sent to the slave device via the inconsistent network in sequence.
3. The read transaction management method according to claim 2, characterized in that: The response data storage device includes a plurality of storage blocks whose storage addresses are continuous and managed by a linked list technology. The data storage capacity of each storage block is consistent with the transaction data capacity corresponding to the inconsistency network. The storage location information allocated to each group of unpacked content in the response data storage device includes: For multiple groups of unpacked contents obtained by splitting the read transaction request to enter the consistency network, each storage block in the response data storage device that is in an idle state is sequentially allocated to each group of unpacked contents in the order of arrangement until the storage block is full or until all the unpacked contents are allocated, and each storage block is allocated to several groups of unpacked contents to enter the consistency network; For the multiple groups of unpacked contents split from the read transaction request to enter the inconsistency network, the idle storage blocks in the response data storage device are allocated to each group of unpacked contents in sequence according to the arrangement order until all the unpacked contents are allocated, and each storage block is allocated to a group of unpacked contents to enter the inconsistency network.
4. The read transaction management method according to claim 3, characterized in that: The storage location information of each group of unpacked contents is the storage base address of the storage block allocated to the unpacked contents, and the unpacking attribute information of each group of unpacked contents also includes the package number of the unpacked contents, and the package number indicates the arrangement order of the unpacked contents in all the unpacked contents obtained by unpacking the corresponding read transaction request; Storing the unpacking response in the response data storage according to the storage location information in the unpacking attribute information comprises: Determine the storage base address according to the storage location information in the unpacking attribute information, determine the offset address according to the package number in the unpacking attribute information and determine the target storage address in combination with the storage base address, and store the unpacking response at the target storage address in the response data storage device.
5. The read transaction management method according to claim 4, characterized in that: Divide each storage block from the storage base address according to the predetermined bus width and set k storage entries, the data storage capacity of each storage entry is the predetermined bus width, and the predetermined bus width is consistent with the transaction data volume corresponding to the consistency network; each storage entry corresponds to an offset address and has an entry identifier, and the integer parameter k≥2; Determining the offset address according to the package number in the unpacking attribute information and determining the target storage address in combination with the storage base address includes: For each unpacking response with a predetermined bus width received via the consistency network, a packet number in the unpacking attribute information corresponding to the unpacking ID carried by the unpacking response is used to perform a modulus operation on k, and an offset address of a storage entry corresponding to the modulus operation result is used as the offset address of the unpacking response to calculate a target storage address, and after the unpacking response is stored at the target storage address, an entry flag of the storage entry at the target storage address is set to be valid to indicate that the storage entry is full; For each unpacking response with a predetermined bus width received via an inconsistent network, the target storage address is calculated using the offset address of the storage entry marked as invalid by the first entry starting from the storage base address in the unpacking attribute information corresponding to the unpacking ID carried by the unpacking response as the offset address of the unpacking response; after the unpacking response is stored at the target storage address, the entry identifier of the storage entry at the target storage address is set to valid to indicate that the storage entry is full; when the entry identifier of the storage entry is invalid, it indicates that the storage entry is empty.
6. The read transaction management method according to claim 5, characterized in that: The read transaction management device further includes a bit width conversion component, which sequentially splits the request data carried by the read transaction request to obtain multiple groups of unpacked contents and sequentially allocates storage location information in the response data storage device to each group of unpacked contents. The information also includes: After converting the request data carried by the read transaction request into the predetermined bus bit width by using the bit width conversion component, splitting the request into multiple groups of unpacked contents according to the transaction data volume of the on-chip network type, wherein the data bit width of each group of unpacked contents is the predetermined bus bit width and the data volume is the transaction data volume of the on-chip network type; after generating an unpacked request according to each group of unpacked contents, converting the unpacked request into a data transmission bit width that conforms to the on-chip network by using the bit width conversion component, and then sending the unpacked request to the slave device via the on-chip network; After receiving the original response result that complies with the data transmission bit width of the network on chip via the network on chip, the bit width conversion component is used to convert the original response result for one depacketization request into a plurality of depacketization responses with a predetermined bus bit width.
7. The read transaction management method according to claim 5, characterized in that: The unpacking attribute information of each group of unpacking contents also includes the transaction length of the unpacking contents, each entry in the transaction sorting FIFO memory for storing the unpacking attribute information also has a response identifier and is initialized to an invalid state, and the read transaction management method also includes: After storing all the unpacking responses carrying the same unpacking ID in the response data memory, setting the response flag of the entry containing the unpacking attribute information corresponding to the unpacking ID carried by the unpacking response in the transaction sorting FIFO memory to a valid state; When it is detected that the response identifier of the entry corresponding to the current read pointer is in an invalid state, the current read pointer is kept unchanged. When it is detected that the response identifier of the entry corresponding to the current read pointer is in a valid state, the target read address and the transaction length are determined according to the unpacking attribute information in the entry corresponding to the current read pointer, and each unpacking response is read in sequence according to the transaction length from the target read address of the response data storage, and the read pointer is updated.
8. The read transaction management method according to claim 7, characterized in that: The read transaction management method further includes: After returning any one beat of the unpacking response to the master device, setting the entry identifier of the storage entry of the storage block for storing the unpacking response in the response data storage device to be invalid; For each group of unpacked content whose on-chip network type to be entered by the read transaction request is a coherent network, after each unpacked response of the unpacked request generated by the unpacked content is returned to the master device, the response identifier of the entry where the unpacked attribute information of the unpacked content is located in the transaction sorting FIFO memory is reset to an invalid state, and when it is detected that the result of taking the package number of the returned unpacked content modulo k is k-1 or when it is detected that the response identifier of the entry where the unpacked attribute information of the last group of unpacked content is located is reset to an invalid state, the storage block allocated to the unpacked content is recycled and reset to an idle state; For each group of unpacked content whose on-chip network type to which the read transaction request belongs is a non-consistent network, after each unpacking response of the unpacking request generated by the unpacked content is returned to the master device, the response identifier of the entry in the transaction sorting FIFO memory where the unpacking attribute information of the unpacked content is located is reset to an invalid state, and the storage block allocated to the unpacked content is recovered and reset to an idle state.
9. The read transaction management method according to claim 8, characterized in that: The unpacking attribute information of each group of unpacking contents also includes an end identifier. Among the multiple groups of unpacking contents arranged in sequence obtained by splitting a read transaction request, the end identifier of the last group of unpacking contents is in a valid state, and the end identifiers of the other groups of unpacking contents are in an invalid state.
10. The read transaction management method according to claim 1, characterized in that: The read transaction management device includes a plurality of transaction sorting FIFO memories, each of which has a unique queue identifier, and the read transaction management method further includes: After multiple groups of unpacked contents obtained by unpacking a read transaction request are sent to the slave device in sequence via the on-chip network, other read transaction requests sent by the master device are continued to be obtained; the unpacking attribute information of the multiple groups of unpacked contents obtained by splitting each read transaction request is sequentially written into the same transaction sorting FIFO memory, and the unpacking attribute information of the unpacked contents obtained by splitting different read transaction requests is written into different transaction sorting FIFO memories, and the unpacking ID of each group of unpacked contents includes the queue identifier of the transaction sorting FIFO memory written therein and the value of the write pointer when the unpacking attribute information is written into the transaction sorting FIFO memory; When the unpacking response is returned to the master device, the unpacking responses read based on the read pointers of the transaction ordering FIFO memories are arbitrated and returned to the master device in sequence.
Citation Information
Patent Citations
System and method for realizing communication of master chip and extended chip
CN102508808A
Data sending method and device, data receiving method and device and electronic equipment
CN109756491A
Hardware reordering method and device and digital sequential circuit
CN117076362A
PCIE (Peripheral Component Interface Express)-based host inter-domain communication method and device
CN118827806A
Flexible address mapping for a NoC in an integrated circuit
US10963421B1
Cited By
Data transmission method and device, electronic equipment, readable storage medium and program product
CN120416368A