Message processing method, device, electronic device and computer readable medium

By designing the interactive processing methods of message decoding components, data reading components, data writing components and control components in MSHR based on the CHI protocol, the testing and debugging complexity problems caused by MSHR code bloated in the prior art are solved, and concise functional implementation and reduced complexity are achieved.

CN118760536BActive Publication Date: 2025-03-11BEIJING INSTITUTE OF OPEN SOURCE CHIP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202410741581.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-06-07
Publication Date
2025-03-11
Estimated Expiration
2044-06-07

AI Technical Summary

Technical Problem

In the prior art, MSHR based on the CHI protocol has a high complexity in testing and debugging due to bloated code.

Method used

A message processing method is designed to be applied to MSHR based on the CHI protocol. MSHR includes message decoding components, data reading components, data writing components and control components. Through the interaction of these components, request messages that comply with the CHI protocol are processed, transaction processing is completed, and request messages are removed.

Benefits of technology

It realizes modular management of MSHR, improves the simplicity of code, and reduces the complexity of testing and debugging.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118760536B_ABST
    Figure CN118760536B_ABST
Patent Text Reader

Abstract

The embodiments of the present application disclose a message processing method, device, electronic device and computer-readable medium. The method is applied to a MSHR based on the CHI protocol, and the MSHR includes a message decoding component, at least one data reading component, at least one data writing component and a control component for processing data-independent services in the MSHR; the embodiment of the method includes: after a request message following the CHI protocol is recorded in the MSHR, the transaction indicated by the request message is processed by at least one of the message decoding component, the data reading component and the data writing component; after the transaction processing indicated by the request message is completed, the request message is removed from the MSHR by the control component. This implementation improves the simplicity of the MSHR function implementation and reduces the complexity of testing and debugging.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present application relate to the field of computer technology, and specifically to a message processing method, device, electronic device, and computer-readable medium. Background Art

[0002] The CHI (Coherent Hub Interface) protocol is a cache coherence protocol used in multi-core systems. MSHR (Miss Status Holding Register) is a concept related to cache control in computer architecture. When trying to get data from the cache, but the data does not hit the cache, a cache miss status is subsequently generated and the corresponding information is stored in the MSHR, which allows other operations to continue without stopping while waiting for the cache data to return. And once new information is received later, the corresponding information can be retrieved from the MSHR, and the appropriate operations can be continued to complete the data acquisition process.

[0003] In the prior art, there is no MSHR design solution applicable to the CHI protocol. If the MSHR is used to connect the message channels in the CHI protocol as a whole, it will lead to bloated code and greater complexity in testing and debugging. Summary of the invention

[0004] The embodiments of the present application propose a message processing method, device, electronic device and computer-readable medium to solve the technical problem in the prior art that testing and debugging are more complicated due to bloated code.

[0005] In the first aspect, an embodiment of the present application provides a message processing method, which is applied to an MSHR based on the CHI protocol, wherein the MSHR includes a message decoding component, at least one data reading component, at least one data writing component, and a control component for processing data-independent services in the MSHR; the method includes: after a request message complying with the CHI protocol is recorded in the MSHR, processing the transaction indicated by the request message by at least one of the message decoding component, the data reading component, and the data writing component; after the transaction processing indicated by the request message is completed, removing the request message from the MSHR by the control component.

[0006] In the second aspect, an embodiment of the present application provides a message processing device, which is applied to a missing status holding register MSHR based on the consistency hub interface CHI protocol, and the MSHR includes a message decoding component, at least one data reading component, at least one data writing component and a control component for processing data-independent services in the MSHR; the device includes: a processing module, which is used to process the transaction indicated by the request message after the request message complying with the CHI protocol is recorded in the MSHR through at least one of the message decoding component, the data reading component and the data writing component; a removal module, which is used to remove the request message from the MSHR through the control component after the transaction processing indicated by the request message is completed.

[0007] In a third aspect, an embodiment of the present application provides an electronic device, comprising: one or more processors; a storage device on which one or more programs are stored, and when the one or more programs are executed by the one or more processors, the one or more processors implement the method described in any embodiment of the first aspect.

[0008] In a fourth aspect, an embodiment of the present application provides a computer-readable medium having a computer program stored thereon, which, when executed by a processor, implements the method described in any embodiment of the first aspect.

[0009] The message processing method, device, electronic device and computer-readable medium provided in the embodiments of the present application are applied to the MSHR based on the CHI protocol. The MSHR includes a message decoding component, at least one data reading component, at least one data writing component and a control component for processing data-independent services in the MSHR. After the request message following the CHI protocol is recorded in the MSHR, the transaction indicated by the request message is processed by at least one of the message decoding component, the data reading component and the data writing component; after the transaction processing indicated by the request message is completed, the request message is removed from the MSHR by the control component. Based on the CHI protocol, this scheme divides the execution logic of the MSHR according to the type of operation behavior, so that each component can take over part of the message channel defined by the CHI protocol. Through the interaction between components, the processing of the request message of the CHI protocol can be completed together. As a result, the modular management of the MSHR is realized, the simplicity of the MSHR function implementation is improved, and the complexity of testing and debugging is reduced. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] Other features, objects and advantages of the present application will become more apparent by reading the detailed description of non-limiting embodiments made with reference to the following drawings:

[0011] Figure 1It is a flow chart of the message processing method of the present application;

[0012] Figure 2 It is a schematic diagram of the interaction of components in the MSHR of this application;

[0013] Figure 3 It is a schematic diagram of the interaction between the message decoding component of the present application and other components;

[0014] Figure 4 is a schematic diagram of the interaction between the first data reading component of the present application and other components;

[0015] Figure 5 is a schematic diagram of the interaction between the second data reading component of the present application and other components;

[0016] Figure 6 is a schematic diagram of the interaction between the third data reading component of the present application and other components;

[0017] Figure 7 It is a schematic diagram of the interaction between the first data writing component of the present application and other components;

[0018] Figure 8 is a schematic diagram of the interaction between the second data writing component of the present application and other components;

[0019] Fig. 9 It is a schematic diagram of the interaction between the third data writing component of the present application and other components;

[0020] Fig.10 It is a schematic diagram of the interaction between the control component of the present application and other components;

[0021] Fig.11 It is a structural schematic diagram of the message processing device of the present application;

[0022] Fig.12 It is a schematic diagram of the structure of the electronic device of the present application. DETAILED DESCRIPTION

[0023] All actions to obtain signals, information or data in this application are carried out in compliance with the relevant data protection laws and policies of the country where they are located, and with the authorization given by the owner of the corresponding device.

[0024] The present application will be further described in detail below in conjunction with the accompanying drawings and embodiments. It is to be understood that the specific embodiments described herein are only used to explain the relevant invention, rather than to limit the invention. It should also be noted that, for ease of description, only the parts related to the relevant invention are shown in the accompanying drawings.

[0025] It should be noted that, in the absence of conflict, the embodiments and features in the embodiments of the present application can be combined with each other. The present application will be described in detail below with reference to the accompanying drawings and in combination with the embodiments.

