A protocol conversion device, method, equipment, medium and product
By designing a protocol conversion device, the conversion from ACE protocol to CHI protocol is realized, which solves the problem that the ACE processor core cannot access the multi-core CPU system of the CHI architecture, and achieves cache consistency and higher computing capabilities.
Patent Information
- Application Number
- CN202411312095.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-20
- Publication Date
- 2025-02-07
- Estimated Expiration
- 2044-09-20
AI Technical Summary
The ACE processor core cannot be connected to the multi-core CPU system of the CHI architecture, resulting in the inability to achieve cache consistency.
A protocol conversion device is designed, including a first conversion component and a second conversion component, which is connected to the processor and the master node respectively, and records transaction information through the transaction management component to realize the conversion of the ACE protocol to the CHI protocol.
It realizes the ACE processor core to be connected to the multi-core CPU system with the CHI architecture, maintains cache consistency, provides richer component choices for the multi-core processor system, and improves computing capabilities.
Smart Images

Figure CN118827819B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of multi-core processors, and in particular to a protocol conversion device, method, equipment, medium and product. Background Art
[0002] With the rapid development of artificial intelligence, people's demand for computing power is increasing. Single-core processors can no longer meet computing needs. The parallel processing mode of multi-core processor architecture provides faster and more efficient computing power.
[0003] Each core in a multi-core processor has a cache. Multi-core systems need to process cache data consistently to prevent errors caused by processors using outdated data. The Advanced eXtensible Interface (AXI) is the most important part of the Advanced Microcontroller Bus Architecture (AMBA) 3.0 protocol. It is an on-chip bus for high performance, high bandwidth, and low latency. Both the AXI Coherency Extensions (ACE) and the Coherent Hub Interface (CHI) protocols can provide consistency maintenance functions.
[0004] The ACE protocol is a consistency extension protocol of the AXI protocol and can be used for multi-core consistency processing. The CHI protocol, as an evolution of the ACE protocol, is a more popular protocol for multi-core processor cache consistency and has a wider range of applications. Currently, there is only a cache consistency implementation based on the CHI protocol, which does not involve the processing method of ACE and CHI conversion, resulting in the ACE processor core being unable to access the multi-core CPU system of the CHI architecture.
[0005] It can be seen that how to implement the multi-core CPU system with ACE processor core connected to CHI architecture is a problem that needs to be solved by technical personnel in this field. Summary of the invention
[0006] The purpose of the embodiments of the present invention is to provide a protocol conversion device, method, equipment, medium and product, which can solve the problem that the ACE processor core cannot access the multi-core CPU system of the CHI architecture.
[0007] To solve the above technical problems, an embodiment of the present invention provides a protocol conversion device, comprising a first conversion component, a second conversion component, and a transaction management component respectively connected to the first conversion component and the second conversion component; the input end of the first conversion component is connected to a processor of a first bus protocol, and the output end of the first conversion component is connected to a master node of a second bus protocol; the output end of the second conversion component is connected to the processor of the first bus protocol, and the input end of the second conversion component is connected to the master node of the second bus protocol; the transaction management component is used to record the corresponding transaction information when the first conversion component and the second conversion component process transactions;
[0008] The first conversion component is used to receive the pending transaction transmitted by the processor; convert the pending transaction into a second bus protocol transaction according to the message format of the second bus protocol and the processing method matching the transaction type to which the pending transaction belongs, and transmit the second bus protocol transaction to the master node;
[0009] The second conversion component is used to receive information transmitted by the master node; convert the information into a first bus protocol transaction according to the message format of the first bus protocol and a processing method matching the information, and transmit the first bus protocol transaction to the processor.
[0010] On the one hand, in the case where the pending transactions include write channel transactions and read channel transactions, the first conversion component is used to transmit the first bus protocol identification information of the pending transactions to the transaction management component so that the transaction management component can record the first bus protocol identification information; according to the message format of the second bus protocol, the pending transactions are converted into second bus protocol request messages, and the second bus protocol request messages are transmitted to the master node.
[0011] On the one hand, in the case that the pending transaction includes a snoop response, the first conversion component is used to convert the information carried in the pending transaction and the transaction identification information recorded in its own record table into a second bus protocol snoop response message according to the message format of the second bus protocol, and transmit the second bus protocol snoop response message carrying the snoop final state information to the master node, so that the master node can achieve cache consistency with the processor based on the snoop final state information.
[0012] On the one hand, in the case where the information belongs to response information, the second conversion component is used to transmit the second bus protocol identification information corresponding to the response information to the transaction management component, and obtain the matching first bus protocol identification information from the transaction management component; according to the message format of the first bus protocol, the response information and the first bus protocol identification information are converted into a first bus protocol response message, and the first bus protocol response message carrying the response final state information is transmitted to the processor, so that the processor can achieve cache consistency with the master node based on the response final state information.
[0013] On the one hand, in the case where the information belongs to monitoring request information, the second conversion component is used to transmit the transaction identification information corresponding to the monitoring request information to the first conversion component, so that the first conversion component records the transaction identification information in its own record table; according to the message format of the first bus protocol, the monitoring request information is converted into a first bus protocol monitoring request, and the first bus protocol monitoring request is transmitted to the processor.
[0014] On the one hand, the write channel transaction includes a write data transaction and a write channel no data transaction;
[0015] The first conversion component is used to receive a write request transmitted by the processor, and transmit the write address, write channel transaction number and write channel transaction type carried by the write request to the transaction management component, so that the transaction management component records the write address, write channel transaction number and write channel transaction type corresponding to the write request, and pulls up the status information; according to the message format of the second bus protocol, the write address, write channel transaction number and write channel transaction type carried by the write request are converted into a second bus protocol write request, and the second bus protocol write request is transmitted to the master node;
[0016] The first conversion component is also used to receive write data transmitted by the processor, and convert the write data into a second bus protocol write message according to the message format of the second bus protocol; receive data packet identification information transmitted by the transaction management component, use the data packet identification information as the second bus protocol transaction number, and transmit the second bus protocol write message and the second bus protocol transaction number to the master node; wherein the data packet identification information is identification information generated by the transaction management component based on the second bus protocol write request.
[0017] On the one hand, the read channel transaction includes a read data transaction and a read channel no data transaction;
[0018] The first conversion component is used to receive the read channel transaction transmitted by the processor, and transmit the read address, read channel transaction number and read channel transaction type carried by the read channel transaction to the transaction management component, so that the transaction management component can record the read address, read channel transaction number and read channel transaction type corresponding to the read channel transaction, and pull up the status information; according to the message format of the second bus protocol, the read address, read channel transaction number and read channel transaction type carried by the read channel transaction are converted into a second bus protocol read request, and the second bus protocol read request is transmitted to the master node.
[0019] On the one hand, the first conversion component includes a write request conversion module, a read request conversion module, a request generation module and a data generation module;
[0020] The write request conversion module is connected to the request generation module and the data generation module respectively, and is used to transmit the write address, write channel transaction number and write channel transaction type carried by the write request to the request generation module; and transmit the write data to the data generation module;
[0021] The request generating module is used to convert the received write address, write channel transaction number and write channel transaction type into a second bus protocol write request according to the message format of the second bus protocol, and transmit the second bus protocol write request to the master node;
[0022] The data generation module is configured to receive the write data transmitted by the write request conversion module, convert the write data into a second bus protocol write message according to the message format of the second bus protocol; receive the data packet identification information transmitted by the transaction management component, use the data packet identification information as the second bus protocol transaction number, and transmit the second bus protocol write message and the second bus protocol transaction number to the master node;
[0023] The read request conversion module is connected to the request generation module and is used to transmit the read address, read channel transaction number and read channel transaction type carried by the read channel transaction to the request generation module;
[0024] The request generation module is also used to convert the received read address, read channel transaction number and read channel transaction type into a second bus protocol read request according to the message format of the second bus protocol, and transmit the second bus protocol read request to the master node.
[0025] On the one hand, the monitoring response includes a monitoring no data response and a monitoring data response;
[0026] The first conversion component is used to record transaction identification information in an information recording table; receive a monitoring no data response and a monitoring data response transmitted by the processor; convert the monitoring no data response, the monitoring data response and the transaction identification information into a second bus protocol monitoring message, transmit the second bus protocol monitoring message carrying the monitoring final state information to the master node, and clear the information recording table.
[0027] In one aspect, the first conversion component further comprises a monitoring response conversion module and a response generation module;
[0028] The monitoring response conversion module is connected to the data generation module and the response generation module respectively, and is used to receive the transaction identification information transmitted by the monitoring request conversion module; receive the monitoring no data response and the monitoring data response transmitted by the processor; if the monitoring data response is not empty, transmit the monitoring no data response, the monitoring data response and the transaction identification information to the data generation module; if the monitoring data response is empty, transmit the monitoring no data response and the transaction identification information to the response generation module,
[0029] The data generation module is used to convert the monitoring no data response, the monitoring data response and the transaction identification information into a second bus protocol monitoring data message, transmit the second bus protocol monitoring data message carrying the monitoring final state information to the master node, and clear the information recording table;
[0030] The response generation module is used to convert the monitoring no data response and the transaction identification information into a second bus protocol monitoring response message, transmit the second bus protocol monitoring response message carrying the monitoring final state information to the master node, and clear the information recording table.
[0031] On the one hand, the response information includes write response information and read response information;
[0032] The second conversion component is used to receive the write response information transmitted by the master node, transmit the second bus protocol write identification information corresponding to the write response information to the transaction management component, and obtain the first bus protocol write identification information corresponding to the write request from the transaction management component; according to the message format of the first bus protocol, convert the write response information and the first bus protocol write identification information into a first bus protocol write response message, and transmit the first bus protocol write response message to the processor;
[0033] The second conversion component is also used to receive the read response information transmitted by the master node, transmit the second bus protocol read identification information corresponding to the read response information to the transaction management component, and obtain the first bus protocol read identification information corresponding to the read request from the transaction management component; according to the message format of the first bus protocol, convert the read response information and the first bus protocol read identification information into a first bus protocol read response message, and transmit the first bus protocol read response message carrying the read response final state information to the processor.
[0034] On the one hand, the read response information includes no-data read response information and read data response information; the second conversion component includes a read-write response conversion module, a read data response conversion module and a data generation module;
[0035] The read-write response conversion module is used to process the write response information and the no-data read response information;
[0036] The read data response conversion module is used to receive the read data response information transmitted by the master node; transmit the second bus protocol transaction number and the second bus protocol data identification information corresponding to the read data response information to the transaction management component; transmit the read data response information to the data generation module;
[0037] The data generation module is used to receive the read data response information transmitted by the read data response conversion module, obtain the matching first bus protocol transaction number and first bus protocol transaction type from the transaction management component; convert the read data response information, the first bus protocol transaction number and the first bus protocol transaction type into a first bus protocol read data response message according to the message format of the first bus protocol, and transmit the first bus protocol read data response message carrying the read data response final state information to the processor.
[0038] On the one hand, the second conversion component also includes a monitoring request conversion module;
[0039] The monitoring request conversion module is used to receive the monitoring request transmitted by the master node; record the second bus protocol transaction number and the first bus protocol transaction type corresponding to the monitoring request in the record table of the monitoring response conversion module; transmit the address corresponding to the monitoring request to the transaction management component, so that the transaction management component determines whether to start conflict processing according to each received address;
[0040] The monitoring request conversion module is also used to convert the monitoring request into a first bus protocol monitoring request according to the message format of the first bus protocol when conflict handling is not started, and transmit the first bus protocol monitoring request to the processor; when conflict handling is started, the monitoring request is processed according to the processing flow matched by the started conflict handling.
[0041] In one aspect, the first conversion component includes a first channel group connected to a processor of a first bus protocol; the second conversion component includes a second channel group connected to the processor of the first bus protocol; the first conversion component includes a third channel group connected to a master node of a second bus protocol; the second conversion component includes a fourth channel group connected to a master node of the second bus protocol;
[0042] The first conversion component is used to receive the pending transaction transmitted by the processor through the first channel group; and transmit the second bus protocol transaction to the master node through the third channel group;
[0043] The second conversion component is used to receive the information transmitted by the master node through the fourth channel group; and transmit the first bus protocol transaction to the processor through the second channel group.
[0044] On the one hand, the first channel group includes a write channel group, a read channel, a monitoring response channel and a monitoring data channel;
[0045] The write channel group is connected to the write request conversion module and is used to receive the write channel transaction initiated by the processor; and transmit the write channel transaction to the write request conversion module;
[0046] The read channel is connected to the read request conversion module, and is used to receive the read channel transaction transmitted by the processor, and transmit the read channel transaction to the read request conversion module;
[0047] The monitoring response channel and the monitoring data channel are connected to the monitoring response conversion module, and are used to receive the monitoring response transmitted by the processor, and transmit the monitoring response to the monitoring response conversion module.
[0048] On the one hand, the write channel group includes a write request channel and a write data channel;
[0049] The write request channel is used to receive the write request transmitted by the processor and transmit the write request to the write request conversion module;
[0050] The write data channel is used to receive the write data transmitted by the processor and transmit the write data to the write request conversion module;
[0051] The monitoring response channel is used to receive the monitoring no data response transmitted by the processor, and transmit the monitoring no data response to the monitoring response conversion module;
[0052] The monitoring data channel is used to receive the monitoring data response transmitted by the processor, and transmit the monitoring data response to the monitoring response conversion module.
[0053] On the one hand, the second channel group includes a write response channel, a read response channel and a listen request channel;
[0054] The write response channel is connected to the read-write response conversion module, and is used to receive the first bus protocol response message transmitted by the read-write response conversion module, and transmit the first bus protocol response message to the processor;
[0055] The read response channel is connected to the read-write response conversion module and the data generation module respectively, and is used to receive the first bus protocol read response message carrying the read response final state information transmitted by the read-write response conversion module, and transmit the first bus protocol read response message carrying the read response final state information to the processor; receive the first bus protocol read data response message carrying the read data response final state information transmitted by the data generation module, and transmit the first bus protocol read data response message carrying the read data response final state information to the processor;
[0056] The monitoring request channel is used to transmit a first bus protocol monitoring request to the processor.
[0057] On the one hand, the third channel group includes a request channel, a data channel and a response channel;
[0058] The request channel is connected to the request generation module and is used to feed back the second bus protocol write request and the second bus protocol read request transmitted by the request generation module to the master node;
[0059] The data channel is connected to the data generation module, and is used to feed back the second bus protocol write message and the second bus protocol transaction number transmitted by the data generation module to the master node; and transmit the second bus protocol monitoring data message carrying the monitoring final state information to the master node;
[0060] The response channel is connected to the response generation module, and is used to feed back the second bus protocol monitoring response message carrying the monitoring final state information transmitted by the response generation module to the master node.
[0061] On the one hand, the fourth channel group includes a response channel, a data channel and a monitoring channel;
[0062] The response channel is connected to the read-write response conversion module, and is used to transmit the write response information and the data-free read response information transmitted by the master node to the read-write response conversion module;
[0063] The data channel is connected to the read data response conversion module, and is used to transmit the read data response information transmitted by the master node to the read data response conversion module;
[0064] The monitoring channel is connected to the monitoring request conversion module and is used to transmit the monitoring request transmitted by the master node to the monitoring request conversion module.
[0065] On the one hand, the first bus protocol is the AXI consistency extension protocol; the second bus protocol is the consistency hub interface protocol.
[0066] The embodiment of the present invention further provides a protocol conversion method, which is applicable to the above-mentioned protocol conversion device, and the method includes:
[0067] receiving pending transactions transmitted by a processor;
[0068] According to the message format of the second bus protocol and the processing mode matching the transaction type to which the transaction to be processed belongs, converting the transaction to be processed into a second bus protocol transaction, and transmitting the second bus protocol transaction to the master node;
[0069] Receiving information transmitted by the master node;
[0070] According to the message format of the first bus protocol and the processing method matching the information, the information is converted into a first bus protocol transaction, and the first bus protocol transaction is transmitted to the processor.
[0071] The embodiment of the present invention further provides a protocol conversion device, including:
[0072] Memory for storing computer programs;
[0073] A processor is used to execute the computer program to implement the steps of the above-mentioned protocol conversion method.
[0074] An embodiment of the present invention further provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the steps of the above-mentioned protocol conversion method are implemented.
[0075] An embodiment of the present invention further provides a computer program product, including a computer program / instruction, which implements the steps of the above-mentioned protocol conversion method when executed by a processor.
[0076] It can be seen from the above technical solution that the protocol conversion device includes a first conversion component, a second conversion component, and a transaction management component connected to the first conversion component and the second conversion component respectively; the input end of the first conversion component is connected to the processor of the first bus protocol, and the output end of the first conversion component is connected to the master node of the second bus protocol; the output end of the second conversion component is connected to the processor of the first bus protocol, and the input end of the second conversion component is connected to the master node of the second bus protocol; the transaction management component is used to record the transaction information corresponding to the first conversion component and the second conversion component when processing transactions. The first conversion component is used to receive the pending transaction transmitted by the processor; the pending transaction transmitted by the processor conforms to the first bus protocol. In order to realize the communication with the master node of the second bus protocol, the pending transaction can be converted into the second bus protocol transaction according to the message format of the second bus protocol and the processing method matching the transaction type to which the pending transaction belongs, and the second bus protocol transaction is transmitted to the master node. The second conversion component is used to receive the information transmitted by the master node; the information transmitted by the master node conforms to the second bus protocol. In order to realize the communication with the processor of the first bus protocol, the information can be converted into the first bus protocol transaction according to the message format of the first bus protocol and the processing method matching the information, and the first bus protocol transaction is transmitted to the processor.
[0077] The beneficial effect of the present invention is that, based on the first bus protocol and the second bus protocol, the first bus protocol interface and the second bus protocol interface are designed and implemented for conversion, and the processor connected to the first bus protocol interface is connected as a request node to a multi-core processor system based on the second bus protocol. The versatility, flexibility and scalability of the second bus protocol make its application in chip systems more and more extensive. The present invention can connect the processor core of the first bus protocol to the multi-core processor system based on the second bus protocol based on the protocol conversion device, while maintaining cache consistency, providing a richer component selection for the multi-core processor system of the second bus protocol, thereby achieving higher computing power. BRIEF DESCRIPTION OF THE DRAWINGS
[0078] In order to more clearly illustrate the embodiments of the present invention, the following briefly introduces the drawings required for use in the embodiments. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.
[0079] Figure 1 A schematic diagram of the structure of a protocol conversion device provided by an embodiment of the present invention;
[0080] Figure 2 A schematic diagram of the distribution of modules in a protocol conversion device provided by an embodiment of the present invention;
[0081] Figure 3 A schematic diagram of the structure of a multi-core processor system provided by an embodiment of the present invention;
[0082] Figure 4 A flowchart of a protocol conversion method provided by an embodiment of the present invention;
[0083] Figure 5 A structural diagram of a protocol conversion device provided in an embodiment of the present invention. DETAILED DESCRIPTION
[0084] The following will be combined with the drawings in the embodiments of the present invention to clearly and completely describe the technical solutions in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
[0085] The terms "including" and "having" in the specification of the present invention and the above-mentioned drawings, as well as any variations thereof, are intended to cover non-exclusive inclusions. For example, a process, method, system, product or device including a series of steps or units is not limited to the listed steps or units, but may include steps or units that are not listed.
[0086] In order to enable those skilled in the art to better understand the solution of the present invention, the present invention is further described in detail below in conjunction with the accompanying drawings and specific implementation methods.
[0087] As an evolution of the ACE protocol, the CHI protocol is a popular protocol for cache consistency in multi-core processors. It has richer functions and stronger scalability, and can include more types of components, such as standalone processors, processor clusters, graphics processors, memory controllers, I / O bridges, PCIe subsystems, and interconnects. The CHI protocol has a wider range of applications. According to the system driver performance, power consumption, and area requirements, the CHI architecture allows component connections to choose a flexible topology, which can use a crossbar structure for small systems, a ring structure for medium-sized systems, and a mesh structure for large systems.
[0088] Since there are still some processor cores based on AXI or ACE protocols, in order to enable them to access the CHI architecture system as request nodes (RN), it is necessary to build an interface that can convert ACE and CHI protocols and has RN functions.
[0089] Therefore, the embodiment of the present invention provides a protocol conversion device, method, equipment, medium and product, which is based on the first bus protocol and the second bus protocol, and is designed to realize the conversion of the first bus protocol interface and the second bus protocol interface, so that the processor connected to the first bus protocol interface can be connected as a request node to the multi-core processor system based on the second bus protocol. The first bus protocol can be the ACE protocol, and the second bus protocol can be the CHI protocol. According to the protocol conversion scheme provided by the embodiment of the present invention, the ACE processor core can be connected to the multi-core CPU system of the CHI architecture.
[0090] Next, a protocol conversion device provided by an embodiment of the present invention is described in detail. Figure 1 A structural schematic diagram of a protocol conversion device provided for an embodiment of the present invention, the device includes a first conversion component 11, a second conversion component 12, and a transaction management component 13 connected to the first conversion component 11 and the second conversion component 12 respectively; the input end of the first conversion component 11 is connected to the processor of the first bus protocol, and the output end of the first conversion component 11 is connected to the master node of the second bus protocol; the output end of the second conversion component 12 is connected to the processor of the first bus protocol, and the input end of the second conversion component 12 is connected to the master node of the second bus protocol; the transaction management component 13 is used to record the corresponding transaction information when the first conversion component 11 and the second conversion component 12 process transactions.
[0091] In the embodiment of the present invention, for the sake of distinction, the device using the first bus protocol may be referred to as a processor, and the device using the second bus protocol may be referred to as a home node (HN). In order to enable the processor of the first bus protocol to access the system where the home node is located, the processor of the first bus protocol may be regarded as a request node (RN).
[0092] The first conversion component 11 is used to receive a transaction to be processed transmitted by a processor.
[0093] The processor uses the first bus protocol, so the pending transactions also comply with the first bus protocol. In order to transmit the pending transactions transmitted by the processor to the master node so that the master node can process the pending transactions, it is necessary to convert the format of the pending transactions, and convert the pending transactions that comply with the first bus protocol into transactions that comply with the second bus protocol.
[0094] In the embodiment of the present invention, the message format of the second bus protocol can be set in the first conversion component 11, so as to realize the conversion from the first bus protocol to the second bus protocol.
[0095] Considering the actual application, the pending transactions may include write channel transactions and read channel transactions. Among them, write channel transactions may include write data transactions and write channel no data transactions; read channel transactions may include read data transactions and read channel no data transactions. Write channel no data transactions include cache line removal transactions (Evict), and read channel no data transactions refer to no data transactions except Evict.
[0096] Different types of pending transactions have different corresponding processing methods, and the first conversion component can record the processing methods corresponding to different types of pending transactions. The first conversion component 11 can convert the pending transaction into a second bus protocol transaction according to the message format of the second bus protocol and the processing method matching the transaction type to which the pending transaction belongs, and transmit the second bus protocol transaction to the master node.
[0097] The second conversion component 12 is used to receive information transmitted by the master node.
[0098] The master node uses the second bus protocol, so the information transmitted by the master node also complies with the second bus protocol. In order to transmit the information transmitted by the master node to the processor so that the processor can process the information, the format of the information needs to be converted, and the information that complies with the second bus protocol is converted into a transaction that complies with the first bus protocol.
[0099] In the embodiment of the present invention, the message format of the first bus protocol can be set in the second conversion component 12, so as to realize the conversion from the second bus protocol to the first bus protocol. The second conversion component 12 can convert the information into the first bus protocol transaction according to the message format of the first bus protocol and the processing method matching the information, and transmit the first bus protocol transaction to the processor.
[0100] Different types of pending transactions have different processing methods. When the pending transactions include write channel transactions and read channel transactions, the first conversion component 11 can transmit the first bus protocol identification information of the pending transaction to the transaction management component 13, so that the transaction management component 13 can record the first bus protocol identification information; according to the message format of the second bus protocol, the pending transaction is converted into a second bus protocol request message, and the second bus protocol request message is transmitted to the master node.
[0101] For a write channel transaction and a read channel transaction, the first bus protocol identification information may include an address (Addr), a transaction number (ID), and a transaction type (AxSNOOP) corresponding to the write channel transaction and the read channel transaction.
[0102] Regarding the monitoring response, when the transaction to be processed includes a monitoring response, the first conversion component 11 can convert the information carried in the transaction to be processed and the transaction identification information recorded in its own record table into a second bus protocol monitoring message according to the message format of the second bus protocol, and transmit the second bus protocol monitoring message carrying the monitoring final state information to the master node, so that the master node can achieve cache consistency with the processor based on the monitoring final state information.
[0103] The monitoring final state information refers to the state of the processor after completing the monitoring request. By carrying the monitoring final state information in the second bus protocol monitoring message, the master node can intuitively understand the current state of the processor, thereby achieving cache consistency with the processor.
[0104] After receiving the request transmitted by the processor, the master node may feed back response information to the processor. The master node may also actively transmit a monitoring request to the processor. Therefore, in the embodiment of the present invention, the information transmitted by the master node to the second conversion component 12 may include response information and monitoring request information.
[0105] Taking the response information as an example, when the information belongs to the response information, the second conversion component 12 can transmit the second bus protocol identification information corresponding to the response information to the transaction management component 13, and obtain the matching first bus protocol identification information from the transaction management component 13; according to the message format of the first bus protocol, the response information and the first bus protocol identification information are converted into a first bus protocol response message, and the first bus protocol response message carrying the response final state information is transmitted to the processor, so that the processor can achieve cache consistency with the main node based on the response final state information.
[0106] With respect to the response information, the second bus protocol identification information may include a transaction number (TxnID) conforming to the second bus protocol and an identification of the response information conforming to the second bus protocol.
[0107] Taking the monitoring request information as an example, when the information belongs to the monitoring request information, the second conversion component 12 can transmit the transaction identification information corresponding to the monitoring request information to the first conversion component 11, so that the first conversion component 11 records the transaction identification information in its own record table; according to the message format of the first bus protocol, the monitoring request information is converted into a first bus protocol monitoring request, and the first bus protocol monitoring request is transmitted to the processor.
[0108] Pending processor transactions may include write channel transactions and read channel transactions.
[0109] The write channel transaction may include a write data transaction and a write channel no data transaction.
[0110] Taking a write data transaction as an example, in actual application, the processor first transmits a write request to the first conversion component 11, and then transmits the write data to the first conversion component.
[0111] After receiving the write request transmitted by the processor, the first conversion component 11 can transmit the write address, write channel transaction number and write channel transaction type carried in the write request to the transaction management component 13, so that the transaction management component 13 can record the write address, write channel transaction number and write channel transaction type corresponding to the write request, and pull up the status information; according to the message format of the second bus protocol, the write address, write channel transaction number and write channel transaction type carried by the write request are converted into a second bus protocol write request, and the second bus protocol write request is transmitted to the master node.
[0112] The transaction manager 13 (TM) pulls the status information (T_stat) high to indicate that there is a transaction being processed. After completing the processing of the transaction, the transaction manager 13 can pull the status information low to indicate that there is no transaction being processed.
[0113] The first conversion component 11 is also used to receive write data transmitted by the processor, and convert the write data into a second bus protocol write message according to the message format of the second bus protocol; receive the data packet identification information (Data Buffer ID, DBID) transmitted by the transaction management component 13, use the data packet identification information as the second bus protocol transaction number, and transmit the second bus protocol write message and the second bus protocol transaction number to the master node.
[0114] There are two forms of transaction numbers: one is a transaction number that complies with the first bus protocol, referred to as the first bus protocol transaction number, which can be represented by ID. The other is a transaction number that complies with the second bus protocol, referred to as the second bus protocol transaction number, which can be represented by TxnID.
[0115] The data packet identification information is identification information generated based on the second bus protocol write request by the transaction management component 13. Each request has its unique corresponding identification information, which complies with the second bus protocol, and thus can be directly used as the second bus protocol transaction number.
[0116] For read channel transactions, read channel transactions can include read data transactions and read channel no data transactions. The processing flow of read data transactions and read channel no data transactions is similar, and no distinction is made in the following introduction. The read channel transaction is used as an example for explanation.
[0117] The first conversion component 11 is used to receive the read channel transaction transmitted by the processor, and transmit the read address, read channel transaction number and read channel transaction type carried by the read channel transaction to the transaction management component 13, so that the transaction management component 13 can record the read address, read channel transaction number and read channel transaction type corresponding to the read channel transaction, and pull up the status information; according to the message format of the second bus protocol, the read address, read channel transaction number and read channel transaction type carried by the read channel transaction are converted into a second bus protocol read request, and the second bus protocol read request is transmitted to the master node.
[0118] In the embodiment of the present invention, the first conversion component 11 is used to process transactions transmitted from a processor of a first bus protocol to a master node of a second bus protocol.
[0119] Regarding the operations required to be performed when the first conversion component 11 processes write channel transactions and read channel transactions, the first conversion component 11 may include a write request conversion module (w_req), a read request conversion module (r_req), a request generation module (req_gen) and a data generation module (dat_gen).
[0120] The write request conversion module is connected to the request generation module and the data generation module respectively, and is used to transmit the write address, write channel transaction number and write channel transaction type carried by the write request to the request generation module; and transmit the write data to the data generation module.
[0121] The request generation module is used to convert the received write address, write channel transaction number and write channel transaction type into a second bus protocol write request according to the message format of the second bus protocol, and transmit the second bus protocol write request to the master node.
[0122] For different transactions, their corresponding addresses, transaction numbers and transaction types are different. In order to distinguish different transactions, the corresponding addresses, transaction numbers and transaction types can be used as identifiers of each transaction. For the convenience of description, for write channel transactions, the corresponding address can be called the write address, the corresponding transaction number can be called the write channel transaction number, and the corresponding transaction type can be called the write channel transaction type.
[0123] It should be noted that the message format of the second bus protocol includes format requirements corresponding to each field. For a write request, the write address, write channel transaction number, and write channel transaction type are information corresponding to three common fields in the message format, not all fields in the second bus protocol. The contents of other fields can be converted according to their corresponding format requirements, which will not be repeated here.
[0124] The data generation module is used to receive the write data transmitted by the write request conversion module, and convert the write data into a second bus protocol write message according to the message format of the second bus protocol; receive the data packet identification information transmitted by the transaction management component 13, use the data packet identification information as the second bus protocol transaction number, and transmit the second bus protocol write message and the second bus protocol transaction number to the master node.
[0125] For a read channel transaction, the corresponding address can be referred to as a read address, the corresponding transaction number can be referred to as a read channel transaction number, and the corresponding transaction type can be referred to as a read channel transaction type. The read request conversion module is connected to the request generation module, and is used to transmit the read address, read channel transaction number, and read channel transaction type carried by the read channel transaction to the request generation module. The request generation module is also used to convert the received read address, read channel transaction number, and read channel transaction type into a second bus protocol read request according to the message format of the second bus protocol, and transmit the second bus protocol read request to the master node.
[0126] In the embodiment of the present invention, the monitoring response may include a monitoring no-data response and a monitoring data response.
[0127] The first conversion component 11 may record the transaction identification information in the information recording table.
[0128] The transaction identification information may be the transaction identification information transmitted by the second conversion component 12 to the first conversion component 11. The transaction identification information may include a transaction number that complies with the second bus protocol, referred to as the second bus protocol transaction number (TxnID); the transaction identification information may also include a transaction type that complies with the first bus protocol, referred to as the first bus protocol transaction type (ACSNOOP).
[0129] Each time a listening request is generated, the transaction identification information corresponding to the listening request will be recorded in the information recording table. After receiving the listening request, the processor can feedback the listening no data response and the listening data response to the master node through the protocol conversion device. In a specific implementation, the first conversion component 11 receives the listening no data response and the listening data response transmitted by the processor; converts the listening no data response, the listening data response and the transaction identification information into a second bus protocol listening no data response message, and transmits the second bus protocol listening no data response message carrying the listening final state information to the master node.
[0130] In order to ensure that the transaction identification information recorded in the information recording table matches the monitoring response, the transaction identification information corresponding to the monitoring request needs to be deleted after each monitoring response is completed. That is, after the second bus protocol monitoring message carrying the monitoring final state information is transmitted to the master node, the information recording table needs to be cleared.
[0131] In the above description, the first conversion component may include a write request conversion module, a read request conversion module, a request generation module and a data generation module. For processing of snoop response, the first conversion component 11 may also include a snoop response conversion module (c_rsp) and a response generation module (rsp_gen).
[0132] The monitoring data response may carry data or not. If it carries data, it means that the monitoring data response is not empty, and if it does not carry data, it means that the monitoring data response is empty.
[0133] The monitoring response conversion module is connected to the data generation module and the response generation module respectively, and is used to receive the transaction identification information transmitted by the monitoring request conversion module; receive the monitoring no data response and the monitoring data response transmitted by the processor; when the monitoring data response is not empty, transmit the monitoring no data response, the monitoring data response and the transaction identification information to the data generation module; when the monitoring data response is empty, transmit the monitoring no data response and the transaction identification information to the response generation module.
[0134] The data generation module is used to process the monitoring data response carrying data. The data generation module can convert the monitoring no data response, the monitoring data response and the transaction identification information into the second bus protocol monitoring data message, transmit the second bus protocol monitoring data message carrying the monitoring final state information to the master node, and clear the information record table.
[0135] The response generation module is used to process the monitoring data response that does not carry data. When the monitoring data response does not carry data, it means that the monitoring data response is empty. At this time, there is no need to transmit the monitoring data response to the response generation module, and the monitoring data response and transaction identification information are directly transmitted to the response generation module. The response generation module can convert the monitoring data response and transaction identification information into a second bus protocol monitoring response message, transmit the second bus protocol monitoring response message carrying the monitoring final state information to the master node, and clear the information record table.
[0136] In an embodiment of the present invention, through the mutual cooperation of the monitoring response conversion module, the response generation module and the data generation module, the message format of the monitoring response can be converted to obtain the second bus protocol monitoring data message recognizable by the master node, thereby enabling the processor of the first bus protocol to transmit the monitoring response to the master node of the second bus protocol, thereby realizing the processing of monitoring responses under different protocol types.
[0137] The second conversion component 12 is used to process information transmitted from the master node of the second bus protocol to the server of the first bus protocol. The information may include response information and monitoring request information.
[0138] The response information may include write response information and read response information.
[0139] The second conversion component 12 is used to receive the write response information transmitted by the master node, transmit the second bus protocol write identification information corresponding to the write response information to the transaction management component 13, and obtain the first bus protocol write identification information corresponding to the write request from the transaction management component 13; according to the message format of the first bus protocol, convert the write response information and the first bus protocol write identification information into a first bus protocol write response message, and transmit the first bus protocol write response message to the processor.
[0140] The first bus protocol write identification information includes the transaction number and transaction type corresponding to the write request, and the second bus protocol write identification information includes the transaction number corresponding to the write response information and the identification of the write response information conforming to the second bus protocol.
[0141] The second conversion component 12 is also used to receive the read response information transmitted by the master node, transmit the second bus protocol read identification information corresponding to the read response information to the transaction management component 13, and obtain the first bus protocol read identification information corresponding to the read request from the transaction management component 13; according to the message format of the first bus protocol, convert the read response information and the first bus protocol read identification information into a first bus protocol read response message, and transmit the first bus protocol read response message carrying the read response final state information to the processor.
[0142] The first bus protocol read identification information includes the transaction number and transaction type corresponding to the read request, and the second bus protocol read identification information includes the transaction number corresponding to the read response information and the identification of the read response information conforming to the second bus protocol.
[0143] For processing the response information, the second conversion component 12 may include a read-write response conversion module (rsp_br), a read data response conversion module (dat_r), and a data generation module (dat_gen).
[0144] The read response information may include no-data read response information and read data response information.
[0145] The read-write response conversion module can be used to process write response information and read response information without data.
[0146] The read data response conversion module can be used to receive the read data response information transmitted by the master node; transmit the second bus protocol transaction number and the second bus protocol data identification information corresponding to the read data response information to the transaction management component 13; and transmit the read data response information to the data generation module.
[0147] A data generation module is used to receive the read data response information transmitted by the read data response conversion module, obtain the matching first bus protocol transaction number and first bus protocol transaction type from the transaction management component 13; convert the read data response information, the first bus protocol transaction number and the first bus protocol transaction type into a first bus protocol read data response message according to the message format of the first bus protocol, and transmit the first bus protocol read data response message carrying the read data response final state information to the processor.
[0148] The read request and the read data response information correspond to each other. The transaction management component 13 will record the first bus protocol transaction and the first bus protocol transaction type corresponding to the read request transmitted by the processor to the master node. When the master node feeds back the read data response information to the processor through the data generation module, the first bus protocol transaction number and the first bus protocol transaction type corresponding to the read request can be obtained from the transaction management component 13, and used as the first bus protocol transaction number and the first bus protocol transaction type matched by the read data response information.
[0149] The read data response final state information is used to indicate the final state information of the cache line after the processor completes processing the read data response information. The master node carries the read data response final state information when transmitting the first bus protocol read data response message to the processor, which can ensure the cache consistency of the master node and the processor.
[0150] If the transaction type is a read data transaction or a read channel no data transaction, when the read-write response conversion module or the read data response conversion module receives the response (including DBID), the transaction management component 13 records its DBID, and the response generation module obtains the DBID from the transaction management component 13, uses it as the TxnID, generates a CompAck response and sends it to the CHI domain. At the same time, the transaction management component 13 pulls the status information signal low, indicating that the transaction is over.
[0151] Regarding the processing of the sniff request information, the second conversion component 12 may further include a sniff request conversion module (snp_c).
[0152] A monitoring request conversion module is used to receive the monitoring request transmitted by the master node; record the second bus protocol transaction number and the first bus protocol transaction type corresponding to the monitoring request in the record table of the monitoring response conversion module; transmit the address corresponding to the monitoring request to the transaction management component 13, so that the transaction management component 13 can determine whether to start conflict processing based on the received addresses.
[0153] The monitoring request conversion module is also used to convert the monitoring request into a first bus protocol monitoring request according to the message format of the first bus protocol when conflict handling is not started, and transmit the first bus protocol monitoring request to the processor; when conflict handling is started, the monitoring request is processed according to the processing flow matched by the started conflict handling.
[0154] In an embodiment of the present invention, the transaction management component 13 can be used to record relevant information of each transaction. Each transaction can correspond to a record, which may include information corresponding to different fields such as address (Addr), transaction number (ID / TxnID), transaction type (AxSNOOP), identification (DBID), status information (T_Stat) and conflict signal (sp).
[0155] In actual applications, when the status information is pulled high, it means that the transaction is being processed; when the status information is pulled low, it means that the transaction has been processed. When the conflict signal is pulled high, it means that there is currently a conflicting transaction; when the conflict signal is pulled low, it means that there is no conflict.
[0156] In an embodiment of the present invention, the first bus protocol may be an AXI consistency extension protocol, namely, an ACE protocol; and the second bus protocol may be a consistency hub interface protocol, namely, a CHI protocol. For ease of introduction, the following contents are all introduced using the ACE protocol and the CHI protocol as examples.
[0157] For example, suppose the processor of the ACE protocol issues a write request and receives a snoop request before receiving a response. According to the ACE protocol, the write request needs to be processed first and then the snoop request. The CHI protocol is the opposite. Therefore, a protocol conversion device is required to handle this conflict to avoid system lockup.
[0158] The monitoring request conversion module receives the monitoring request transmitted from the master node of the CHI protocol, records the CHI TxnID and ACE ACSNOOP information in the record table of the monitoring response conversion module, and sends the Addr to the transaction management component 13. The transaction management component 13 determines whether there is a write channel transaction with the same address in progress to decide whether to start conflict processing.
[0159] If there is no write channel transaction with the same address, no conflict occurs. The monitoring request conversion module converts the monitoring request information into a monitoring request that complies with the ACE protocol and sends it to the processor using the ACE protocol. If there is a write channel transaction with the same address, a conflict occurs and the sp signal is pulled high.
[0160] Taking the conflict between writing a response and listening to a request as an example, the following process can be used:
[0161] (1) The data generation module generates a sniff response (SnpRespData) with data and sends it to the master node, but the data generation module still retains this data.
[0162] (2) After the master node receives the monitoring response and ends the previous transaction, it starts processing the write channel transaction and sends a write response (CompDBIDResp) to the read-write response conversion module of the protocol conversion device.
[0163] (3) The read-write response conversion module sends the TxnID and DBID information to the transaction management component 13. The data generation module obtains the DBID information from the transaction management component 13, uses it as the TxnID, generates CHI write data and sends it to the master node. After that, the transaction management component 13 pulls sp low and the conflict ends.
[0164] In the embodiment of the present invention, conflicting transactions can be identified through the transaction management component, and conflicting transactions can be handled in an orderly manner by setting logic related to conflicting transaction processing in the first conversion component and the second conversion component, thereby avoiding system deadlock and improving the stability of system operation.
[0165] Both the first bus protocol and the second bus protocol are protocols based on channel transmission.
[0166] In the embodiment of the present invention, the first conversion component 11 includes a first channel group connected to the processor of the first bus protocol; the second conversion component 12 includes a second channel group connected to the processor of the first bus protocol; the first conversion component 11 includes a third channel group connected to the master node of the second bus protocol; the second conversion component 12 includes a fourth channel group connected to the master node of the second bus protocol;
[0167] The first conversion component 11 is used to receive the pending transaction transmitted by the processor through the first channel group; and transmit the second bus protocol transaction to the master node through the third channel group. The second conversion component 12 is used to receive the information transmitted by the master node through the fourth channel group; and transmit the first bus protocol transaction to the processor through the second channel group.
[0168] The first conversion component 11 can process write channel transactions, read channel transactions and snoop responses. Therefore, the first channel group can include a write channel group, a read channel (AR), a snoop response channel (CR) and a snoop data channel (CD).
[0169] The write channel group is connected to the write request conversion module, and is used to receive the write channel transaction initiated by the processor; and transmit the write channel transaction to the write request conversion module. The read channel is connected to the read request conversion module, and is used to receive the read channel transaction transmitted by the processor, and transmit the read channel transaction to the read request conversion module. The listening response channel and the listening data channel are connected to the listening response conversion module, and are used to receive the listening response transmitted by the processor, and transmit the listening response to the listening response conversion module.
[0170] The write channel group is used to process write requests and write data, so the write channel group can include a write request channel (AW) and a write data channel (W). The listen response channel is used to process the listen-no-data response, and the listen data channel is used to process the listen data response.
[0171] The write request channel is connected to the write request conversion module, and is used to receive the write request transmitted by the processor and transmit the write request to the write request conversion module. The write data channel is connected to the write request conversion module, and is used to receive the write data transmitted by the processor and transmit the write data to the write request conversion module.
[0172] The monitoring response channel is connected to the monitoring response conversion module, and is used to receive the monitoring no data response transmitted by the processor, and transmit the monitoring no data response to the monitoring response conversion module. The monitoring data channel is connected to the monitoring response conversion module, and is used to receive the monitoring data response transmitted by the processor, and transmit the monitoring data response to the monitoring response conversion module.
[0173] The second channel group is used to implement the processing of response information and monitoring request information, so the second channel group may include a write response channel (B), a read response channel (R) and a monitoring request channel (AC).
[0174] The write response channel is connected to the read-write response conversion module, and is used for receiving the first bus protocol response message transmitted by the read-write response conversion module, and transmitting the first bus protocol response message to the processor.
[0175] The read response channel is connected to the read-write response conversion module and the data generation module respectively, and is used to receive the first bus protocol read response message carrying the read response final state information transmitted by the read-write response conversion module, and transmit the first bus protocol read response message carrying the read response final state information to the processor; receive the first bus protocol read data response message carrying the read data response final state information transmitted by the data generation module, and transmit the first bus protocol read data response message carrying the read data response final state information to the processor.
[0176] The monitoring request channel is used to transmit the first bus protocol monitoring request to the processor.
[0177] The third channel group is used to achieve connectivity with a master node that complies with the second bus protocol. Based on the first conversion component 11, it is used to implement write channel transactions, read channel transactions, and processing of monitoring responses. Therefore, the third channel group may include a request channel (REQ), a data channel (DAT), and a response channel (RSP).
[0178] The request channel is connected to the request generation module and is used for feeding back the second bus protocol write request and the second bus protocol read request transmitted by the request generation module to the master node.
[0179] The data channel is connected to the data generation module, and is used to feed back the second bus protocol write message and the second bus protocol transaction number transmitted by the data generation module to the master node; and transmit the second bus protocol monitoring data message carrying the monitoring final state information to the master node.
[0180] The response channel is connected to the response generation module, and is used for feeding back the second bus protocol monitoring response message carrying the monitoring final state information transmitted by the response generation module to the master node.
[0181] The fourth channel group is used to achieve connectivity with a master node that complies with the second bus protocol. Based on the second conversion component 12, it is used to implement processing of write responses, read responses, and snoop requests. Therefore, the fourth channel group may include a response channel (RSP), a data channel (DAT), and a snoop channel (SNP).
[0182] The response channel is connected to the read-write response conversion module and is used to transmit the write response information and the data-free read response information transmitted by the master node to the read-write response conversion module.
[0183] The data channel is connected to the read data response conversion module and is used to transmit the read data response information transmitted by the master node to the read data response conversion module.
[0184] The monitoring channel is connected to the monitoring request conversion module and is used to transmit the monitoring request transmitted by the master node to the monitoring request conversion module.
[0185] Taking the ACE protocol and CHI protocol as examples, the ACE protocol has a total of 8 unidirectional transmission channels, namely the write request channel (AW), read channel (AR), write data channel (W), sniff response channel (CR), sniff data channel (CD), write response channel (B), read response channel (R) and sniff request channel (AC). The CHI protocol has a total of four channels, consisting of two bidirectional transmission channels and two unidirectional transmission channels. The two bidirectional transmission channels are the response channel (RSP) and the data channel (DAT); the two unidirectional transmission channels are the request channel (REQ) and the sniff channel (SNP).
[0186] Table 1 below is a table showing the correspondence between each CHI channel and the ACE channel. In Table 1, the read channel, write request channel, write data channel, sniff response channel, and sniff data channel belong to the channels from ACE to CHI. The read response channel, write response channel, and sniff request channel belong to the channels from CHI to ACE.
[0187] Table 1 ACE channels corresponding to CHI channels
[0188]
[0189] The channels included in the first column of Table 1 are the four channels included in the CHI protocol. The channels included in the second to fourth columns of Table 1 are the eight channels included in the ACE protocol. The request channel of the CHI protocol corresponds to the read channel and write request channel of the ACE protocol. The response channel of the CHI protocol corresponds to the read response channel, write response channel, and listen response channel of the ACE protocol. The data channel of the CHI protocol corresponds to the read response channel, write data channel, and listen data channel of the ACE protocol. The listen channel of the CHI protocol corresponds to the listen request channel of the ACE protocol.
[0190] Figure 2 The present invention provides a schematic diagram of the distribution of modules in a protocol conversion device. The protocol conversion device can be divided into three parts, namely, a first conversion component, a second conversion component and a transaction management component. Figure 2 From left to right and from top to bottom, the first conversion component includes a first channel group, a write request conversion module, a read request conversion module, a monitor response conversion module, a request generation module, a data generation module, a response generation module and a third channel group. Among them, the first channel group includes a write request channel, a write data channel, a read request channel, a monitor response channel and a monitor data channel. The third channel group includes a request channel, a data channel and a response channel.
[0191] The second conversion component includes a second channel group, a listening request conversion module, a data generation module, a read-write response conversion module, a read data response conversion module and a fourth channel group. The second channel group includes a write response channel, a read response channel and a listening request channel. The fourth channel group includes a response channel, a data channel and a listening channel.
[0192] The data generation module included in the first conversion component mainly processes the write data (wdata) and the listen data (cdata). The data generation module included in the second conversion component mainly processes the read data (rdata).
[0193] In an embodiment of the present invention, the information of each channel from the ACE processor to the CHI master node can be processed by the first conversion component. The cooperation of the write request channel, the write data channel, the read request channel, the write request conversion module, the read request conversion module, the request generation module and the data generation module in the first conversion component, as well as the request channel and the data channel, can complete the processing of the request transmitted by the ACE processor to the CHI master node. The cooperation of the monitoring response channel, the monitoring data channel, the monitoring response conversion module, the data generation module and the response generation module in the first conversion component, as well as the data channel and the response channel, can complete the processing of the monitoring response transmitted by the ACE processor to the CHI master node. The information of each channel from the CHI master node to the ACE processor can be processed by the second conversion component. The mutual configuration of the response channel, the data channel, the read-write response conversion module, the read data response conversion module and the data generation module in the second conversion component, as well as the write response channel and the read response channel, can complete the processing of the response information transmitted by the CHI master node to the ACE processor. The cooperation of the monitoring channel, the monitoring request conversion module and the monitoring request channel in the second conversion component can complete the processing of the monitoring request information transmitted by the CHI master node to the ACE processor. The transaction management component is used to record the information corresponding to each transaction.
[0194] Figure 3 A structural diagram of a multi-core processor system provided in an embodiment of the present invention, the multi-core processor system includes two processor cores and a master node, the two processor cores are processor core 1 and processor core 2. Each processor core has a two-level cache (L2), and the interfaces of these two processor cores use the ACE protocol. The master node is based on the CHI protocol, and the master node is used to maintain the cache consistency of the two processor cores. The ACE protocol and the CHI protocol cannot communicate directly, and each processor core requires a protocol conversion device (ACCARN) to achieve smooth communication with the master node. The protocol conversion device includes a bridge in two directions, the ACE end is connected to the ACE interface of the processor core, and the CHI end is connected to the master node. In addition to the function of interface conversion, the protocol conversion device also has functions such as sending requests, receiving responses, and receiving monitoring to ensure the cache consistency of L2.
[0195] In the embodiment of the present invention, the ACE processor core can be connected to the multi-core CHI system through the protocol conversion device, while maintaining cache consistency, providing a richer component selection for the CHI system, thereby achieving higher computing power. The system can be further applied to non-uniform memory access (NUMA) systems to provide higher computing power.
[0196] Figure 4A flowchart of a protocol conversion method provided in an embodiment of the present invention is applicable to the above-mentioned protocol conversion device, and the method includes:
[0197] S401: receiving a pending transaction transmitted by a processor.
[0198] S402: Convert the to-be-processed transaction into a second bus protocol transaction according to the message format of the second bus protocol and a processing method that matches the transaction type to which the to-be-processed transaction belongs, and transmit the second bus protocol transaction to the master node.
[0199] S403: Receive information transmitted by the master node.
[0200] S404: Convert the information into a first bus protocol transaction according to the message format of the first bus protocol and a processing method that matches the information, and transmit the first bus protocol transaction to the processor.
[0201] Figure 4 The description of the features in the corresponding embodiments can be found in Figure 1 The relevant descriptions of the corresponding embodiments will not be repeated here one by one.
[0202] It can be seen from the above technical solution that the protocol conversion device can receive pending transactions transmitted by the processor. According to the message format of the second bus protocol and the processing method that matches the transaction type to which the pending transaction belongs, the pending transaction is converted into a second bus protocol transaction, and the second bus protocol transaction is transmitted to the master node. Receive information transmitted by the master node. According to the message format of the first bus protocol and the processing method that matches the information, the information is converted into a first bus protocol transaction, and the first bus protocol transaction is transmitted to the processor. Based on the first bus protocol and the second bus protocol, the design implements the conversion of the first bus protocol interface and the second bus protocol interface, and the processor connected to the first bus protocol interface is connected as a request node to the multi-core processor system based on the second bus protocol. The versatility, flexibility and scalability of the second bus protocol make it more and more widely used in the on-chip system. The present invention can connect the processor core of the first bus protocol to the multi-core processor system based on the second bus protocol based on the protocol conversion device, while maintaining cache consistency, providing a richer component selection for the multi-core processor system of the second bus protocol, thereby achieving higher computing power.
[0203] Figure 5 A structural diagram of a protocol conversion device provided by an embodiment of the present invention, such as Figure 5 As shown, the protocol conversion device includes: a memory 50 for storing a computer program;
[0204] The processor 51 is used to implement the steps of the protocol conversion method in the above embodiment when executing a computer program.
[0205] The protocol conversion device provided in this embodiment may include but is not limited to a smart phone, a tablet computer, a laptop computer, or a desktop computer.
[0206] Among them, the processor 51 may include one or more processing cores, such as a 4-core processor, an 8-core processor, etc. The processor 51 may be implemented in at least one hardware form of digital signal processing (DSP), field-programmable gate array (FPGA), and programmable logic array (PLA). The processor 51 may also include a main processor and a coprocessor. The main processor is a processor for processing data in the awake state, also known as a central processing unit (CPU); the coprocessor is a low-power processor for processing data in the standby state. In some embodiments, the processor 51 may be integrated with a graphics processing unit (GPU), and the GPU is responsible for rendering and drawing the content to be displayed on the display screen. In some embodiments, the processor 51 may also include an artificial intelligence (AI) processor, which is used to process computing operations related to machine learning.
[0207] The memory 50 may include one or more computer-readable storage media, which may be non-transitory. The memory 50 may also include a high-speed random access memory, and a non-volatile memory, such as one or more disk storage devices, flash memory storage devices. In this embodiment, the memory 50 is at least used to store the following computer program 501, wherein, after the computer program is loaded and executed by the processor 51, the relevant steps of the protocol conversion method disclosed in any of the aforementioned embodiments can be implemented. In addition, the resources stored in the memory 50 may also include an operating system 502 and data 503, etc., and the storage method may be temporary storage or permanent storage. Among them, the operating system 502 may include Windows, Unix, Linux, etc. Data 503 may include but is not limited to the message format of the first bus protocol, the message format of the second bus protocol, etc.
[0208] In some embodiments, the protocol conversion device may also include a display screen 52 , an input / output interface 53 , a communication interface 54 , a power supply 55 , and a communication bus 56 .
[0209] Those skilled in the art will understand that Figure 5The structure shown in the figure does not constitute a limitation on the protocol conversion device, and may include more or fewer components than those shown in the figure.
[0210] It is understandable that if the protocol conversion method in the above embodiment is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present invention is essentially or the part that contributes to the current technology or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium to execute all or part of the steps of the methods of each embodiment of the present invention. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), electrically erasable programmable ROM, register, hard disk, removable disk, CD-ROM, magnetic disk or optical disk and other media that can store program codes.
[0211] Based on this, an embodiment of the present invention further provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the steps of the above-mentioned protocol conversion method are implemented.
[0212] An embodiment of the present invention further provides a computer program product, including a computer program / instruction, which implements the steps of the above-mentioned protocol conversion method when executed by a processor.
[0213] The above is a detailed introduction to a protocol conversion device, method, equipment, medium and product provided by an embodiment of the present invention. Each embodiment in the specification is described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same and similar parts between the embodiments can be referred to each other. For the device disclosed in the embodiment, since it corresponds to the method disclosed in the embodiment, the description is relatively simple, and the relevant parts can be referred to the method part description.
[0214] Professionals may further appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the composition and steps of each example have been generally described in the above description according to function. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians may use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of the present invention.
[0215] The above is a detailed introduction to a protocol conversion device, method, equipment, medium and product provided by the present invention. Specific examples are used in this article to illustrate the principles and implementation methods of the present invention. The description of the above embodiments is only used to help understand the method of the present invention and its core idea. It should be pointed out that for ordinary technicians in this technical field, without departing from the principle of the present invention, the present invention can also be improved and modified, and these improvements and modifications also fall within the scope of protection of the present invention.
Claims
1. A protocol conversion device, characterized in that: The invention comprises a first conversion component, a second conversion component, and a transaction management component respectively connected to the first conversion component and the second conversion component; the input end of the first conversion component is connected to the processor of the first bus protocol, and the output end of the first conversion component is connected to the master node of the second bus protocol; The output end of the second conversion component is connected to the processor of the first bus protocol, and the input end of the second conversion component is connected to the master node of the second bus protocol; The transaction management component is used to record the transaction information corresponding to the first conversion component and the second conversion component when processing transactions; The first conversion component is used to receive the pending transaction transmitted by the processor; convert the pending transaction into a second bus protocol transaction according to the message format of the second bus protocol and the processing method matching the transaction type to which the pending transaction belongs, and transmit the second bus protocol transaction to the master node; The second conversion component is used to receive information transmitted by the master node; According to the message format of the first bus protocol and the processing method matching the information, converting the information into a first bus protocol transaction, and transmitting the first bus protocol transaction to the processor; In the case where the pending transaction includes a snoop response, the first conversion component is used to convert the information carried in the pending transaction and the transaction identification information recorded in its own record table into a second bus protocol snoop response message according to the message format of the second bus protocol, and transmit the second bus protocol snoop response message carrying the snoop final state information to the master node, so that the master node can achieve cache consistency with the processor based on the snoop final state information; the snoop final state information refers to the state information after the processor completes the snoop request.
2. The protocol conversion device according to claim 1, characterized in that: In the case where the pending transaction includes a write channel transaction and a read channel transaction, the first conversion component is used to transmit the first bus protocol identification information of the pending transaction to the transaction management component so that the transaction management component can record the first bus protocol identification information; according to the message format of the second bus protocol, convert the pending transaction into a second bus protocol request message, and transmit the second bus protocol request message to the master node.
3. The protocol conversion device according to claim 2, characterized in that: In the case where the information belongs to response information, the second conversion component is used to transmit the second bus protocol identification information corresponding to the response information to the transaction management component, and obtain the matching first bus protocol identification information from the transaction management component; according to the message format of the first bus protocol, convert the response information and the first bus protocol identification information into a first bus protocol response message, and transmit the first bus protocol response message carrying the response final state information to the processor, so that the processor can achieve cache consistency with the master node based on the response final state information; The response final state information refers to the state information after the master node feeds back the response information to the processor after receiving the request transmitted by the processor.
4. The protocol conversion device according to claim 3, characterized in that: In the case where the information is monitoring request information, the second conversion component is used to transmit the transaction identification information corresponding to the monitoring request information to the first conversion component, so that the first conversion component records the transaction identification information in its own record table; According to the message format of the first bus protocol, the monitoring request information is converted into a first bus protocol monitoring request, and the first bus protocol monitoring request is transmitted to the processor.
5. The protocol conversion device according to claim 4, characterized in that: The write channel transaction includes a write data transaction and a write channel no data transaction; The first conversion component is used to receive the write request transmitted by the processor, and transmit the write address, write channel transaction number and write channel transaction type carried by the write request to the transaction management component, so that the transaction management component records the write address, write channel transaction number and write channel transaction type corresponding to the write request, and pulls the status information high; According to the message format of the second bus protocol, convert the write address, write channel transaction number and write channel transaction type carried by the write request into a second bus protocol write request, and transmit the second bus protocol write request to the master node; The first conversion component is also used to receive write data transmitted by the processor, and convert the write data into a second bus protocol write message according to the message format of the second bus protocol; receive data packet identification information transmitted by the transaction management component, use the data packet identification information as the second bus protocol transaction number, and transmit the second bus protocol write message and the second bus protocol transaction number to the master node; wherein the data packet identification information is identification information generated by the transaction management component based on the second bus protocol write request.
6. The protocol conversion device according to claim 5, characterized in that: The read channel transaction includes a read data transaction and a read channel no data transaction; The first conversion component is used to receive the read channel transaction transmitted by the processor, and transmit the read address, read channel transaction number and read channel transaction type carried by the read channel transaction to the transaction management component, so that the transaction management component records the read address, read channel transaction number and read channel transaction type corresponding to the read channel transaction, and pulls the status information high; According to the message format of the second bus protocol, the read address, the read channel transaction number and the read channel transaction type carried by the read channel transaction are converted into a second bus protocol read request, and the second bus protocol read request is transmitted to the master node.
7. The protocol conversion device according to claim 6, characterized in that: The first conversion component includes a write request conversion module, a read request conversion module, a request generation module and a data generation module; The write request conversion module is connected to the request generation module and the data generation module respectively, and is used to transmit the write address, write channel transaction number and write channel transaction type carried by the write request to the request generation module; transmitting the write data to the data generation module; The request generating module is used to convert the received write address, write channel transaction number and write channel transaction type into a second bus protocol write request according to the message format of the second bus protocol, and transmit the second bus protocol write request to the master node; The data generation module is configured to receive the write data transmitted by the write request conversion module, convert the write data into a second bus protocol write message according to the message format of the second bus protocol; receive the data packet identification information transmitted by the transaction management component, use the data packet identification information as the second bus protocol transaction number, and transmit the second bus protocol write message and the second bus protocol transaction number to the master node; The read request conversion module is connected to the request generation module and is used to transmit the read address, read channel transaction number and read channel transaction type carried by the read channel transaction to the request generation module; The request generation module is also used to convert the received read address, read channel transaction number and read channel transaction type into a second bus protocol read request according to the message format of the second bus protocol, and transmit the second bus protocol read request to the master node.
8. The protocol conversion device according to claim 7, characterized in that: The monitoring response includes a monitoring no data response and a monitoring data response; The first conversion component is used to record the transaction identification information in the information recording table; receive the monitoring no data response and the monitoring data response transmitted by the processor; The monitoring no-data response, the monitoring data response and the transaction identification information are converted into a second bus protocol monitoring message, the second bus protocol monitoring message carrying the monitoring final state information is transmitted to the master node, and the information record table is cleared.
9. The protocol conversion device according to claim 8, characterized in that: The first conversion component also includes a monitoring response conversion module and a response generation module; The monitoring response conversion module is connected to the data generation module and the response generation module respectively, and is used to receive the transaction identification information transmitted by the monitoring request conversion module; receive the monitoring no data response and the monitoring data response transmitted by the processor; If the monitoring data response is not empty, transmitting the monitoring no data response, the monitoring data response and the transaction identification information to the data generation module; If the intercept data response is empty, the intercept no data response and the transaction identification information are transmitted to the response generation module, The data generation module is used to convert the monitoring no data response, the monitoring data response and the transaction identification information into a second bus protocol monitoring data message, transmit the second bus protocol monitoring data message carrying the monitoring final state information to the master node, and clear the information recording table; The response generation module is used to convert the monitoring no data response and the transaction identification information into a second bus protocol monitoring response message, transmit the second bus protocol monitoring response message carrying the monitoring final state information to the master node, and clear the information recording table.
10. The protocol conversion device according to claim 9, characterized in that: The response information includes write response information and read response information; The second conversion component is used to receive the write response information transmitted by the master node, transmit the second bus protocol write identification information corresponding to the write response information to the transaction management component, and obtain the first bus protocol write identification information corresponding to the write request from the transaction management component; According to the message format of the first bus protocol, converting the write response information and the first bus protocol write identification information into a first bus protocol write response message, and transmitting the first bus protocol write response message to the processor; The second conversion component is further used to receive the read response information transmitted by the master node, transmit the second bus protocol read identification information corresponding to the read response information to the transaction management component, and obtain the first bus protocol read identification information corresponding to the read request from the transaction management component; According to the message format of the first bus protocol, the read response information and the first bus protocol read identification information are converted into a first bus protocol read response message, and the first bus protocol read response message carrying the read response final state information is transmitted to the processor.
11. The protocol conversion device according to claim 10, characterized in that: The read response information includes no-data read response information and read data response information; the second conversion component includes a read-write response conversion module, a read data response conversion module and a data generation module; The read-write response conversion module is used to process the write response information and the no-data read response information; The read data response conversion module is used to receive the read data response information transmitted by the master node; Transmitting the second bus protocol transaction number and the second bus protocol data identification information corresponding to the read data response information to the transaction management component; transmitting the read data response information to the data generation module; The data generation module is used to receive the read data response information transmitted by the read data response conversion module, and obtain the matching first bus protocol transaction number and first bus protocol transaction type from the transaction management component; According to the message format of the first bus protocol, the read data response information, the first bus protocol transaction number and the first bus protocol transaction type are converted into a first bus protocol read data response message, and the first bus protocol read data response message carrying the read data response final state information is transmitted to the processor.
12. The protocol conversion device according to claim 11, characterized in that: The second conversion component also includes a monitoring request conversion module; The monitoring request conversion module is used to receive the monitoring request transmitted by the master node; record the second bus protocol transaction number and the first bus protocol transaction type corresponding to the monitoring request in the record table of the monitoring response conversion module; Transmitting the address corresponding to the monitoring request to the transaction management component, so that the transaction management component determines whether to start conflict processing according to each received address; The monitoring request conversion module is also used for converting the monitoring request into a first bus protocol monitoring request according to the message format of the first bus protocol when conflict handling is not started, and transmitting the first bus protocol monitoring request to the processor; In the case of starting the conflict handling, the monitoring request is processed according to the processing flow matched by the started conflict handling.
13. The protocol conversion device according to claim 12, characterized in that: The first conversion component includes a first channel group connected to a processor of a first bus protocol; the second conversion component includes a second channel group connected to the processor of the first bus protocol; the first conversion component includes a third channel group connected to a master node of a second bus protocol; the second conversion component includes a fourth channel group connected to a master node of the second bus protocol; The first conversion component is used to receive the pending transaction transmitted by the processor through the first channel group; Transmitting the second bus protocol transaction to the master node through the third channel group; The second conversion component is used to receive information transmitted by the master node through the fourth channel group; The first bus protocol transaction is transmitted to the processor through the second channel group.
14. The protocol conversion device according to claim 13, characterized in that: The first channel group includes a write channel group, a read channel, a monitoring response channel and a monitoring data channel; The write channel group is connected to the write request conversion module and is used to receive the write channel transaction initiated by the processor; Transmitting the write channel transaction to the write request conversion module; The read channel is connected to the read request conversion module, and is used to receive the read channel transaction transmitted by the processor, and transmit the read channel transaction to the read request conversion module; The monitoring response channel and the monitoring data channel are connected to the monitoring response conversion module, and are used to receive the monitoring response transmitted by the processor, and transmit the monitoring response to the monitoring response conversion module.
15. The protocol conversion device according to claim 14, characterized in that: The write channel group includes a write request channel and a write data channel; The write request channel is used to receive the write request transmitted by the processor and transmit the write request to the write request conversion module; The write data channel is used to receive the write data transmitted by the processor and transmit the write data to the write request conversion module; The monitoring response channel is used to receive the monitoring no data response transmitted by the processor, and transmit the monitoring no data response to the monitoring response conversion module; The monitoring data channel is used to receive the monitoring data response transmitted by the processor, and transmit the monitoring data response to the monitoring response conversion module.
16. The protocol conversion device according to claim 15, characterized in that: The second channel group includes a write response channel, a read response channel and a listen request channel; The write response channel is connected to the read-write response conversion module, and is used to receive the first bus protocol response message transmitted by the read-write response conversion module, and transmit the first bus protocol response message to the processor; The read response channel is connected to the read-write response conversion module and the data generation module respectively, and is used to receive the first bus protocol read response message carrying the read response final state information transmitted by the read-write response conversion module, and transmit the first bus protocol read response message carrying the read response final state information to the processor; receiving a first bus protocol read data response message carrying read data response final state information transmitted by the data generation module, and transmitting the first bus protocol read data response message carrying read data response final state information to the processor; The monitoring request channel is used to transmit a first bus protocol monitoring request to the processor.
17. The protocol conversion device according to claim 16, characterized in that: The third channel group includes a request channel, a data channel and a response channel; The request channel is connected to the request generation module and is used to feed back the second bus protocol write request and the second bus protocol read request transmitted by the request generation module to the master node; The data channel is connected to the data generation module, and is used to feed back the second bus protocol write message and the second bus protocol transaction number transmitted by the data generation module to the master node; Transmitting the second bus protocol monitoring data message carrying the monitoring final state information to the master node; The response channel is connected to the response generation module, and is used to feed back the second bus protocol monitoring response message carrying the monitoring final state information transmitted by the response generation module to the master node.
18. The protocol conversion device according to claim 17, characterized in that: The fourth channel group includes a response channel, a data channel and a monitoring channel; The response channel is connected to the read-write response conversion module, and is used to transmit the write response information and the data-free read response information transmitted by the master node to the read-write response conversion module; The data channel is connected to the read data response conversion module, and is used to transmit the read data response information transmitted by the master node to the read data response conversion module; The monitoring channel is connected to the monitoring request conversion module and is used to transmit the monitoring request transmitted by the master node to the monitoring request conversion module.
19. The protocol conversion device according to claim 1, characterized in that: The first bus protocol is the AXI consistency extension protocol; the second bus protocol is the consistency hub interface protocol.
20. A protocol conversion method, characterized in that: Applicable to the protocol conversion device according to any one of claims 1 to 19, the method comprising: receiving pending transactions transmitted by a processor; According to the message format of the second bus protocol and the processing mode matching the transaction type to which the transaction to be processed belongs, converting the transaction to be processed into a second bus protocol transaction, and transmitting the second bus protocol transaction to the master node; Receiving information transmitted by the master node; According to the message format of the first bus protocol and the processing method matching the information, converting the information into a first bus protocol transaction, and transmitting the first bus protocol transaction to the processor; In the case where the pending transaction includes a monitoring response, the information carried in the pending transaction and the transaction identification information recorded in its own record table are converted into a second bus protocol monitoring message according to the message format of the second bus protocol, and the second bus protocol monitoring message carrying the monitoring final state information is transmitted to the master node, so that the master node can achieve cache consistency with the processor based on the monitoring final state information; the monitoring final state information refers to the state information after the processor completes the monitoring request.
21. A protocol conversion device, characterized in that: include: Memory for storing computer programs; A processor is used to execute the computer program to implement the steps of the protocol conversion method as claimed in claim 20.
22. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed by the processor, the steps of the protocol conversion method as claimed in claim 20 are implemented.
23. A computer program product comprising a computer program / instructions, characterized in that When the computer program / instructions are executed by a processor, the steps of the protocol conversion method according to claim 20 are implemented.
Citation Information
Patent Citations
Network access method and device
CN111064804A
Universal protocol conversion bridge for CHI bus and SoC
CN111611187A