[0026] The embodiments of the present application may be applied to a MSHR (Miss Status Holding Register) based on a CHI (Coherent Hub Interface) protocol.

[0027] The CHI protocol is a cache consistency protocol used in multi-core systems. The CHI protocol defines three main types of nodes: request node (RN), home node (HNF) and slave node (SNF). Among them, the request node (RN) is responsible for generating request transaction messages, such as read request messages and write request messages. The home node (HNF) is a node defined by the CHI protocol for processing messages initiated by the request node (RN). The slave node (SNF) is a node in the CHI protocol specification for processing messages initiated by the home node (HNF).

[0028] The messages of the CHI protocol are distributed in the request channel (REQ, Request), the response channel (RSP, Response), the data channel (DAT, data) and the probe channel (SNP, Snoop). The channels do not interfere with each other and realize flow control through the credit mechanism, which has the advantages of high bandwidth and multi-concurrency. Among them, the request channel (REQ) is a message channel defined by the CHI protocol, which is dedicated to the transmission of request messages, that is, request messages. The response channel (RSP) is a message channel in the CHI protocol, which is dedicated to the transmission of response messages, that is, response messages. The data channel (DAT) is a message channel in the CHI protocol, which is dedicated to the transmission of data messages, that is, data messages. The probe channel (SNP) is a message channel in the CHI protocol, which is dedicated to the transmission of probe messages, that is, snoop messages.

[0029] Among them, the above-mentioned request channel (REQ), response channel (RSP), data channel (DAT) and probe channel (SNP) are all bidirectional channels. According to the channel direction, the CHI protocol definition further defines the following channels: request message receiving channel (RXREQ), response message receiving channel (RXRSP), data message receiving channel (RXDAT), probe message receiving channel (RXSNP), request message sending channel (TXREQ), response message sending channel (TXRSP), data message sending channel (TXDAT) and probe message sending channel (TXSNP).

[0030] MSHR is a concept related to cache control in computer architecture. When trying to get data from the cache, but the data does not hit the cache, a cache miss status is generated and the corresponding information is stored in the MSHR, which allows other operations to continue without stopping while waiting for the cache data to return. Once new information is received later, the corresponding information can be retrieved from the MSHR and the appropriate operation can be continued to complete the data acquisition process.

[0031] Please refer to Figure 1 , which shows a process 100 of an embodiment of a message processing method according to the present application. The message processing method comprises the following steps:

[0032] Step 101, after a request message following the CHI protocol is recorded in the MSHR, the transaction indicated by the request message is processed by at least one of a message decoding component, a data reading component, and a data writing component.

[0033] In this embodiment, the MSHR may include a message decoding component, at least one data reading component, at least one data writing component, and a control component. The request message (i.e., the request message) may come from a request message receiving channel (RXREQ). The operation of recording the request message in the MSHR may be referred to as enqueuing. After the request message is enqueued, the transaction indicated by the request message may be processed by at least one of the message decoding component, the data reading component, and the data writing component.

[0034] In this embodiment, the message decoding component (which may be recorded as decode) may be used to decode the message received by the MSHR. The message decoding component may serve as the only interface for the MSHR to receive external messages.

[0035] In this embodiment, the above-mentioned data reading component can be used to read data. Different data reading components in the above-mentioned at least one data reading component are used to read data from different data sources. Among them, the above-mentioned data sources may include other components in MSHR and cache pipelines (CachePipeLine, CPL). Among them, the cache pipeline is a technology in computer architecture for improving the throughput and performance of cache access. The embodiment of the present application can use the cache pipeline as a component that provides cache access for MSHR.

[0036] In this embodiment, the data writing component can be used to write data. Different data writing components in the at least one data writing component are used to write data to different destinations. The destinations can include other components in the MSHR and cache pipelines.

[0037] In this embodiment, the above-mentioned control component (which can be recorded as misc) can be used to process data-independent services in MSHR, such as sending and receiving data-independent messages, controlling the life cycle of other components, and determining whether a message is dequeued based on the status information of other components.

[0038] It should be noted that the data mentioned in this embodiment may refer to a cache line.

[0039] As an example, the transaction indicated by the request message is ReadUnique (indicating an operation for executing a portion of bytes of a cache block). First, the message decoding component (decode) can receive the request message from the receiving channel (RXREQ), save the relevant fields of the message, send a read request message to the cache pipeline, and pass an indication message to the control component (misc) to indicate waiting for the transmission completion confirmation message (i.e., the Compack message of the CHI protocol specification). After receiving the response information of the cache pipeline to the read request message, the message decoding component (decode) sends an indication message to the corresponding data reading component according to the response information to instruct the data reading component to read data from the corresponding data source to obtain a data message. After obtaining the data message, the data reading component can send an indication message to the corresponding data writing component to instruct the data writing component to send the data message to the corresponding destination. After the data message arrives at the destination, the transaction processing is completed. By dividing the functions of MSHR according to the data transmission direction, and through the interaction between the multiple components after the division, the processing of the request message of the CHI protocol is completed together. As a result, modular management of MSHR is achieved, the simplicity of MSHR function implementation is improved, and the complexity of testing and debugging is reduced.

[0040] Step 102: After the transaction indicated by the request message is completed, the request message is removed from the MSHR through the control component.

[0041] In this embodiment, the operation of removing the request message from the MSHR may be called dequeuing. After the transaction indicated by the request message is completed, the control component (misc) may complete the dequeuing operation on the request message so that it no longer occupies MSHR resources.

[0042] The method provided by the above-mentioned embodiment of the present application is applied to the MSHR based on the CHI protocol. The MSHR includes a message decoding component, at least one data reading component, at least one data writing component and a control component for processing data-independent services in the MSHR. After the request message following the CHI protocol is recorded in the MSHR, the transaction indicated by the request message is processed by at least one of the message decoding component, the data reading component and the data writing component; after the transaction processing indicated by the request message is completed, the request message is removed from the MSHR by the control component. Based on the CHI protocol, this scheme divides the execution logic of the MSHR according to the type of operation behavior, so that each component can take over part of the message channel defined by the CHI protocol. Through the interaction between components, the processing of the request message of the CHI protocol can be completed together. In this way, the modular management of the MSHR is realized, the simplicity of the code is improved, and the complexity of testing and debugging is reduced.

[0043] In some optional embodiments, the at least one data reading component includes a first data reading component (which can be recorded as read_mem), a second data reading component (which can be recorded as read_requester) and a third data reading component (which can be recorded as read_snoopee). Specifically, the first data reading component (read_mem) can be used to read data from a slave node (SNF) defined in the CHI protocol. The slave node is a node defined in the CHI protocol for processing a message initiated by a master node (HNF). The master node is a node defined in the CHI protocol for processing a message initiated by a requesting node (RN). The second data reading component (read_requester) can be used to read data from a request message initiator defined in the CHI protocol. The request message initiator is the initiator of the request message (request message) defined in the CHI protocol, i.e., Requester. The third data reading component (read_snoopee) can be used to read data from a search message receiver defined in the CHI protocol. The probe message receiver is the receiver of the probe message (snoop message) defined by the CHI protocol, that is, Snoopee.

[0044] Thus, the first data reading component, the second data reading component, and the third data reading component are data reading components divided based on data reading sources, and different data reading components can obtain data from different data sources. By modularizing the data reading logic of MSHR, it is easy to maintain the MSHR code.

[0045] In some optional embodiments, the at least one data writing component includes a first data writing component (which may be recorded as write_mem), a second data writing component (which may be recorded as write_requester) and a third data writing component (which may be recorded as write_cpl). Specifically, the first data writing component (write_mem) can be used to write data to the slave node. The second data writing component (write_requester) can be used to write data to the request message initiator (Requester). The third data writing component (write_cpl) can be used to write data to the cache pipeline connected to the MSHR communication. The cache pipeline includes a last level cache (Last Level Cache, LLC) component, LLC is a component in the cache pipeline that stores data.

[0046] Thus, the first data writing component, the second data writing component, and the third data writing component are data writing components divided based on the destination of data writing, and different data writing components can write data to different destinations. By modularizing the data writing logic of MSHR, it is easy to maintain the MSHR code.

[0047] In the case where the at least one data reading component includes a first data reading component (read_mem), a second data reading component (read_requester) and a third data reading component (read_snoopee), and the at least one data writing component includes a first data writing component (write_mem), a second data writing component (write_requester) and a third data writing component (write_cpl), the interaction diagram of the components in the MSHR can be seen in Figure 2Specifically, it includes a message decoding component (decode), a first data reading component (read_mem), a second data reading component (read_requester), a third data reading component (read_snoopee), a first data writing component (write_mem), a second data writing component (write_requester), a third data writing component (write_cpl), a control component (misc), a cache pipeline, a request message receiving channel (RXREQ), a response message receiving channel (RXRSP), a data message receiving channel (RXDAT), a request message sending channel (TXREQ), a response message sending channel (TXRSP), a data message sending channel (TXDAT) and a search message sending channel (TXSNP).

[0048] As an example, the transaction indicated by the request message is ReadUnique. First, the message decoding component (decode) can receive the request message from the receiving channel (RXREQ), save the relevant fields of the message, send a read request message to the cache pipeline, and pass the indication information to the control component (misc) to indicate waiting for the reception of the transmission completion confirmation message (i.e., the Compack message of the CHI protocol specification). After the cache pipeline completes receiving the read request message, the message decoding component (decode) can return a response message. If the response information indicates that there is no data on both the master node (HNF) and the slave node (RNF), the message decoding component (decode) can send an indication message to the first data reading component (read_mem) to instruct the first data reading component (read_mem) to send a read request message to the request message receiving channel (RXREQ). After receiving the indication information, the first data reading component (read_mem) can send the read request message to the request message receiving channel (RXREQ) and receive the data message (data message) from the data message receiving channel (RXDAT), thereby completing the interaction with the slave node (SNF). Afterwards, the first data reading component (read_mem) can pass the indication information to the second data writing component (write_requester) to instruct the second data writing component (write_requester) to send the data message (data message) to the request message initiator (requester). After receiving the data message (data message) from the MSHR, the request message initiator (requester) can send a transmission completion confirmation message (compack message) to the control component (misc). By further dividing the data reading function and the data writing function, the complexity of testing and debugging can be further reduced. After receiving the transmission completion confirmation message (compack message) from the initiator of the request message, the control component (misc) can determine whether other components are still in progress or need to wait based on the status information of other components. If other components have no ongoing or waiting behaviors, the request message can be removed from the MSHR.

[0049] In some optional embodiments, see Figure 3 The message decoding component (decode) interfaces with the request message receiving channel (RXREQ), and supports interaction with the cache pipeline, the first data reading component (read_mem), the second data reading component (read_requester), the third data reading component (read_snoopee), the second data writing component (write_requester), and the control component. On this basis, step 101 includes executing the following steps through the message decoding component (decode):

[0050] Step 1011, receiving a request message from a request message receiving channel (RXREQ), wherein the request message includes transaction type information;

[0051] Step 1012, based on the transaction type information, determine the target interactive object, and send the instruction information to the target interactive object. The target interactive object is one or more of the first data reading component (read_mem), the second data reading component (read_requester), the third data reading component (read_snoopee), the second data writing component (write_requester), and the control component (misc). The following is an explanation of different situations:

[0052] Optionally, the above step 1012 may include: when the transaction type information indicates a first type of read transaction, sending a first indication message to the first data read component (read_mem), and sending a second indication message to the control component. The first type of read transaction is a read transaction that does not require sending a snoop message, that is, a non-snoopable read transaction defined by the CHI protocol. The first indication information is used to indicate sending a read request message to the request message sending channel (TXREQ), and the second indication information is used to indicate waiting for receiving a transmission completion confirmation message (compack message).

[0053] Optionally, the cache pipeline further includes an identification storage component (SnoopFilter). The identification storage component is used to store an identification, and the identification is used to indicate whether the requesting node (RN) has the required data.

[0054] The above step 1012 may include:

[0055] In the case where the transaction type information indicates a second type of read transaction, a read request message is sent to the cache pipeline to receive response information of the cache pipeline to the read request message, wherein the second type of read transaction is a read transaction that may need to send a snoop message, that is, a snoopable read transaction defined in the CHI protocol;

[0056] If the above response information indicates that LLC hits, third indication information is sent to the second data writing component (write_requester), and the third indication information is used to instruct to send a data message (data message) to the request message initiator (Requester);

[0057] If the above response information indicates that LLC does not hit and the identification storage component hits, fourth indication information is sent to the third data reading component (read_snoopee), and the fourth indication information is used to instruct to send a probe message (snoop message) to the probe message sending channel (TXSNP);

[0058] If the response information indicates that the LLC misses and the identification storage component misses, the first indication information is sent to the first data reading component (read_mem) to instruct the first data reading component (read_mem) to send a read request message to the request message sending channel (TXREQ);

[0059] In addition, when the transaction type information indicates a second type of read transaction, second indication information may be sent to the control component (misc), where the second indication information is used to indicate waiting for receiving a transmission completion confirmation message (compack message).

[0060] Optionally, the above step 1012 may include: when the transaction type information indicates a first type of write transaction, sending fifth indication information to the second data reading component (read_requester). The first type of write transaction is a write transaction that does not require sending a visit message and is non-returned, that is, a Non-snoopable Non-CopyBack write transaction defined in the CHI protocol. The fifth indication information is used to indicate sending a response message (response message) to the response message sending channel (TXRSP).

[0061] Optionally, the above step 1012 may include: when the above transaction type information indicates a second type of write transaction, sending sixth indication information to the second data reading component (read_requester). The second type of write transaction is a write transaction that does not require sending a visit message and needs to be returned, that is, a Non-snoopable CopyBack write transaction defined in the CHI protocol. The sixth indication information is used to indicate sending a response message to the request message initiator (Requester).

[0062] Therefore, the message decoding component (decode) can interact with the components involved in the transaction type according to the transaction type indicated by the request message received from the request message receiving channel (RXREQ). Therefore, component design can improve the simplicity of function implementation and reduce the complexity of testing and debugging.

[0063] In some optional embodiments, see Figure 4, the first data reading component (read_mem) connects to the request message sending channel (TXREQ), the data message receiving channel (RXDAT) and the response message receiving channel (RXRSP), and supports interaction with the message decoding component (decode), the third data reading component (read_snoopee), the second data writing component (write_requester), the third data writing component (write_cpl) and the control component (misc). On this basis, step 101 also includes executing the following steps through the first data reading component (read_mem):

[0064] When receiving indication information sent by the message decoding component (decode) or the third data reading component (read_snoopee), determining the transaction type based on the received indication information;

[0065] For a first type of transaction, third indication information is sent to the second data writing component (write_requester), the first type of transaction is a transaction of transmitting data received from the slave node (SNF) to the request message initiator (Requester), and the third indication information is used to instruct to send a data message (data message) to the request message initiator (Requester);

[0066] For a second type of transaction, seventh indication information is sent to a third data writing component (write_cpl), where the second type of transaction is a transaction for storing data received from a slave node (SNF) to an LLC, and the seventh indication information is used to instruct sending a write request message to a cache pipeline;

[0067] The control component (misc) sends its own status information to the control component (misc), so that the control component (misc) determines the transaction status based on the received status information.

[0068] Thus, the first data reading component (read_mem) can interact with different data writing components according to different transaction types to complete the data transmission from the node (SNF) to the MSHR. The component design can improve the simplicity of function implementation and reduce the complexity of testing and debugging.

[0069] In some optional embodiments, see Figure 5The second data reading component (read_requester) connects to the response message sending channel (TXRSP) and the data message receiving channel (RXDAT), and supports interaction with the message decoding component (decode), the first data writing component (write_mem), the third data writing component (write_cpl), and the control component (misc). On this basis, step 101 also includes executing the following steps through the second data reading component (read_requester):

[0070] When receiving indication information sent by a message decoding component (decode), determining a transaction type based on the received indication information;

[0071] For the third type of transaction, sending eighth indication information to the first data writing component (write_mem), the third type of transaction is sending data received from the request message initiator (Requester) to the slave node (SNF), and the eighth indication information is used to instruct to send a write request message (request message) to the request message sending channel (TXREQ);

[0072] For a fourth type of transaction, seventh indication information is sent to the third data writing component (write_cpl), the fourth type of transaction is a transaction for storing data received from a request message initiator (Requester) to the LLC, and the seventh indication information is used to instruct to send a write request message to the cache pipeline;

[0073] The control component (misc) sends its own status information to the control component (misc), so that the control component (misc) determines the transaction status based on the received status information.

[0074] Thus, the second data reading component (read_requester) can interact with different data writing components according to different transaction types to complete the data transmission from the request message initiator (Requester) to the MSHR. The component design can improve the simplicity of function implementation and reduce the complexity of testing and debugging.

[0075] In some optional embodiments, see Figure 6The third data reading component (read_snoopee) connects to the search message sending channel (TXSNP), the response message receiving channel (RXRSP) and the data message receiving channel (RXDAT), and supports interaction with the message decoding component (decode), the first data reading component (read_mem), the first data writing component (write_mem), the second data writing component (write_requester), the third data writing component (write_cpl), and the control component (misc). On this basis, step 101 also includes executing the following steps through the third data reading component (read_snoopee):

[0076] When receiving indication information sent by a message decoding component (decode), determining a transaction type based on the received indication information;

[0077] For a read transaction in the case of an LLC miss, if no reply is received from the probe message receiver (Snoopee), a first indication message is sent to the first data read component (read_mem), and the first indication message is used to indicate that a read request message (request message) is sent to the request message sending channel (TXREQ); if a reply is received from the probe message receiver (Snoopee), an eighth indication message is sent to the second data write component (write_requester), and the eighth indication message is used to indicate that a data message (data message) is sent to the data message sending channel (TXDAT); if data needs to be stored in LLC, a seventh indication message is sent to the third data write component (write_cpl), and the seventh indication message is used to indicate that a write request message is sent to the above-mentioned cache pipeline;

[0078] For a no-data transaction, if all replies from the snoopee receiver are received, the fifth indication information is sent to the control component (misc) to instruct the control component (misc) to send a response message (response message) to the response message sending channel (TXRSP); if dirty data (dirty data) is received, an eighth indication information is sent to the first data writing component (write_mem), and the eighth indication information is used to instruct to send a write request message (request message) to the request message sending channel (TXREQ);

[0079] The control component (misc) sends its own status information to the control component (misc), so that the control component (misc) determines the transaction status based on the received status information.

[0080] Therefore, the third data reading component (read_snoopee) can be responsible for interacting with the probe message receiver (Snoopee), thereby improving the simplicity of function implementation and reducing the complexity of testing and debugging.

[0081] In some optional embodiments, see Figure 7 , the first data writing component (write_mem) connects to the response message receiving channel (RXRSP), the request message sending channel (TXREQ) and the data message sending channel (TXDAT), and supports interaction with the message decoding component (decode), the second data reading component (read_requester), the third data reading component (read_snoopee) and the control component (misc). On this basis, step 101 also includes executing the following steps through the first data writing component (write_mem):

[0082] Upon receiving indication information sent by the message decoding component (decode), the second data reading component (read_requester) or the third data reading component (read_snoopee), interacting with the slave node based on the received indication information to complete data transmission from the MSHR to the slave node;

[0083] The control component (misc) sends its own status information to the control component (misc), so that the control component (misc) determines the transaction status based on the received status information.

[0084] The first data writing component (write_mem) is designed in this way, so that the first data writing component (write_mem) can be responsible for interacting with the slave node to complete the data transmission from the MSHR to the slave node, thereby improving the simplicity of the MSHR function implementation and reducing the complexity of testing and debugging.

[0085] In some optional embodiments, see Figure 8 , the second data writing component (write_requester) is connected to the data message sending channel (TXDAT), and supports interaction with the message decoding component (decode), the first data reading component (read_mem), the third data reading component (read_snoopee) and the control component (misc). On this basis, step 101 also includes executing the following steps through the second data writing component (write_requester):

[0086] Upon receiving the indication information sent by the message decoding component (decode), the first data reading component (read_mem) or the third data reading component (read_snoopee), interacting with the request message initiator (Requester) based on the received indication information to complete the data transmission from the MSHR to the request message initiator (Requester);

[0087] The control component (misc) sends its own status information to the control component (misc), so that the control component (misc) determines the transaction status based on the received status information.

[0088] The second data writing component (write_requester) is designed in this way, which enables the second data writing component (write_requester) to be responsible for interacting with the request message initiator (Requester) to complete the data transmission from MSHR to the request message initiator (Requester), thereby improving the simplicity of MSHR function implementation and reducing the complexity of testing and debugging.

[0089] In some optional embodiments, see Fig. 9 , the third data writing component (write_cpl) supports interaction with the message decoding component (decode), the first data reading component (read_mem), the second data reading component (read_requester), the third data reading component (read_snoopee) and the control component (misc). On this basis, step 101 also includes executing the following steps through the third data writing component (write_cpl):

[0090] Upon receiving indication information sent by the message decoding component (decode), the first data reading component (read_mem), the second data reading component (read_requester) or the third data reading component (read_snoopee), interacting with the cache pipeline based on the received indication information to complete data transmission from the MSHR to the LLC;

[0091] The control component (misc) sends its own status information to the control component (misc), so that the control component (misc) determines the transaction status based on the received status information.

[0092] The third data writing component (write_cpl) is designed in this way, which enables the third data writing component (write_cpl) to be responsible for interacting with the cache pipeline to complete the data transmission from MSHR to LLC, thereby improving the simplicity of MSHR function implementation and reducing the complexity of testing and debugging.

[0093] In some optional embodiments, the cache pipeline is used to perform a cache access operation based on a read request message sent by a message decoding component or a write request message sent by a third data writing component when receiving the read request message sent by the message decoding component or the write request message, and return a request response result and indication information to the message decoding component or the third data writing component.

[0094] In some optional embodiments, see Fig.10 , the control component (misc) connects to the response message sending channel (TXRSP), the data message receiving channel (RXDAT) and the response message receiving channel (RXRSP), and supports interaction with the message decoding component (decode), each data reading component, and each data writing component. On this basis, the above step 102 may include executing the following steps through the control component (misc): obtaining the status information of other components in the MSHR; determining the transaction status based on the obtained status information; when the transaction status indicates that the transaction processing is completed, removing the above request message from the MSHR. The status information may indicate that the component is in a busy state or an idle state. When a component is in a busy state, it means that the component has not completed the transaction processing operation, and the transaction status may be an unfinished state. When all components are in an idle state, it means that the transaction processing is completed, and the transaction status may be a completed state. At this time, the above request message may be removed from the MSHR so that it no longer occupies MSHR resources.

[0095] In this way, the transaction status can be judged quickly and conveniently, and the corresponding message can be removed in time after the transaction processing is completed, so that the MSHR resources can be quickly released.

[0096] Further references Fig.11 As an implementation of the methods shown in the above figures, the present application provides an embodiment of a message processing device, which is similar to Figure 1 Corresponding to the method embodiment shown, the device can be specifically applied to an MSHR based on the CHI protocol, wherein the MSHR includes a message decoding component, at least one data reading component, at least one data writing component, and a control component for processing data-independent services in the MSHR.

[0097] like Fig.11 As shown, the message processing device 1100 of this embodiment includes: a processing unit 1101, which is used to process the transaction indicated by the request message through at least one of the message decoding component, the data reading component, and the data writing component after the request message following the CHI protocol is recorded in the MSHR; a removal unit 1102, which is used to remove the request message from the MSHR through the control component after the transaction processing indicated by the request message is completed.

[0098] In some optional implementations of this embodiment, the at least one data reading component includes: a first data reading component, used to read data from a slave node defined in the CHI protocol, the slave node is a node defined in the CHI protocol for processing messages initiated by a master node, and the master node is a node defined in the CHI protocol for processing messages initiated by a requesting node; a second data reading component, used to read data from a request message initiator defined in the CHI protocol; and a third data reading component, used to read data from a search message receiver defined in the CHI protocol.

[0099] In some optional implementations of this embodiment, the at least one data writing component includes: a first data writing component, used to write data to the slave node; a second data writing component, used to write data to the request message initiator; a third data writing component, used to write data to a cache pipeline connected to the MSHR communication, wherein the cache pipeline includes a last-level cache LLC.

[0100] In some optional implementations of this embodiment, the message decoding component is connected to the request message receiving channel, and supports interaction with the first data reading component, the second data reading component, the third data reading component, the second data writing component, and the control component; the processing unit 1101 is also used to perform the following steps through the message decoding component: receiving the request message from the request message receiving channel, the request message including transaction type information; determining the target interaction object based on the transaction type information, and sending indication information to the target interaction object.

[0101] In some optional implementations of this embodiment, the processing unit 1101 is also used to send first indication information to the first data reading component and send second indication information to the control component when the transaction type information indicates a first type of read transaction; wherein the first type of read transaction is a read transaction that does not require sending a visit message, the first indication information is used to indicate sending a read request message to a request message sending channel, and the second indication information is used to indicate waiting for receiving a transmission completion confirmation message.

[0102] In some optional implementations of the present embodiment, the cache pipeline further includes an identification storage component, the identification storage component is used to store an identification, and the identification is used to indicate whether the requesting node has the required data; the processing unit 1101 is also used to: when the transaction type information indicates a second type of read transaction, send a read request message to the cache pipeline to receive response information of the cache pipeline to the read request message, and the second type of read transaction is a read transaction that may require the sending of a visit message; if the response information indicates that the LLC hits, send third indication information to the second data write component, and the third indication The information is used to indicate that a data message is sent to the initiator of the request message; if the response information indicates that the LLC does not hit and the identification storage component hits, fourth indication information is sent to the third data reading component, and the fourth indication information is used to indicate that a search message is sent to a search message sending channel; if the response information indicates that the LLC does not hit and the identification storage component does not hit, first indication information is sent to the first data reading component, and the first indication information is used to indicate that a read request message is sent to the request message sending channel; second indication information is sent to the control component, and the second indication information is used to indicate waiting for receiving a transmission completion confirmation message.

[0103] In some optional implementations of this embodiment, the processing unit 1101 is further used to: when the transaction type information indicates a first type of write transaction, send fifth indication information to the second data reading component, the first type of write transaction is a write transaction that does not require sending a visit message and is not returned, and the fifth indication information is used to indicate sending a response message to a response message sending channel; when the transaction type information indicates a second type of write transaction, send sixth indication information to the second data reading component, the second type of write transaction is a write transaction that does not require sending a visit message and requires return, and the sixth indication information is used to indicate sending a response message to the request message initiator.

[0104] In some optional implementations of this embodiment, the first data reading component is connected to a request message sending channel, a data message receiving channel and a response message receiving channel, and supports interaction with the message decoding component, the third data reading component, the second data writing component, the third data writing component and the control component; the processing unit 1101 is further used to perform the following steps through the first data reading component: when receiving the indication information sent by the message decoding component or the third data reading component, determine the transaction type based on the received indication information; for a first type of transaction, send third indication information to the second data writing component, the first type of transaction is a transaction of transmitting the data received from the slave node to the request message initiator, and the third indication information is used to indicate the sending of a data message to the request message initiator; for a second type of transaction, send seventh indication information to the third data writing component, the second type of transaction is a transaction of storing the data received from the slave node to the LLC, and the seventh indication information is used to indicate the sending of a write request message to the cache pipeline; send its own status information to the control component, so that the control component determines the transaction status based on the received status information.

[0105] In some optional implementations of this embodiment, the second data reading component is connected to the response message sending channel and the data message receiving channel, and supports interaction with the message decoding component, the first data writing component, the third data writing component and the control component; the processing unit 1101 is also used to perform the following steps through the second data reading component: when receiving the indication information sent by the message decoding component, determine the transaction type based on the received indication information; for the third type of transaction, send eighth indication information to the first data writing component, the third type of transaction is to send the data received from the request message initiator to the slave node, and the eighth indication information is used to indicate the sending of a write request message to the request message sending channel; for the fourth type of transaction, send seventh indication information to the third data writing component, the fourth type of transaction is to store the data received from the request message initiator to the LLC, and the seventh indication information is used to indicate the sending of a write request message to the cache pipeline; send its own status information to the control component, so that the control component determines the transaction status based on the received status information.

[0106] In some optional implementations of the present embodiment, the third data reading component is connected to the search message sending channel, the response message receiving channel and the data message receiving channel, and supports interaction with the message decoding component, the first data reading component, the first data writing component, the second data writing component, the third data writing component and the control component; the processing unit 1101 is also used to perform the following steps through the third data reading component: when receiving the indication information sent by the message decoding component, determining the transaction type based on the received indication information; for the read transaction in the case of LLC miss, if no reply is received from the search message receiver, sending a first indication information to the first data reading component, the first indication information is used to indicate sending a read request message to the request message sending channel; if a response is received from the search message receiver, If the reply from the receiver is received, an eighth indication message is sent to the second data write component, and the eighth indication message is used to indicate that a data message is sent to the data message sending channel; if the data needs to be stored in the LLC, a seventh indication message is sent to the third data write component, and the seventh indication message is used to indicate that a write request message is sent to the cache pipeline; for a no-data transaction, if the reply from all the probe message receivers is received, a fifth indication message is sent to the control component, and the fifth indication message is used to indicate that a response message is sent to the response message sending channel; if dirty data is received, an eighth indication message is sent to the first data write component, and the eighth indication message is used to indicate that a write request message is sent to the request message sending channel; and its own status information is sent to the control component, so that the control component determines the transaction status based on the received status information.

[0107] In some optional implementations of this embodiment, the first data writing component is connected to a response message receiving channel, a request message sending channel and a data message sending channel, and supports interaction with the message decoding component, the second data reading component, the third data reading component and the control component; the processing unit 1101 is also used to perform the following steps through the first data writing component: when receiving indication information sent by the message decoding component, the second data reading component or the third data reading component, based on the received indication information, interact with the slave node to complete the data transmission from the MSHR to the slave node; send its own status information to the control component so that the control component determines the transaction status based on the received status information.

[0108] In some optional implementations of this embodiment, the second data writing component is connected to the data message sending channel, and supports interaction with the message decoding component, the first data reading component, the third data reading component and the control component; the processing unit 1101 is also used to perform the following steps through the second data writing component: when receiving the indication information sent by the message decoding component, the first data reading component or the third data reading component, based on the received indication information, interact with the request message initiator to complete the data transmission from the MSHR to the request message initiator; send its own status information to the control component, so that the control component determines the transaction status based on the received status information.

[0109] In some optional implementations of this embodiment, the third data writing component supports interaction with the message decoding component, the first data reading component, the second data reading component, the third data reading component and the control component; the processing unit 1101 is also used to perform the following steps through the third data writing component: when receiving indication information sent by the message decoding component, the first data reading component, the second data reading component or the third data reading component, based on the received indication information, interact with the cache pipeline to complete the data transmission from the MSHR to the LLC; send its own status information to the control component so that the control component determines the transaction status based on the received status information.

[0110] In some optional implementations of this embodiment, the cache pipeline is used to perform a cache access operation according to the read request message or the write request message when receiving a read request message sent by the message decoding component or a write request message sent by the third data writing component, and return a request response result and indication information to the message decoding component or the third data writing component.

[0111] In some optional implementations of this embodiment, the control component connects to a response message sending channel, a data message receiving channel and a response message receiving channel, and supports interaction with the message decoding component, the at least one data reading component and the at least one data writing component; the removal unit 1102 is also used to perform the following steps through the control component: obtain status information of other components in the MSHR; determine the transaction status based on the obtained status information; and remove the request message from the MSHR when the transaction status indicates that the transaction processing is completed.

[0112] The device provided by the above-mentioned embodiment of the present application is applied to the MSHR based on the CHI protocol. The MSHR includes a message decoding component, at least one data reading component, at least one data writing component and a control component for processing data-independent services in the MSHR. After the request message following the CHI protocol is recorded in the MSHR, the transaction indicated by the request message is processed by at least one of the message decoding component, the data reading component and the data writing component; after the transaction processing indicated by the request message is completed, the request message is removed from the MSHR by the control component. Based on the CHI protocol, this scheme divides the execution logic of the MSHR according to the type of operation behavior, so that each component can take over part of the message channel defined by the CHI protocol. Through the interaction between components, the processing of the request message of the CHI protocol can be completed together. In this way, the modular management of the MSHR is realized, the simplicity of the MSHR function implementation is improved, and the complexity of testing and debugging is reduced.

[0113] Reference below Fig.12 , which shows a schematic structural diagram of an electronic device for implementing some embodiments of the present application. Fig.12 The electronic device shown is merely an example and should not bring any limitation to the functions and scope of use of the embodiments of the present application.

[0114] like Fig.12 As shown, the electronic device 1200 may include a processing device (e.g., a central processing unit, a graphics processor, etc.) 1201, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 1202 or a program loaded from a storage device 1208 to a random access memory (RAM) 1203. In the RAM 1203, various programs and data required for the operation of the electronic device 1200 are also stored. The processing device 1201, the ROM 1202, and the RAM 1203 are connected to each other via a bus 1204. An input / output (I / O) interface 1205 is also connected to the bus 1204.

[0115] Typically, the following devices may be connected to the I / O interface 1205: an input device 1206 including, for example, a touch screen, a touch pad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; an output device 1207 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; a storage device 1208 including, for example, a disk, a hard disk, etc.; and a communication device 1209. The communication device 1209 may allow the electronic device 1200 to communicate with other devices wirelessly or by wire to exchange data. Although Fig.12 The electronic device 1200 is shown with various devices, but it should be understood that it is not required to implement or possess all the devices shown. More or fewer devices may be implemented or possessed instead. Fig.12Each block shown in the figure may represent one device, or may represent multiple devices as required.

[0116] In particular, according to some embodiments of the present application, the process described above with reference to the flowchart can be implemented as a computer software program. For example, some embodiments of the present application include a computer program product, which includes a computer program carried on a computer-readable medium, and the computer program includes a program code for executing the method shown in the flowchart. In some such embodiments, the computer program can be downloaded and installed from the network through the communication device 1209, or installed from the storage device 1208, or installed from the ROM 1202. When the computer program is executed by the processing device 1201, the above-mentioned functions defined in the method of some embodiments of the present application are executed.

[0117] It should be noted that the computer-readable medium described in some embodiments of the present application may be a computer-readable signal medium or a computer-readable storage medium or any combination of the above two. The computer-readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In some embodiments of the present application, a computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in combination with an instruction execution system, device or device. In some embodiments of the present application, a computer-readable signal medium may include a data signal propagated in a baseband or as part of a carrier wave, which carries a computer-readable program code. This propagated data signal may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. The computer readable signal medium may also be any computer readable medium other than a computer readable storage medium, which may send, propagate or transmit a program for use by or in conjunction with an instruction execution system, apparatus or device. The program code contained on the computer readable medium may be transmitted using any suitable medium, including but not limited to: wires, optical cables, RF (radio frequency), etc., or any suitable combination of the above.

[0118] In some embodiments, the client and the server may communicate using any currently known or future developed network protocol such as HTTP (HyperText Transfer Protocol), and may be interconnected with any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), an internet (e.g., the Internet), and a peer-to-peer network (e.g., an ad hoc peer-to-peer network), as well as any currently known or future developed network.

[0119] The computer-readable medium may be included in the electronic device, or may exist independently without being installed in the electronic device. The computer-readable medium carries one or more programs, and when the one or more programs are executed by the electronic device, the electronic device executes the message processing method.

[0120] Computer program code for performing the operations of some embodiments of the present application may be written in one or more programming languages ​​or a combination thereof, including object-oriented programming languages ​​such as Java, Smalltalk, C++; and also conventional procedural programming languages ​​such as "C" language or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a separate software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, or may be connected to an external computer (e.g., through the Internet using an Internet service provider), including a local area network (LAN) or a wide area network (WAN).

[0121] The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present application. In this regard, each square box in the flow chart or block diagram can represent a module, a program segment or a part of a code, and the module, the program segment or a part of the code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two square boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.

[0122] The units described in some embodiments of the present application may be implemented by software or hardware. The units described may also be set in a processor, for example, it may be described as: a processor includes a first determination unit, a second determination unit, a selection unit, and a third determination unit. The names of these units do not, in some cases, constitute limitations on the units themselves.

[0123] The functions described above herein may be performed at least in part by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include: field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), complex programmable logic devices (CPLDs), and the like.

[0124] The above description is only some preferred embodiments of the present application and an explanation of the technical principles used. Those skilled in the art should understand that the scope of the invention involved in the embodiments of the present application is not limited to the technical solutions formed by the specific combination of the above technical features, but should also cover other technical solutions formed by any combination of the above technical features or their equivalent features without departing from the above invention concept. For example, the above features are replaced with (but not limited to) the technical features with similar functions disclosed in the embodiments of the present application to form a technical solution.

Claims

1. A message processing method, characterized in that: The invention is applied to a missing state holding register MSHR based on a consistency hub interface CHI protocol, wherein the MSHR comprises a message decoding component, at least one data reading component, at least one data writing component, and a control component for processing data-independent services in the MSHR; the method comprises: After the request message following the CHI protocol is recorded in the MSHR, the transaction indicated by the request message is processed by at least one of the message decoding component, the data reading component, and the data writing component; After the transaction indicated by the request message is completed, removing the request message from the MSHR through the control component; The at least one data reading component comprises: A first data reading component, configured to read data from a slave node defined in the CHI protocol, wherein the slave node is a node defined in the CHI protocol for processing a message initiated by a master node, and the master node is a node defined in the CHI protocol for processing a message initiated by a requesting node; A second data reading component, used to read data from a request message initiator defined in the CHI protocol; A third data reading component, used to read data from a probe message receiver defined in the CHI protocol; The at least one data writing component comprises: A first data writing component, used for writing data into the slave node; A second data writing component, used to write data into the request message initiator; A third data writing component is used to write data into a cache pipeline that is communicatively connected to the MSHR, wherein the cache pipeline includes a last-level cache LLC.

2. The method according to claim 1, characterized in that The message decoding component is connected to the request message receiving channel, and supports interaction with the first data reading component, the second data reading component, the third data reading component, the second data writing component and the control component; The processing of the transaction indicated by the request message by at least one of the message decoding component, the data reading component, and the data writing component includes: The message decoding component performs the following steps: receiving the request message from a request message receiving channel, wherein the request message includes transaction type information; Based on the transaction type information, a target interaction object is determined, and indication information is sent to the target interaction object.

3. The method according to claim 2, characterized in that The determining a target component based on the transaction type information, and sending instruction information to the target component includes: When the transaction type information indicates a first type of read transaction, first indication information is sent to the first data reading component, and second indication information is sent to the control component; The first type of read transaction is a read transaction that does not require sending a visit message, the first indication information is used to indicate sending a read request message to a request message sending channel, and the second indication information is used to indicate waiting for receiving a transmission completion confirmation message.

4. The method according to claim 2, characterized in that: The cache pipeline also includes an identification storage component, the identification storage component is used to store an identification, and the identification is used to indicate whether the requesting node has the required data; The determining a target component based on the transaction type information, and sending instruction information to the target component includes: When the transaction type information indicates a second type read transaction, sending a read request message to the cache pipeline to receive response information of the cache pipeline to the read request message, wherein the second type read transaction is a read transaction that may need to send a visit message; If the response information indicates that the LLC hits, third indication information is sent to the second data writing component, and the third indication information is used to instruct to send a data message to the request message initiator; if the response information indicates that the LLC does not hit and the identification storage component hits, fourth indication information is sent to the third data reading component, and the fourth indication information is used to instruct to send a search message to a search message sending channel; if the response information indicates that the LLC does not hit and the identification storage component does not hit, first indication information is sent to the first data reading component, and the first indication information is used to instruct to send a read request message to a request message sending channel; Sending second indication information to the control component, where the second indication information is used to indicate waiting to receive a transmission completion confirmation message.

5. The method according to claim 2, characterized in that: The determining a target component based on the transaction type information, and sending instruction information to the target component includes: In the case where the transaction type information indicates a first type of write transaction, fifth indication information is sent to the second data reading component, the first type of write transaction is a non-return write transaction that does not require sending a visit message, and the fifth indication information is used to instruct sending a response message to a response message sending channel; When the transaction type information indicates a second type of write transaction, sixth indication information is sent to the second data reading component, the second type of write transaction is a write transaction that does not require sending a visit message and requires return, and the sixth indication information is used to indicate sending a response message to the initiator of the request message.

6. The method according to claim 2, characterized in that The first data reading component is connected to the request message sending channel, the data message receiving channel and the response message receiving channel, and supports interaction with the message decoding component, the third data reading component, the second data writing component, the third data writing component and the control component; The processing of the transaction indicated by the request message by at least one of the message decoding component, the data reading component, and the data writing component further includes: The first data reading component performs the following steps: When receiving the indication information sent by the message decoding component or the third data reading component, determining the transaction type based on the received indication information; For a first type of transaction, sending third indication information to the second data writing component, the first type of transaction is a transaction of transmitting data received from the slave node to the request message initiator, and the third indication information is used to instruct sending a data message to the request message initiator; For a second type of transaction, sending seventh indication information to the third data writing component, wherein the second type of transaction is a transaction for storing data received from the slave node to the LLC, and the seventh indication information is used to instruct sending a write request message to the cache pipeline; The control component sends its own status information to the control component, so that the control component determines the transaction status based on the received status information.

7. The method according to claim 2, characterized in that The second data reading component is connected to the response message sending channel and the data message receiving channel, and supports interaction with the message decoding component, the first data writing component, the third data writing component and the control component; The processing of the transaction indicated by the request message by at least one of the message decoding component, the data reading component, and the data writing component further includes: The following steps are performed by the second data reading component: Upon receiving the indication information sent by the message decoding component, determining the transaction type based on the received indication information; For a third type of transaction, sending eighth indication information to the first data writing component, the third type of transaction is sending the data received from the request message initiator to the slave node, and the eighth indication information is used to instruct sending a write request message to the request message sending channel; For a fourth type of transaction, seventh indication information is sent to the third data writing component, wherein the fourth type of transaction is a transaction in which data received from the request message initiator is stored in the LLC, and the seventh indication information is used to instruct sending a write request message to the cache pipeline; The control component sends its own status information to the control component, so that the control component determines the transaction status based on the received status information.

8. The method according to claim 2, characterized in that: The third data reading component is connected to the search message sending channel, the response message receiving channel and the data message receiving channel, and supports interaction with the message decoding component, the first data reading component, the first data writing component, the second data writing component, the third data writing component and the control component; The processing of the transaction indicated by the request message by at least one of the message decoding component, the data reading component, and the data writing component further includes: The following steps are performed by the third data reading component: When receiving the indication information sent by the message decoding component, determining the transaction type based on the received indication information; For a read transaction in the case of a miss in the LLC, if no reply is received from the probe message receiver, first indication information is sent to the first data read component, the first indication information is used to instruct to send a read request message to the request message sending channel; if a reply is received from the probe message receiver, eighth indication information is sent to the second data write component, the eighth indication information is used to instruct to send a data message to the data message sending channel; if data needs to be stored in the LLC, seventh indication information is sent to the third data write component, the seventh indication information is used to instruct to send a write request message to the cache pipeline; For a no-data transaction, if all replies from the probe message recipients are received, fifth indication information is sent to the control component, where the fifth indication information is used to instruct to send a response message to the response message sending channel; if dirty data is received, eighth indication information is sent to the first data writing component, where the eighth indication information is used to instruct to send a write request message to the request message sending channel; The control component sends its own status information to the control component, so that the control component determines the transaction status based on the received status information.

9. The method according to claim 2, characterized in that: The first data writing component is connected to the response message receiving channel, the request message sending channel and the data message sending channel, and supports interaction with the message decoding component, the second data reading component, the third data reading component and the control component; The processing of the transaction indicated by the request message by at least one of the message decoding component, the data reading component, and the data writing component further includes: The first data writing component performs the following steps: Upon receiving the indication information sent by the message decoding component, the second data reading component or the third data reading component, interacting with the slave node based on the received indication information to complete data transmission from the MSHR to the slave node; The control component sends its own status information to the control component, so that the control component determines the transaction status based on the received status information.

10. The method according to claim 2, characterized in that The second data writing component is connected to the data message sending channel, and supports interaction with the message decoding component, the first data reading component, the third data reading component and the control component; The processing of the transaction indicated by the request message by at least one of the message decoding component, the data reading component, and the data writing component further includes: The second data writing component performs the following steps: Upon receiving the indication information sent by the message decoding component, the first data reading component or the third data reading component, interacting with the request message initiator based on the received indication information to complete the data transmission from the MSHR to the request message initiator; The control component sends its own status information to the control component, so that the control component determines the transaction status based on the received status information.

11. The method according to claim 2, characterized in that The third data writing component supports interaction with the message decoding component, the first data reading component, the second data reading component, the third data reading component and the control component; The processing of the transaction indicated by the request message by at least one of the message decoding component, the data reading component, and the data writing component further includes: The third data writing component performs the following steps: Upon receiving indication information sent by the message decoding component, the first data reading component, the second data reading component or the third data reading component, interacting with the cache pipeline based on the received indication information to complete data transmission from the MSHR to the LLC; The control component sends its own status information to the control component, so that the control component determines the transaction status based on the received status information.

12. The method according to claim 2, characterized in that: The cache pipeline is used to perform a cache access operation according to the read request message sent by the message decoding component or the write request message sent by the third data writing component when receiving the read request message sent by the message decoding component or the write request message, and return a request response result and indication information to the message decoding component or the third data writing component.

13. The method according to claim 1, characterized in that The control component is connected to the response message sending channel, the data message receiving channel and the response message receiving channel, and supports interaction with the message decoding component, the at least one data reading component and the at least one data writing component; The removing the request message from the MSHR by the control component includes: The following steps are performed by the control component: Obtain status information of other components in the MSHR; Determine a transaction status based on the acquired status information; When the transaction status indicates that the transaction processing is completed, the request message is removed from the MSHR.

14. A message processing device, characterized in that: The device is applied to a missing state holding register MSHR based on a consistency hub interface CHI protocol, wherein the MSHR comprises a message decoding component, at least one data reading component, at least one data writing component, and a control component for processing data-independent services in the MSHR; the device comprises: a processing unit, configured to process the transaction indicated by the request message through at least one of the message decoding component, the data reading component, and the data writing component after the request message following the CHI protocol is recorded in the MSHR; A removing unit, configured to remove the request message from the MSHR through the control component after the transaction indicated by the request message is completed; The at least one data reading component includes: a first data reading component, used to read data from a slave node defined in the CHI protocol, the slave node is a node defined in the CHI protocol for processing a message initiated by a master node, and the master node is a node defined in the CHI protocol for processing a message initiated by a requesting node; a second data reading component, used to read data from a request message initiator defined in the CHI protocol; a third data reading component, used to read data from a search message receiver defined in the CHI protocol; The at least one data writing component includes: a first data writing component, used to write data to the slave node; a second data writing component, used to write data to the request message initiator; a third data writing component, used to write data to a cache pipeline connected to the MSHR communication, wherein the cache pipeline includes a last-level cache LLC.

15. An electronic device, characterized in that: include: one or more processors; a storage device having one or more programs stored thereon, When the one or more programs are executed by the one or more processors, the one or more processors implement the method according to any one of claims 1 to 13.

16. A computer readable medium having a computer program stored thereon, characterized in that: When the program is executed by a processor, the method according to any one of claims 1 to 13 is implemented.

Citation Information

Patent Citations

  • Universal protocol conversion bridge for CHI bus and SoC

    CN111611187A

  • Data prefetching compilation optimization method based on multi-level Cache

    CN115794111A