WO2020132987A1 - 一种数据读取方法、装置及多核处理器 - Google Patents

一种数据读取方法、装置及多核处理器 Download PDF

Info

Publication number
WO2020132987A1
WO2020132987A1 PCT/CN2018/124035 CN2018124035W WO2020132987A1 WO 2020132987 A1 WO2020132987 A1 WO 2020132987A1 CN 2018124035 W CN2018124035 W CN 2018124035W WO 2020132987 A1 WO2020132987 A1 WO 2020132987A1
Authority
WO
WIPO (PCT)
Prior art keywords
request
read
exclusive
target data
state
Prior art date
Application number
PCT/CN2018/124035
Other languages
English (en)
French (fr)
Inventor
程永波
贺成洪
孙威
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to PCT/CN2018/124035 priority Critical patent/WO2020132987A1/zh
Priority to CN201880099938.XA priority patent/CN113168400A/zh
Publication of WO2020132987A1 publication Critical patent/WO2020132987A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Definitions

  • the present application relates to the technical field of data processing, and in particular, to a data reading method, device, and multi-core processor.
  • each processor core is usually configured with a corresponding cache agent (CA).
  • CA cache agent
  • the processor core quickly reads and writes data from the corresponding CA, and can be local agents (home agent, HA) manages the read and write permissions of data for multiple CAs.
  • CA1 may send an exclusive read request to the HA to request the HA exclusive rights (a type of read and write rights) to the target data.
  • HA receives the exclusive read request of CA1, provides target data to CA1 according to the exclusive read request of CA1, and instructs other CAs to invalidate the cached target data, so that CA1 obtains exclusive rights to the target data.
  • CAs may encounter conflicts in the read requests during the data reading process.
  • the HA receives the exclusive read request sent by CA1, and provides target data to CA1 according to the exclusive read request, and instructs other CAs to invalidate the cached target data.
  • the HA receives the exclusive read request sent by CA2, and the HA instructs CA1 to provide target data to CA2 according to the exclusive read request, and instructs CA1 to invalidate the cached target data.
  • CA1 may receive a request from HA to indicate that CA1 is invalid for the target data before receiving the target data after sending the exclusive read request. A read request conflict occurred at CA1.
  • the present application provides a data reading method, device, and multi-core processor, which are used to provide a mechanism for handling conflicts in reading requests.
  • an embodiment of the present application provides a data reading method, including: a first caching agent CA sends a first exclusive read request to a local agent HA, the first exclusive read request is used to instruct the HA to target data The status is updated to the exclusive state of the first CA; before receiving the first exclusive read response of the first exclusive read request, the first CA determines if it receives the first interception request sent by the HA and determines it according to the first interception request When the state of the target data is the exclusive state of the first CA, the first interception request is suspended; after receiving the first exclusive read response, the first CA updates the read and write permissions for the target data according to the first interception request, and sends The HA sends the first listening response.
  • the first CA suspends the first interception request and receives the first After the first exclusive read response of the exclusive read request, it responds to the first listening request, so that while ensuring cache consistency, the processing of each request can be completed in sequence, thereby solving the conflict of read requests.
  • the first CA may update the read and write permissions to the target data through the following methods, including: if the first interception request is an exclusive interception request, the first CA Update the read and write permissions for the target data to invalid permissions; if the first listening request is a shared listening request, the first CA updates the read and write permissions for the target data to shared permissions; if the first listening request is invalid Listening to the request, the first CA updates the read and write permissions on the target data to exclusive permissions.
  • an embodiment of the present application provides a data reading method, including: a local agent HA receives a first exclusive read request sent by a first caching agent CA; the HA updates the state of target data to the first according to the first exclusive request A CA exclusive state; if the HA receives a second read request from the second CA, it sends a first intercept request to the first CA according to the state of the target data; the first intercept request is used to indicate if the first CA A listening request determines that the state of the target data is the first CA exclusive state, then suspends the first listening request, and, after receiving the first exclusive read response, updates the reading and writing of the target data according to the first listening request Authority; HA receives the first intercept response returned by the first CA according to the first intercept request, and updates the state of the target data; HA sends a second read response to the second CA.
  • the HA updates the state of the target data, including: if the second read request is an exclusive read request, the HA updates the state of the target data to the second CA exclusive state; If the second read request is a shared read request, the HA updates the state of the target data to the shared state of the first CA and the second CA; if the second read request is an invalid read request, the HA changes the state of the target data Update to the first CA exclusive state.
  • an embodiment of the present application provides a data reading method, including: a second caching agent CA sends a second reading request to a local agent HA; the second reading request is used to instruct the HA to update according to the second reading request The state of the target data; the second CA receives the second read response of the second read request sent by the HA, and updates the read and write permissions for the target data.
  • the second CA may update the read-write permission to the target data to the exclusive permission; the method further includes: 2. If the CA changes the read-write permission to the target data from the exclusive permission to the invalid permission, it sends permission change information to the HA; the permission change information is used to instruct the HA to modify the state of the target data to an invalid state.
  • an embodiment of the present application provides a data reading method, including: a first caching agent CA sends a first shared read request to a local agent HA, and the first shared read request is used to indicate the status of the HA to target data Update to the first CA shared state; before receiving the first shared read response of the first shared read request, the first CA will read and write the target data if it receives the third exclusive listening request sent by the HA The permissions are updated to invalid permissions, and a third exclusive listening response is sent to the HA; after receiving the first shared read response, the first CA sends a second shared read request to the HA, and the second shared read request is used to instruct the HA The state of the target data is updated to the first CA shared state.
  • the first CA when the third exclusive interception request received by the first CA conflicts with the first shared read request sent by the first CA, the first CA sends a third exclusive interception response to the HA and receives After the first shared read response, the second shared read request is sent to the HA, so that the target data obtained by the first CA is the latest target data, and the read request conflict is resolved while ensuring cache consistency.
  • an embodiment of the present application provides a data reading method, including: a local agent HA receives a first shared read request sent by a first caching agent CA; the HA updates the state of target data according to the first shared read request It is the first CA sharing state and sends a first shared read response to the first CA; HA receives the third exclusive read request sent by the second CA and sends a third exclusive interception to the first CA according to the state of the target data Request; the third exclusive listening request is used to instruct the first CA to update the read and write permissions to the target data to invalid permissions; the HA receives the third exclusive listening response of the third exclusive listening request sent by the first CA , Send a third exclusive read response to the second CA, and update the state of the target data to the exclusive state of the second CA; after receiving the second shared read request sent by the first CA, the HA sends the second Two shared interception request; after receiving the second shared interception response of the second shared interception request sent by the second CA, update the state of the target data
  • the third exclusive read response is used to instruct the second CA to return an acknowledgement response of the third exclusive read response to the HA; the HA sends the second shared listening to the second CA Before the request, it also includes: the HA receives the acknowledgement response of the third exclusive read response sent by the second CA.
  • the HA uses the third exclusive read response to instruct the second CA to return an acknowledgement response of the third exclusive read response to the HA, and receives the second CA After the acknowledgement response of the third exclusive read response sent, a second shared listening request is sent to the second CA to prevent the third exclusive read request sent by the second CA from sharing the second share received by the second CA There was a conflict in the listening request.
  • an embodiment of the present application provides a data reading method, including: a second caching agent CA sends a third exclusive read request to a local agent HA; the third exclusive read request is used to instruct the HA to state the target data Update to the exclusive state of the second CA; the second CA receives the third exclusive read response sent by the HA, and updates the read and write permissions of the target data to the exclusive authority; the second CA receives the second shared listening request sent by the HA, and Update the exclusive right to the target data to the shared right according to the second shared interception request; the second CA sends a second shared interception response to the HA.
  • the method further includes: the second CA sends an acknowledgement response of the third exclusive read response to the HA.
  • an embodiment of the present application provides an apparatus, including: a request module and a permission module; wherein, the request module is used to send a first exclusive read request to the local agent HA, and the first exclusive read request is used to instruct the HA Update the state of the target data to the device exclusive state; the authority module is used to receive the first interception request sent by the HA before receiving the first exclusive read response of the first exclusive read request, and according to the first The interception request determines that the state of the target data is the device exclusive state, and then suspends the first interception request; after receiving the first exclusive read response, the read-write permission to the target data is updated according to the first interception request, and the The HA sends the first listening response.
  • the permission module is specifically used to: if the first listening request is an exclusive listening request, update the read and write permissions to the target data to invalid permissions; if the first detection If the listening request is a shared listening request, the read and write permissions for the target data are updated to shared permissions; if the first listening request is an invalid listening request, the read and write permissions for the target data are updated to exclusive permissions.
  • an embodiment of the present application provides an apparatus, including: a request module and a status module; wherein, the request module is used to receive the first exclusive read request sent by the first caching agent CA; the status module is used to An exclusive request updates the state of the target data to the exclusive state of the first CA; the request module is also used to send a first interception to the first CA based on the state of the target data if a second read request of the second CA is received Request; the first interception request is used to instruct the first CA to suspend the first interception request if it determines that the state of the target data is the first CA exclusive state according to the first interception request, and receive the first exclusive read After the reply, update the read and write permissions to the target data according to the first intercept request; the status module is also used to receive the first intercept response returned by the first CA according to the first intercept request, and update the status of the target data; The second CA sends a second read response.
  • the status module is specifically configured to: if the second read request is an exclusive read request, update the state of the target data to the second CA exclusive state; if the second read If the fetch request is a shared read request, the state of the target data is updated to the shared state of the first CA and the second CA; if the second read request is an invalid read request, the state of the target data is updated to the first CA exclusive status.
  • an embodiment of the present application provides an apparatus, including: a request module and a permission module; wherein, the request module is used to send a second read request to the local agent HA; the second read request is used to instruct the HA to The second read request updates the state of the target data; the authority module is used to receive the second read response of the second read request sent by the HA, and update the read and write authority to the target data.
  • the permission module is specifically used to: if the second read request is an exclusive read request, update the read-write permission to the target data to the exclusive permission; the permission module also uses Yu: If the read and write permissions for the target data are modified from exclusive permissions to invalid permissions, permission change information is sent to the HA through the request module; where the permission change information is used to instruct HA to modify the state of the target data to an invalid state.
  • an embodiment of the present application provides an apparatus, including: a request module and a permission module; wherein, the request module is used to send a first shared read request to the local agent HA, and the first shared read request is used to instruct the HA Update the state of the target data to the device sharing state; the authority module is used to receive the third exclusive listening request sent by the HA before receiving the first shared read response of the first shared read request.
  • the read and write permissions of the target data are updated to invalid permissions, and a third exclusive listening response is sent to the HA; after receiving the first shared read response, the second shared read request is sent to the HA, which is used for the second shared read request Instructs the HA to update the state of the target data to the device sharing state shown.
  • an embodiment of the present application provides an apparatus, including: a request module and a status module; wherein, the request module is used to receive the first shared read request sent by the first cache agent CA; the status module is used to: The first shared read request updates the state of the target data to the first CA shared state, and sends the first shared read response to the first CA; the request module is also used to receive the third exclusive read request sent by the second CA And send a third exclusive interception request to the first CA according to the state of the target data; the third exclusive interception request is used to instruct the first CA to update the read and write permissions for the target data to invalid permissions; upon receiving the first CA After the third exclusive listening response of the sent third exclusive listening request, the third exclusive read response is sent to the second CA, and the state of the target data is updated to the second CA exclusive state; upon receiving the first CA After the second shared read request, the second shared intercept request is sent to the second CA; the status module is also used to receive the second shared intercept response from the second shared intercept request sent by the second
  • the third exclusive read response is used to instruct the second CA to return an acknowledgement response of the third exclusive read response to the device; the request module sends the second share to the second CA Before listening to the request, it is also used to receive an acknowledgement response of the third exclusive read response sent by the second CA.
  • an embodiment of the present application provides an apparatus, including: a request module and a permission module; wherein, the request module is used to send a third exclusive read request to the local agent HA; the third exclusive read request is used to indicate HA updates the state of the target data to the exclusive state of the device; the authority module is used to receive the third exclusive read response sent by the HA, and update the read and write authority to the target data to the exclusive authority; receive the second share sent by the HA Listen to the request, and update the read-write permission to the target data to the sharing permission according to the second shared listening request; send a second shared listening response to the HA.
  • the authority module after receiving the third exclusive read response sent by the HA, the authority module is further configured to send an acknowledgement response of the third exclusive read response to the HA.
  • an embodiment of the present application provides a readable storage medium that stores executable instructions, and the executable instructions are used to cause a computer to execute the first aspect as described above, or a possible implementation of the first aspect Manner, or second aspect, or possible implementation of the second aspect, or third aspect, or possible implementation of the third aspect, or fourth aspect, or fifth aspect, or possible implementation of the fifth aspect
  • an embodiment of the present application provides a program product which, when it runs on a controller, can cause a computer to execute the first aspect described above, or a possible implementation manner of the first aspect, or the second aspect, or the first aspect Possible implementation of the second aspect, or the third aspect, or the possible implementation of the third aspect, or the fourth aspect, or the fifth aspect, or the possible implementation of the fifth aspect, or the sixth aspect, or the first The methods provided in the six possible implementations.
  • an embodiment of the present application provides a multi-core processor.
  • the multi-core processor includes multiple processor cores, multiple cache proxy CAs, and at least one local proxy HA; Multiple CAs one-to-one correspondence; processor core, used to read and write data cached in the CA corresponding to the processor core; CA, used to perform the first aspect as described above, or a possible implementation manner of the first aspect, Or a third aspect, or a possible implementation manner of the third aspect; HA, for performing the second aspect described above, or a possible implementation manner of the second aspect; or, CA, for performing the fourth aspect described above, or
  • the sixth aspect, or the method provided by the possible implementation manner of the sixth aspect; HA is used to execute the method provided by the fifth aspect, or the possible implementation manner of the fifth aspect.
  • Figure 1 is a schematic diagram of a cache system architecture
  • Figure 2 is a schematic diagram of a data reading process
  • Figure 3 is the second schematic diagram of a data reading process
  • FIG. 4 is a schematic diagram of a data write-back process
  • FIG. 5 is a schematic diagram of a conflict process between a read request and a write-back request
  • FIG. 6 is a schematic flowchart of a data reading method according to an embodiment of the present application.
  • FIG. 8 is a schematic flowchart of a data reading method provided by an embodiment of the present application.
  • FIG. 9 is a schematic flowchart of a data reading method provided by an embodiment of the present application.
  • FIG. 10 is a schematic structural diagram of an apparatus provided by an embodiment of the present application.
  • FIG. 11 is a schematic structural diagram of an apparatus provided by an embodiment of the present application.
  • FIG. 1 is a schematic diagram of a cache system architecture.
  • the system includes a memory 101 and a multi-core processor 102, where the multi-core processor 102 is a coherent multi-processor (CMP).
  • the multi-core processor 102 includes multiple processor cores (core0 to coreN, N is greater than 0), and multiple cache agents (CA) (CA0 to CAN), where multiple processor cores One-to-one correspondence with multiple CAs. For example, if core0 corresponds to CA0, then core0 can read and write cached data through CA0. For example, if core1 corresponds to CA1, then core1 can read and write cached data through CA1.
  • the multi-core processor 102 also includes at least one local agent HA (such as HA0 to HAM, M is greater than or equal to 0).
  • the memory 101 is used to store data, and each HA in at least one HA may be connected to the memory 101 and manage the data stored in the memory 101.
  • the number of HAs is related to the amount of data in the memory 101. For example, when the amount of data stored in the memory 101 is large, multiple HAs may be required to separately manage part of the data stored in the memory 101. In other words, the amount of data in the memory 101 The larger the number of HA.
  • ICN interconnect network
  • Any CA can transmit messages to any HA through ICN, and can also transmit messages to other CAs through ICN.
  • the embodiments of the present application are only directed to the HA used to manage the target data, which are the same below and will not be described in detail.
  • the memory 101 shown in FIG. 1 may be an internal memory (memory), or may be a last level cache (LLC) in a three-level cache system.
  • LLC last level cache
  • the embodiment of the present application uses the internal memory 101 as an example for description.
  • any CA includes at least a storage unit and a control unit.
  • the storage unit is used to store the data cached by the CA
  • the control unit is used to manage the CA's read and write permissions for the data.
  • the CA's read and write permissions for data include exclusive permissions, sharing permissions, and invalid permissions. For example, if CA0's read and write authority for data A is an exclusive authority, CA0 can cache data A, and core0 corresponding to CA0 can read and write data A. If CA0's read and write permissions for data A are shared, CA0 caches data A and core0 can read data A, but cannot write data. If CA0's read and write permission for data A is invalid, CA0 cannot cache data A, or data A cached by CA0 is invalid.
  • the data state of the data in the embodiments of the present application is different from the data state.
  • the data state of the data indicates the state of the data in one CA, and the state of the data indicates the distribution of the read and write permissions of the data in multiple CAs.
  • data A can be either the modified state m or the exclusive state e in CA0; if the read and write authority of CA0 to data A is a shared authority, Then data A can be shared state s in CA0; if CA0's read and write permissions for data A are invalid, the state of data A in CA0 is invalid, that is, data A or data cached in CA0 are not cached in CA0 Data A is not readable or writable.
  • any HA also includes at least a storage unit and a control unit.
  • the control unit is used to manage the state of data
  • the storage unit is used to store the state of each data.
  • the storage unit in the HA will store the state of the data in the form of a directory, including the CA that currently caches the data, and the CA that caches the data read and write permissions for the data.
  • the memory in the HA stores the corresponding data Directory, and the control unit completes the update of the status of the data by updating the directory stored in the storage unit.
  • the correspondence between the status of data A and the read and write permissions of CA0 to CAN for data A, respectively, can be specifically: If the status of data A is CA0 exclusive state, then CA0 read and write authority to data A is exclusive authority, CA1 to CAN read and write authority to data A is invalid authority. If the state of data A is the shared state of CA0 and CA1, then the read and write permissions of CA0 and CA1 for data A are shared permissions, and the read and write permissions of CA2 to CAN for data A are invalid permissions. If the status of data A is invalid, then the read and write permissions of CA0 to CAN for data A are all invalid permissions. It should be understood that in the embodiment of the present application, the state of data A is the shared state of CA0, including the case where only CA0 caches data A, and the case where CA0 and other one or more CAs jointly cache data A.
  • the CA can change the read and write permissions to any data by sending different types of read and write requests to the HA.
  • the read request can be shown in Table 3 below:
  • Read request Request definition RdI Get target data but do not apply for permission RdS Acquire target data and allow target data to be shared with other CAs
  • RdE Obtain target data, and exclusive permission to target data
  • RdX Get exclusive access to target data not target data InvX All CA's read and write permissions to the target data are invalid, do not read the data
  • RdI is an invalid read request.
  • CA can send RdI to HA to obtain the target data, but the CA does not cache the target data, that is, the read and write permissions for the target data are still invalid permissions.
  • RdS is a shared read request, and CA can send RdS to HA to obtain target data and share permission to target data.
  • RdE is one of the exclusive read requests.
  • CA can send RdE to HA to obtain the target data and the exclusive authority to the target data.
  • RdX is the second of exclusive read requests.
  • CA can send RdX to HA to obtain exclusive permission to target data, but not to obtain target data.
  • the CA can also send InvX to the HA to request the HA to invalidate the target data cached in all CAs, that is, all CAs have invalid permissions on the target data.
  • the processor core corresponding to the CA modify the target data cached in the CA.
  • the CA with exclusive authority can send a write-back request to the HA to request the HA to update the target data in the internal memory according to the target data cached in the CA, that is, write-back target data.
  • the write-back request can be shown in Table 4 below:
  • WbI is an invalid write-back request.
  • CA can send WbI to HA to request HA to write the target data cached in CA to the internal memory.
  • CA's read and write permissions on the target data become invalid, that is, CA Invalidate its cached target data;
  • WbS is a shared write-back request, CA can send WbS to HA to request HA to write the cached target data in CA into internal storage, and meanwhile, CA's read and write permissions on target data become shared permissions ;
  • WbE is an exclusive write-back request.
  • CA can send WbE to HA to request HA to write the target data cached in CA to the internal memory.
  • CA's read and write permissions on the target data are still exclusive permissions.
  • the management of the state of the target data by the HA involves the change of the read and write permissions of the target data by multiple CAs.
  • CA3 sends an exclusive read request to HA
  • HA needs to modify the read and write permissions of the target data to invalid permissions for CA4 to enable CA3 to obtain exclusive permissions on the target data.
  • the embodiment of the present application further provides an interception request as shown in Table V, and the HA sends the interception request to CA4, so that CA4 updates the read-write permission to the target data according to the interception request.
  • SnpI is an invalid listening request
  • SnpS is a shared listening request
  • SnpE is one of the exclusive listening requests
  • SnpE is used to obtain target data from CA4 and instructs CA4 to modify the read and write permissions to invalid permissions
  • SnpX is the second of exclusive listening requests. The difference from SnpE is that SnpX is only used to instruct CA4 to modify the read and write permissions to invalid permissions, and will not be used to obtain target data from CA4.
  • the specific sending rules of each listening request in Table 5 can be referred to in Table 9 subsequent to the embodiment of the present application.
  • CA3 is the CA that sends the read request to the HA
  • CA4 is the CA that is intercepted after receiving the interception request.
  • the read response is the response sent by HA to CA3 for the read request.
  • the read response includes the target data and/or permission response.
  • RspDataE is the data response, indicating an exclusive copy of the target data
  • Comp is a permission response.
  • CA3 receives Comp and can update the read and write permissions to the target data to exclusive permissions.
  • the listening response is the response sent by CA4 to the HA for the listening request.
  • Rsp_Comp is the response sent by HA to CA3, which is used to indicate the end of the reading process
  • Rsp_Ack is the response sent by CA to HA. , Used to notify HA that the CA has received a message sent by the HA.
  • the embodiment of the present application also provides a CA state transition rule table as shown in Table 7 below:
  • Data means requesting target data
  • Comp means requesting read and write permission to the target data.
  • Table 7 when the read and write permissions of CA3 to the target data are invalid or shared, CA3 can send a RdE read request to HA to obtain the target data and exclusive permissions to the target data. CA3 receives the HA After the response to the RdE request, the read and write permissions for the target data are updated to exclusive permissions. Other requests can be deduced by analogy.
  • CA4 after receiving the interception request, CA4 also needs to update the read and write permissions for the target data according to the interception request. For example, it can be updated according to the rules shown in Table 8:
  • CA4 After CA4 receives the invalid interception request SnpI, if the data state of the target data in CA4 is the modified state m, the corresponding read and write permission is the exclusive permission, CA4 maintains the exclusive permission to the target data and sends a listen to the HA In response, at the same time, you can update the data state of the target data to the exclusive state e or keep the modified state m. Specifically, if CA4 updates the data state of the cached target data to the exclusive state e, it can send an exclusive listening response SnpRspEWb to the HA. SnpRspEWb includes the latest copy of the target data in CA4.
  • HA After HA receives the SnpRspEWb, it can change the target The latest copy of the data is written to the internal memory, that is, the target data is written back. And, HA can further forward the latest copy of the target data to CA3. As shown in Table 8, CA4 can also send SnpRspFwdEWb to HA to instruct HA to write back the target data. In addition, CA4 will also send RspDataI to CA3, which is the invalid copy of the target data, thus completing the invalid read request to CA3 RdI's response.
  • HA after receiving the read request sent by CA3, HA will read the target data from the internal memory according to the read request and send it to CA3 or send a listen request to CA4 to instruct CA4 to update the target data Read and write permissions and/or provide target data to CA3.
  • the HA after receiving the RdI read request sent by CA3, if the current state of the target data is invalid or shared, the HA can directly read the target data from the internal memory and send it to CA3. If the current state of the target data is the exclusive state, the HA may send an invalid listening request, ie SnpI, to the CA4 of the exclusive target data, thereby instructing CA4 to provide the target data to CA3. Similarly, after receiving the RdS read request or RdE read request sent by CA3, HA will also read the target data from the internal memory and send it to CA3, or through the shared listening request SnpS or exclusive listening request SnpE Obtain the target data from CA4 and provide it to CA3.
  • the read request is the read request received by HA from CA3
  • the read response is the read response sent by HA to CA3
  • the listen response is after HA sends the listen request to CA4 according to the received read request, from The listening response received by CA4.
  • the HA receives the exclusive read request RdE sent by CA3, and the HA determines that the target data is in the exclusive state of CA4, it sends an exclusive listening request SnpE to CA4.
  • HA updates the state of the target data to the exclusive state E of CA3, and sends an exclusive read response RspDataE_Comp to CA3.
  • HA when the write-back request wb is included in the listening response, HA will also write back the target data.
  • the HA may also modify the state of the target data according to the type of the write-back request, as shown in Table 11:
  • the write-back request received by the HA is an invalid write-back request WbI
  • the target data is written to the internal memory, and the status of the target data is updated to an invalid state
  • the write-back request received by the HA To share the write-back request WbS, write the target data to the internal memory and update the state of the target data to the shared state
  • the write-back request received by the HA is an exclusive write-back request WbE, write the target data to the internal memory After the update, the state of the target data is still exclusive.
  • Figure 2 mainly includes the following steps:
  • S202 The HA sets the state of the target data to the CA2 exclusive state according to RdE. Specifically, assuming that the state of the target data is an invalid state, according to the rules shown in Table 9, HA reads the target data from the internal memory, changes the state of the target data to the CA2 exclusive state, and executes S203.
  • S203 The HA sends an exclusive read response to CA2.
  • the exclusive read response can be RspDataE_Comp.
  • CA2 After receiving RspDataE_Comp, CA2 updates the read and write permissions to the target data to exclusive permissions according to the rules shown in Table 7.
  • CA2 sends an exclusive listening response to HA.
  • the exclusive listening response may be any one of SnpRspISnpRspFwdI, SnpRspIWb, SnpRspFwdI, and SnpRspFwdIWb.
  • CA2 sends SnpRspIWb to HA in S208.
  • HA obtains the target data from SnpRspIWb. Since the write-back request is included in the exclusive listening response, HA writes the target data obtained from SnpRspIWb to the internal memory. And, the state of the target data is set to the CA1 exclusive state.
  • CA1 After receiving RspDataE_Comp, CA1 updates the read and write permissions to the target data to exclusive permissions according to the rules shown in Table 7.
  • Figure 3 mainly includes the following steps:
  • S302 After the HA receives the shared read request RdS, if it is determined that the state of the target data is the CA2 exclusive state, then S303 is executed according to the rules shown in Table 9.
  • S303 The HA sends a shared listening request SnpS to CA2.
  • CA2 After receiving the shared listening request SnpS, CA2 updates the read and write permissions to the target data to share permissions according to the rules shown in Table 8, changes the cached target data to the shared state, and executes S305.
  • S305 CA2 sends a shared listening response to HA.
  • the shared listening response can be any one of SnpRspS, SnpRspFwdS, SnpRspSWb, and SnpRspFwdSWb.
  • CA2 sends SnpRspFwdSWb to HA, and it simultaneously sends target data RspDataS to CA1.
  • S307 The HA sends a shared read response to CA1.
  • the shared read response sent by HA to CA1 may be the completion response Rsp_Comp.
  • CA1 After receiving Rsp_Comp and RspDataS, CA1 updates the read and write permissions to the target data to share permissions according to the rules shown in Table 7.
  • CA1 obtains the sharing authority of the target data, and changes the read and write authority of CA2 to the target data from the exclusive authority to the sharing authority.
  • FIG. 4 is a schematic diagram of a data writing back process, which mainly includes the following steps:
  • CA1 sends an invalid write-back request WbI to HA.
  • the invalid write-back request WbI the m-state target data cached by CA1 is included.
  • the HA receives the invalid write-back request WbI, and obtains m-state target data from the invalid write-back request WbI.
  • the HA writes the m-state target data to the internal memory, so as to update the target data stored in the internal memory. And, according to the rules shown in Table 11, the state of the target data is changed from the CA1 exclusive state to the invalid state.
  • the HA sends an invalid write-back response to CA1.
  • the invalid write-back response may be the completion response Rsp_Comp shown in Table 6.
  • the CA1 After receiving the invalid write-back response sent by the HA, the CA1 can determine that the HA has completed the modification of the state of the target data, and then can update the read and write permissions for the target data to invalid permissions.
  • the target data cached in CA1 that monopolizes the target data can be written to the internal memory, that is, the target data is written back, and then the cache space of CA1 can be released, and even the read and write authority of CA1 to the target data can be exclusive
  • the permissions are modified to other permissions.
  • FIG. 5 is a schematic diagram of a conflict process between a read request and a write-back request.
  • FIG. 5 mainly includes the following steps:
  • the HA receives the invalid read request WbI sent by CA2, writes the target data to the internal memory according to the invalid read request WbI, and updates the state of the target data to an invalid state.
  • CA2 sends an invalid write-back request WbI to HA before receiving the shared listening request SnpS sent by HA, so after CA2 receives the shared listening request SnpS, it suspends the shared listening request SnpS until it is received After the invalid write-back response Rsp_Comp, CA2 updates the read and write permissions on the target data to invalid permissions and sends a shared listening response to HA. Since the data cached in CA2 is in the i-state at this time, the shared listening response can be SnpRspI.
  • CA1 receives the shared read response RspDataS_Comp, caches the target data according to the shared read response RspDataS_Comp, and updates the read and write permissions for the target data to the shared permissions.
  • CA2 ensures that the write-back process can be normal carry out.
  • embodiments of the present application provide a data reading method to provide a mechanism for handling conflicts in reading requests.
  • Table 12 shows the processing rules of CA1 after receiving the listening request in the embodiment of the present application:
  • the interception request is the interception request received by CA1 from the HA, and the interception request includes the state of the target data. After receiving the interception request, CA1 can obtain the state of the target data from the interception request.
  • the embodiment of the present application also provides a processing rule for CA1 after receiving the read response, as shown in Table 13:
  • Embodiment 1 a processing mechanism in which a conflict between an exclusive read request and a listen request
  • FIG. 6 is a schematic flowchart of a data reading method according to an embodiment of the present application. As shown in FIG. 6, the method mainly includes the following steps:
  • CA1 sends a first exclusive read request to HA to obtain exclusive rights to target data.
  • the HA receives the first exclusive read request sent by CA1, and updates the state of the target data to the exclusive state of CA1 according to the first exclusive read request.
  • the HA may receive the first exclusive read request sent by CA1 from Obtain the target data in the internal memory and send the target data to CA1.
  • HA may send an exclusive listening request to CA3 to indicate CA3 Change the read and write permissions to the target data to invalid permissions, and obtain the target data from the internal memory and send the target data to CA1.
  • HA may send an exclusive listening request to CA3 to indicate CA3
  • the read and write permissions for the target data are changed to invalid permissions, and the CA3 is instructed to provide the latest copy of the target data.
  • S604 The HA receives the second read request sent by CA2.
  • the HA after receiving the first exclusive read request, the HA receives the second exclusive read request, so the HA generally processes the first exclusive read request first. If the HA receives the second read request when executing S602 and S603, the HA may suspend the second read request until S603 is executed.
  • S605 The HA sends the first listening request to CA1 according to the second reading request.
  • the request types of the first listening request and the second reading request there is the following correspondence between the request types of the first listening request and the second reading request: if the second reading request is an exclusive reading request, the first listening request is an exclusive listening request; if the second If the read request is a shared read request, the first listen request is a shared listen request; if the second read request is an invalid read request, the first listen request is an invalid listen request.
  • Table 9 The rules shown are not repeated in the embodiments of the present application.
  • CA1 Due to out-of-sequence messages in the ICN, CA1 receives the first listening request before receiving the first exclusive read response. Based on the rules shown in Table 12, after receiving the first interception request, CA1 suspends the first interception request if it determines that the state of the target data is the exclusive state of CA1 according to the first interception request. This is because if the state of the target data is determined to be the CA1 exclusive state according to the first listening request, it means that the HA has received and processed the first exclusive read request sent by CA1, so CA1 will necessarily receive HA in the future The first exclusive read response sent. Based on this, CA1 can suspend the first listening request to wait for the arrival of the first exclusive read response.
  • CA1 After receiving the first exclusive read response, CA1 updates the read and write permissions to the target data according to the first listening request according to the rules shown in Table 13.
  • the first exclusive read response includes target data
  • CA1 may obtain the target data from the first exclusive read response.
  • CA1 when CA1 receives the first exclusive read response, it also receives target data sent by other CAs (such as CA3).
  • CA1 After receiving the first exclusive read response, CA1 can start processing the first interception request, and update the read-write permission to the target data according to the first interception request. Taking the rules shown in Table 8 as an example, if the first listening request is an exclusive listening request, CA1 updates the read and write permissions to the target data to invalid permissions; if the first listening request is a shared listening request, CA1 Update the read and write permissions to the target data to share permissions; if the first listening request is an invalid listening request, CA1 updates the read and write permissions to the target data to exclusive permissions.
  • HA updates the state of the target data to the second CA exclusive state
  • HA Update the state of the target data to the shared state of CA1 and CA2
  • HA updates the state of the target data to the exclusive state of CA1.
  • the HA may also obtain target data according to the first listening response, and update the target data in the internal memory according to the obtained target data.
  • S610 The HA sends a second read response to CA2.
  • CA2 After receiving the second read response, CA2 can update the read and write permissions for the target data.
  • CA2 updates the read and write permissions to the target data to exclusive permissions; if the second read request is a shared read request RdS, Then CA2 updates the read and write permissions to the target data to share permissions; if the second read request is an invalid read request RdI, CA2 updates the read and write permissions to the target data to invalid permissions.
  • CA2 In order to improve the accuracy of data exclusive authority management, in a possible implementation of the embodiments of the present application, after CA2 updates the read and write authority to the target data to the exclusive authority, if the target is re-processed during subsequent processing If the exclusive authority of the data is modified to an invalid authority, CA2 needs to send authority change information to the HA to instruct the HA to modify the state of the target data to an invalid state.
  • CA2 may send an invalid write-back request to the HA, and the invalid write-back request includes the target data cached in CA2 to instruct the HA to write the invalid write-back after receiving the invalid write-back request The target data in the request is written to the internal memory.
  • CA2 changes the exclusive permission of the target data to the sharing permission, it can also send a share write-back request to the HA to instruct the HA to modify the state of the target data to the CA2 shared state.
  • the original read and write authority of CA1 to target data is an exclusive authority.
  • the state of the target data recorded in HA is the exclusive state of CA1. If CA1 changes the read and write permissions to the target data to invalid permissions during subsequent processing, but does not send permission change information to HA, it may send a read request conflict as shown in Figure 7, as shown in Figure 7, which mainly includes The following steps:
  • S702 The HA sends an exclusive listening request a to CA1 according to the state of the target data.
  • CA1 sends the exclusive read request b before receiving the exclusive listen request a, and receives the exclusive listen request a before receiving the exclusive read response corresponding to the exclusive read request b, at this time CA1 occurs Read request conflict.
  • CA1 changes the read and write permissions to the target data from exclusive permissions to invalid permissions, it sends permission modification information to HA, so that HA can modify the status of the target data to an invalid state, and then receives CA2
  • the exclusive read request a is sent, the exclusive listen request a is no longer sent to CA1, so that the conflict of the read request shown in FIG. 7 can be avoided.
  • Embodiment 2 a processing mechanism for conflict between a shared read request and an exclusive listening request
  • FIG. 8 is a schematic flowchart of a data reading method according to an embodiment of the present application. As shown in FIG. 8, the method mainly includes the following steps:
  • CA1 sends a first sharing read request to the HA to obtain the sharing authority for the target data.
  • HA Although HA records any data in a shared state, it can often record the CA that shares the data. However, since one data in the CMP system can often be shared by multiple CAs, if each CA sends permission modification information to the HA after invalidating the cached data, it will consume excessive resources in the system. Therefore, usually CA can invalidate the data with sharing authority without notifying HA, assuming that CA1 had obtained the target data and the sharing authority to the target data in the process before S801, and deleted the target data in the process, then In S801, the read and write authority of CA1 to the target data is invalid, and the state of the target data recorded by the HA is still the shared state.
  • the HA After receiving the first shared read request, the HA updates the state of the target data to the CA1 shared state according to the first shared read request.
  • HA sends a shared listening request to CA3 to instruct CA3 to modify the exclusive right to the target data to the shared right, and to HA or CA1 Send the target data, and HA changes the state of the target data to the shared state of CA1 and CA3; if the state of the target data is invalid, HA obtains the target data from the internal memory, provides the target data to CA1 and provides the target data The state is updated to the shared state of CA1; if the state of the target data is the shared state of CA3, HA obtains the target data from the internal memory, provides the target data to CA1 and updates the state of the target data to the shared state of CA1 and CA3.
  • S803 The HA sends the first shared read response of the first shared read request to CA1.
  • CA1 Due to out-of-sequence messages in the ICN, CA1 receives the third exclusive listening request before receiving the first shared read response of the first shared read request, and a read request conflict occurs.
  • the third exclusive interception request may also include the status information of the target data
  • CA1 may determine that the state of the target data is the CA1 shared state according to the third exclusive interception request, however, because HA receives the first shared read request before The state of the recorded target data may be the shared state of CA1, so CA1 cannot determine whether the HA has processed the first shared read request sent by it according to the third exclusive listening request.
  • CA1 updates the read and write permissions on the target data to invalid permissions and sends a third exclusive listening response to the HA.
  • the third exclusive listening response may include conflict information, such as SnpRespCnflt in Table 12, so that the HA can determine that a read request conflict occurs at CA1 according to the conflict information.
  • the HA receives the third exclusive listening response sent by CA1, and updates the state of the target data to the second CA exclusive state.
  • S808 The HA sends a third exclusive read response to CA2. After CA2 receives the third exclusive read response, it can modify the read and write permissions to the target data to exclusive permissions.
  • CA1 receives the first shared read response after receiving the third exclusive listening request. Since it is impossible to determine the order in which the first shared read request and the third exclusive read request arrive at the HA, it cannot determine its acquisition. Whether the target data of is the latest copy. As shown in FIG. 8, when CA1 receives the first shared read response, the state of the target data is exclusive to CA2. If CA2 modifies the target data, the target data obtained by CA1 through the first shared read request is not The latest copy of the target data. Therefore, according to the rules shown in Table 13, CA1 can invalidate the target data acquired through the first shared read response, and send the second shared read request to the HA again to request the sharing permission of the target data from the HA again.
  • CA2 may also return an acknowledgement response of the third exclusive read response to the HA.
  • CA2 may also return an acknowledgement response of the third exclusive read response to the HA.
  • HA has not received the acknowledgement response of the third exclusive read response, it suspends the second shared read request until it receives the acknowledgement response of the third exclusive read response After that, S810 is executed again to prevent the conflict of read requests at CA2.
  • S810 The HA sends a second shared listening request to CA2 according to the state of the target data.
  • CA2 updates the read-write permission to the target data to the sharing permission according to the second sharing listening request.
  • S814 The HA sends a second shared read response to CA1.
  • the second shared read request further includes response indication information.
  • the HA After receiving the second shared read request, the HA starts the acknowledge response mechanism, that is, after the HA sends any message, only The next message is sent only after receiving the reply of the message to prevent the read request conflict of the second shared read request of CA1.
  • CA1 can ensure that the latest copy of the target data and sharing permissions can still be obtained in the event of a conflict in the shared read request. It can be understood that although the HA receives the first shared read request first and then receives the third exclusive read request in the process shown in FIG. 8, for the HA, it receives the third exclusive read request first and then receives the first shared In the scenario of reading a request, CA1 can also be processed according to the steps in FIG. 8, the process can be as shown in FIG. 9, the steps performed by CA1 and CA2 are similar to FIG. 8, the difference is that some steps performed by HA (Shown in dashed lines). As shown in Figure 9, it mainly includes the following steps:
  • S901 The HA receives the third exclusive read request sent by CA2.
  • S902 The HA sends a third exclusive listening request to CA1 according to the state of the target data.
  • CA1 received the third exclusive listening request before receiving the first shared read response, so according to the rules shown in Table 12, CA1 still sends the third exclusive listening to the HA answer.
  • the third exclusive listening response may include conflict indication information, such as SnpRespCnflt in Table 12, so that the HA can determine that a read request conflict occurs at CA1 according to the conflict indication information.
  • S904 The HA updates the state of the target data to the CA2 exclusive state.
  • S905 The HA sends a third exclusive read response to CA2. After receiving the third exclusive read response, CA2 can update the read and write permissions to the target data to exclusive permissions.
  • the HA After receiving the third exclusive listening request, the HA receives the first shared read request. Since the HA has begun to process the third exclusive read request, the HA may suspend the first shared read request until the execution is completed S905 (or receive the acknowledgement response of the third exclusive read response sent by CA2).
  • S907 The HA sends a second shared listening request to CA2 according to the state of the target data.
  • CA2 After receiving the second shared listening request, CA2 updates the read and write permissions for the target data to share permissions.
  • S911 The HA sends the first shared read response to CA1.
  • CA1 After receiving the first shared read response, CA1 invalidates the target data obtained through the first shared read response according to the rules shown in Table 13, and sends a second shared read request to the HA.
  • CA1 cannot distinguish between the two different reads of FIG. 8 and FIG. 9.
  • the fetch request conflicts. Therefore, in the embodiment of the present application, if CA1 receives the third exclusive listening request before receiving the first shared read response, then CA1 will be invalidated after receiving the first shared read response And the second shared read request to the HA again to ensure that the final acquired target data is the latest copy of the target data.
  • the CA or HA may include a hardware structure and/or a software module corresponding to each function.
  • the present invention can be implemented in the form of hardware or a combination of hardware and computer software in combination with the units and algorithm steps of the examples described in the embodiments disclosed herein. Whether a function is performed by hardware or computer software driven hardware depends on the specific application of the technical solution and design constraints. Professional technicians can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of the present invention.
  • FIG. 10 shows one of possible exemplary block diagrams of the devices involved in the embodiments of the present application.
  • the device 1000 may be run in the CA in the form of software. As shown in FIG. 10, the device 1000 may include a request module 1001 and a permission module 1002. When the device 1000 runs on CA1 in the embodiment shown in FIG. 6:
  • the request module 1001 is used to send a first exclusive read request to the local agent HA.
  • the first exclusive read request is used to instruct the HA to update the state of the target data to the device exclusive state;
  • the authority module 1002 is used to receive the first Before the first exclusive read response of the exclusive read request, if the first interception request sent by the HA is received and the state of the target data is determined to be the exclusive state of the device 1000 according to the first interception request, the first interception is suspended Request; after receiving the first exclusive read response, update the read and write permissions to the target data according to the first listening request, and send the first listening response to the HA.
  • the permission module 1002 is specifically configured to: if the first listening request is an exclusive listening request, update the read and write permissions to the target data to invalid permissions; if the first listening request is shared For the listening request, the read and write permissions for the target data are updated to share permissions; if the first listening request is an invalid listening request, the read and write permissions for the target data are updated to exclusive permissions.
  • the request module 1001 is used to send a second read request to the local proxy HA; the second read request is used to instruct the HA to update the status of the target data according to the second read request; the authority module 1102 is used to receive the second sent by the HA Read the second read response of the request, and update the read and write permissions for the target data.
  • the permission module 1002 is specifically used to: if the second read request is an exclusive read request, update the read and write permission to the target data to the exclusive permission; the permission module 1003 is also used to: If the read-write permission for the target data is changed from the exclusive permission to the invalid permission, permission change information is sent to the HA through the request module 1001; where the permission change information is used to instruct the HA to modify the state of the target data to an invalid state.
  • the request module 1001 is used to send a first shared read request to the local agent HA, and the first shared read request is used to instruct the HA to update the state of the target data to the shared state of the device 1000;
  • the permission module 1002 is used to receive the first Before the first shared read response of a shared read request, if the third exclusive listening request sent by the HA is received, the read and write permissions for the target data are updated to invalid permissions, and the third exclusive listening is sent to the HA Response; after receiving the first shared read response, a second shared read request is sent to the HA, and the second shared read request is used to instruct the HA to update the state of the target data to the device 1000 shared state.
  • the request module 1001 is used to send a third exclusive read request to the local agent HA; the third exclusive read request is used to instruct the HA to update the state of the target data to the exclusive state of the device; the authority module 1002 is used to receive the HA The third exclusive read response, and update the read and write permissions to the target data to exclusive permissions; receive the second shared listening request sent by the HA, and update the read and write permissions to the target data according to the second shared listening request Sharing authority; send a second shared listening response to HA.
  • the authority module 1002 is further configured to send an acknowledgement response of the third exclusive read response to the HA.
  • FIG. 11 shows a second possible block diagram of a device involved in an embodiment of the present application.
  • the device 1100 may run in the HA in the form of software.
  • the apparatus 1100 may include a request module 1101 and a status module 1102. When the device 1100 runs on the HA in the embodiment shown in FIG. 6:
  • the request module 1101 is used to receive the first exclusive read request sent by the first caching agent CA; the status module 1102 is used to update the state of the target data to the first CA exclusive state according to the first exclusive request; the request module 1101 also If the second read request of the second CA is received, the first intercept request is sent to the first CA according to the state of the target data; the first intercept request is used to instruct the first CA if it is based on the first intercept request Determine that the state of the target data is the first CA exclusive state, then suspend the first listening request, and, after receiving the first exclusive read response, update the read and write permissions to the target data according to the first listening request; the status module 1102, also used to receive the first intercept response returned by the first CA according to the first intercept request, and update the status of the target data; send a second read response to the second CA.
  • the status module 1102 is specifically configured to: if the second read request is an exclusive read request, update the state of the target data to the second CA exclusive state; if the second read request is shared The read request updates the state of the target data to the shared state of the first CA and the second CA; if the second read request is an invalid read request, the state of the target data is updated to the exclusive state of the first CA.
  • the request module 1101 is used to receive the first shared read request sent by the first cache agent CA; the status module 1102 is used to update the state of the target data to the first CA shared state according to the first shared read request, and to the first A CA sends a first shared read response; the request module 1101 is also used to receive a third exclusive read request sent by a second CA, and send a third exclusive listen request to the first CA according to the state of target data; third The exclusive listening request is used to instruct the first CA to update the read and write permissions for the target data to invalid permissions; after receiving the third exclusive listening response of the third exclusive listening request sent by the first CA, the second CA Send a third exclusive read response, and update the state of the target data to the exclusive state of the second CA; after receiving the second shared read request sent by the first CA, send a second shared listening request to the second CA; The status module 1102 is also used to update the status of the target data to the shared status of the first CA and the second CA after receiving the second shared listening response of the second shared listening request sent by the
  • the third exclusive read response is used to instruct the second CA to return an acknowledgement response of the third exclusive read response to the device; before the request module 1101 sends the second shared listening request to the second CA, It is also used for: receiving the acknowledgement response of the third exclusive read response sent by the second CA.
  • the computer program product includes one or more computer instructions.
  • the computer may be a general-purpose computer, a dedicated computer, a computer network, or other programmable devices.
  • the computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be from a website site, computer, server or data center Transmission to another website, computer, server or data center via wired (eg coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (eg infrared, wireless, microwave, etc.).
  • the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device including a server, a data center, and the like integrated with one or more available media.
  • the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, Solid State Disk (SSD)), or the like.
  • a magnetic medium for example, a floppy disk, a hard disk, a magnetic tape
  • an optical medium for example, a DVD
  • a semiconductor medium for example, Solid State Disk (SSD)
  • the embodiments of the present application may be provided as a method, an apparatus (device), a readable storage medium, or a program product. Therefore, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects, which are collectively referred to herein as "modules" or "systems”.
  • program instructions can also be stored in a readable memory that can guide the programmable data processing device to work in a specific manner, so that the instructions stored in the readable memory produce a manufactured product including an instruction device, which is implemented in a flowchart Flow or multiple flows and/or block diagrams The functions specified in a block or blocks.
  • program instructions can also be loaded onto other programmable data processing devices, so that a series of operation steps are performed on other programmable devices to generate computer-implemented processing, so that the instructions executed on other programmable devices are provided for implementation in the process Figure one process or multiple processes and/or block diagrams are the steps of the functions specified in one block or multiple blocks.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例提供一种数据读取方法、装置及多核处理器,其中方法包括:第一CA向HA发送第一独占读取请求,该第一独占读取请求用于指示HA将目标数据的状态更新为第一CA独占状态;第一CA在接收到第一独占读取请求的第一独占读取应答前,若接收到HA发送的第一侦听请求,并根据第一侦听请求确定目标数据的状态为第一CA独占状态,则挂起第一侦听请求;第一CA接收到第一独占读取应答后,根据第一侦听请求更新对目标数据的读写权限,并向HA发送第一侦听应答。采用上述方法,在保证缓存一致性的同时解决读取请求冲突。

Description

一种数据读取方法、装置及多核处理器 技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据读取方法、装置及多核处理器。
背景技术
为了提升处理器的性能,越来越多的处理器采用了多处理器核架构。在采用多处理器核架构的处理器中,通常每个处理器核都配置有对应的缓存代理(cache agent,CA),处理器核从对应的CA中快速读写数据,并可以由本地代理(home agent,HA)管理多个CA对数据的读写权限。比如,CA1可以向HA发送独占读取请求,以向HA请求对目标数据的独占权限(读写权限的一种)。HA接收到CA1的独占读取请求,根据CA1的独占读取请求向CA1提供目标数据,并指示其它CA无效所缓存的目标数据,从而使CA1获取对目标数据的独占权限。
然而,由于不同CA可以独立地向同一个HA发送读取请求,致使CA在数据读取过程中可能会出现读取请求冲突的情况。例如,HA接收到CA1发送的独占读取请求,并根据该独占读取请求向CA1提供目标数据,以及指示其它CA无效所缓存的目标数据。之后,HA又接收到CA2发送的独占读取请求,HA根据该独占读取请求指示CA1向CA2提供目标数据,以及指示CA1无效所缓存的目标数据。由于CA1与HA之间有可能出现报文乱序等现象,使得CA1在发送了独占读取请求之后,有可能在接收到目标数据之前先接收到HA指示CA1无效该目标数据的请求,此时CA1处便发生了读取请求冲突。
发明内容
本申请提供一种数据读取方法、装置及多核处理器,用以提供一种读取请求冲突的处理机制。
第一方面,本申请实施例提供一种数据读取方法,包括:第一缓存代理CA向本地代理HA发送第一独占读取请求,该第一独占读取请求用于指示HA将目标数据的状态更新为第一CA独占状态;第一CA在接收到第一独占读取请求的第一独占读取应答前,若接收到HA发送的第一侦听请求,并根据第一侦听请求确定目标数据的状态为第一CA独占状态,则挂起第一侦听请求;第一CA接收到第一独占读取应答后,根据第一侦听请求更新对目标数据的读写权限,并向HA发送第一侦听应答。
采用上述方案,在第一CA接收到的第一侦听请求与第一CA所发送的第一独占读取请求发生冲突时,第一CA通过挂起第一侦听请求并在接收到第一独占读取请求的第一独占读取应答之后,再响应第一侦听请求,使得在保证缓存一致性的同时,可以依次完成各个请求的处理,从而解决读取请求冲突。
基于第一方面,在一种可能的实现方式中,第一CA可以通过以下方法更新对所述目标数据的读写权限,包括:若第一侦听请求为独占侦听请求,则第一CA将对目标数据的读写权限更新为无效权限;若第一侦听请求为共享侦听请求,则第一CA将目标数据的读写权限更新为共享权限;若第一侦听请求为无效侦听请求,则第一CA将对目标数据的读写权限更新为独占权限。
第二方面,本申请实施例提供一种数据读取方法,包括:本地代理HA接收第一缓存代理CA发送的第一独占读取请求;HA根据第一独占请求将目标数据的状态更新为第一CA独占状态;HA若接收到第二CA的第二读取请求,则根据目标数据的状态向第一CA发送第一侦听请求;第一侦听请求用于指示第一CA若根据第一侦听请求确定目标数据的状态为第一CA独占状态,则挂起第一侦听请求,以及,接收到第一独占读取应答后,根据第一侦听请求更新对目标数据的读写权限;HA接收第一CA根据第一侦听请求返回的第一侦听应答,并更新目标数据的状态;HA向第二CA发送第二读取应答。
基于第二方面,在一种可能的实现方式中,HA更新目标数据的状态,包括:若第二读取请求为独占读取请求,则HA将目标数据的状态更新为第二CA独占状态;若第二读取请求为共享读取请求,则HA将目标数据的状态更新为第一CA和第二CA共享状态;若第二读取请求为无效读取请求,则HA将目标数据的状态更新为第一CA独占状态。
第三方面,本申请实施例提供一种数据读取方法,包括:第二缓存代理CA向本地代理HA发送第二读取请求;第二读取请求用于指示HA根据第二读取请求更新目标数据的状态;第二CA接收HA发送的第二读取请求的第二读取应答,并更新对目标数据的读写权限。
基于第三方面,在一种可能的实现方式中,若第二读取请求为独占读取请求,则第二CA可以将对目标数据的读写权限更新为独占权限;该方法还包括:第二CA若将对目标数据的读写权限由独占权限修改为无效权限,则向HA发送权限更改信息;权限更改信息用于指示HA将目标数据的状态修改为无效状态。
第四方面,本申请实施例提供一种数据读取方法,包括:第一缓存代理CA向本地代理HA发送第一共享读取请求,第一共享读取请求用于指示HA将目标数据的状态更新为第一CA共享状态;第一CA在接收到第一共享读取请求的第一共享读取应答前,若接收到HA发送的第三独占侦听请求,则将对目标数据的读写权限更新为无效权限,并向HA发送第三独占侦听应答;第一CA接收到第一共享读取应答后,向HA发送第二共享读取请求,第二共享读取请求用于指示HA将目标数据的状态更新为第一CA共享状态。
采用上述方案,在第一CA接收到的第三独占侦听请求与第一CA所发送的第一共享读取请求发生冲突时,第一CA向HA发送第三独占侦听应答,并在接收到第一共享读取应答后,向HA发送第二共享读取请求,从而可以确保第一CA所获得的目标数据为最新的目标数据,在保证缓存一致性的同时解决了读取请求冲突。
第五方面,本申请实施例提供一种数据读取方法,包括:本地代理HA接收第一缓存代理CA发送的第一共享读取请求;HA根据第一共享读取请求将目标数据的状态更新为第一CA共享状态,并向第一CA发送第一共享读取应答;HA接收第二CA发送的第三独占读取请求,并根据目标数据的状态向第一CA发送第三独占侦听请求;第三独占侦听请求用于指示第一CA将对目标数据的读写权限更新为无效权限;HA在接收到第一CA发送的第三独占侦听请求的第三独占侦听应答后,向第二CA发送第三独占读取应答,并将目标数据的状态更新为第二CA独占状态;HA在接收到第一CA发送的第二共享读取请求后,向第二CA发送第二共享侦听请求;在接收到第二CA发送的第二共享侦听请求的第二共享侦听应答后,将目标数据的状态更新为第一CA和第二CA共享状态,并向第一CA发送第二共享读取请求的第二共享读取应答。
基于第五方面,在一种可能的实现方式中,第三独占读取应答用于指示第二CA向HA 返回第三独占读取应答的确收应答;HA向第二CA发送第二共享侦听请求之前,还包括:HA接收到第二CA发送的第三独占读取应答的确收应答。
在第一CA处已发生了读取请求冲突的情况下,HA通过第三独占读取应答用于指示第二CA向HA返回第三独占读取应答的确收应答,并在接收到第二CA发送的第三独占读取应答的确收应答之后,再向第二CA发送第二共享侦听请求,以防止第二CA所发送的第三独占读取请求与第二CA所接收的第二共享侦听请求出现冲突。
第六方面,本申请实施例提供一种数据读取方法,包括:第二缓存代理CA向本地代理HA发送第三独占读取请求;第三独占读取请求用于指示HA将目标数据的状态更新为第二CA独占状态;第二CA接收HA发送的第三独占读取应答,并将目标数据的读写权限更新为独占权限;第二CA接收HA发送的第二共享侦听请求,并根据第二共享侦听请求将对目标数据的独占权限更新为共享权限;第二CA向HA发送第二共享侦听应答。
基于第六方面,在一种可能的实现方式中,第二CA接收HA发送的第三独占读取应答之后,还包括:第二CA向HA发送所述第三独占读取应答的确收应答。
第七方面,本申请实施例提供一种装置,包括:请求模块和权限模块;其中,请求模块,用于向本地代理HA发送第一独占读取请求,第一独占读取请求用于指示HA将目标数据的状态更新为装置独占状态;权限模块,用于在接收到第一独占读取请求的第一独占读取应答前,若接收到HA发送的第一侦听请求,并根据第一侦听请求确定目标数据的状态为装置独占状态,则挂起第一侦听请求;在接收到第一独占读取应答后,根据第一侦听请求更新对目标数据的读写权限,并向HA发送第一侦听应答。
基于第七方面,在一种可能的实现方式中,权限模块具体用于:若第一侦听请求为独占侦听请求,则将对目标数据的读写权限更新为无效权限;若第一侦听请求为共享侦听请求,则将对目标数据的读写权限更新为共享权限;若第一侦听请求为无效侦听请求,则将对目标数据的读写权限更新为独占权限。
第八方面,本申请实施例提供一种装置,包括:请求模块和状态模块;其中,请求模块,用于接收第一缓存代理CA发送的第一独占读取请求;状态模块,用于根据第一独占请求将目标数据的状态更新为第一CA独占状态;请求模块,还用于若接收到第二CA的第二读取请求,则根据目标数据的状态向第一CA发送第一侦听请求;第一侦听请求用于指示第一CA若根据第一侦听请求确定目标数据的状态为第一CA独占状态,则挂起第一侦听请求,以及,接收到第一独占读取应答后,根据第一侦听请求更新对目标数据的读写权限;状态模块,还用于接收第一CA根据第一侦听请求返回的第一侦听应答,并更新目标数据的状态;向第二CA发送第二读取应答。
基于第八方面,在一种可能的实现方式中,状态模块具体用于:若第二读取请求为独占读取请求,则将目标数据的状态更新为第二CA独占状态;若第二读取请求为共享读取请求,则将目标数据的状态更新为第一CA和第二CA共享状态;若第二读取请求为无效读取请求,则将目标数据的状态更新为第一CA独占状态。
第九方面,本申请实施例提供一种装置,包括:请求模块和权限模块;其中,请求模块,用于向本地代理HA发送第二读取请求;第二读取请求用于指示HA根据第二读取请求更新目标数据的状态;权限模块,用于接收HA发送的第二读取请求的第二读取应答,并更新对目标数据的读写权限。
基于第九方面,在一种可能的实现方式中,权限模块具体用于:若第二读取请求为独 占读取请求,则将对目标数据的读写权限更新为独占权限;权限模块还用于:若将对目标数据的读写权限由独占权限修改为无效权限,则通过请求模块向HA发送权限更改信息;其中,权限更改信息用于指示HA将目标数据的状态修改为无效状态。
第十方面,本申请实施例提供一种装置,包括:请求模块和权限模块;其中,请求模块,用于向本地代理HA发送第一共享读取请求,第一共享读取请求用于指示HA将目标数据的状态更新为装置共享状态;权限模块,用于在接收到第一共享读取请求的第一共享读取应答前,若接收到HA发送的第三独占侦听请求,则将对目标数据的读写权限更新为无效权限,并向HA发送第三独占侦听应答;在接收到第一共享读取应答后,向HA发送第二共享读取请求,第二共享读取请求用于指示HA将目标数据的状态更新为所示装置共享状态。
第十一方面,本申请实施例提供一种装置,包括:请求模块和状态模块;其中,请求模块,用于接收第一缓存代理CA发送的第一共享读取请求;状态模块,用于根据第一共享读取请求将目标数据的状态更新为第一CA共享状态,并向第一CA发送第一共享读取应答;请求模块,还用于接收第二CA发送的第三独占读取请求,并根据目标数据的状态向第一CA发送第三独占侦听请求;第三独占侦听请求用于指示第一CA将对目标数据的读写权限更新为无效权限;在接收到第一CA发送的第三独占侦听请求的第三独占侦听应答后,向第二CA发送第三独占读取应答,并将目标数据的状态更新为第二CA独占状态;在接收到第一CA发送的第二共享读取请求后,向第二CA发送第二共享侦听请求;状态模块,还用于在接收到第二CA发送的第二共享侦听请求的第二共享侦听应答后,将目标数据的状态更新为第一CA和第二CA共享状态,并向第一CA发送第二共享读取请求的第二共享读取应答。
基于第十一方面,在一种可能的实现方式中,第三独占读取应答用于指示第二CA向装置返回第三独占读取应答的确收应答;请求模块向第二CA发送第二共享侦听请求之前,还用于:接收到第二CA发送的第三独占读取应答的确收应答。
第十二方面,本申请实施例提供一种装置,包括:请求模块和权限模块;其中,请求模块,用于向本地代理HA发送第三独占读取请求;第三独占读取请求用于指示HA将目标数据的状态更新为本装置独占状态;权限模块,用于接收HA发送的第三独占读取应答,并将对目标数据的读写权限更新为独占权限;接收HA发送的第二共享侦听请求,并根据第二共享侦听请求将对目标数据的读写权限更新为共享权限;向HA发送第二共享侦听应答。
基于第十二方面,在一种可能的实现方式中,权限模块在接收HA发送的第三独占读取应答之后,还用于:向HA发送所述第三独占读取应答的确收应答。
第十三方面,本申请实施例提供一种可读存储介质,该可读存储介质存储有可执行指令,可执行指令用于使计算机执行如上述第一方面,或第一方面的可能的实现方式,或第二方面,或第二方面的可能的实现方式,或第三方面,或第三方面的可能的实现方式,或第四方面,或第五方面,或第五方面的可能的实现方式,或第六方面,或第六方面的可能的实现方式所提供的方法。
第十四方面,本申请实施例提供一种程序产品,当其在控制器上运行时可以使计算机执行如上述第一方面,或第一方面的可能的实现方式,或第二方面,或第二方面的可能的实现方式,或第三方面,或第三方面的可能的实现方式,或第四方面,或第五方面,或第 五方面的可能的实现方式,或第六方面,或第六方面的可能的实现方式所提供的方法。
第十五方面,本申请实施例提供一种一种多核处理器,该多核处理器包括多个处理器核、多个缓存代理CA和至少一个本地代理HA;其中,多个处理器核分别与多个CA一一对应;处理器核,用于读写与该处理器核对应的CA中所缓存的数据;CA,用于执行如上述第一方面,或第一方面的可能的实现方式,或第三方面,或第三方面的可能的实现方式;HA,用于执行如上述第二方面,或第二方面的可能的实现方式;或者,CA,用于执行如上述第四方面,或第六方面,或第六方面的可能的实现方式所提供的方法;HA,用于执行如上述第五方面,或第五方面的可能的实现方式所提供的方法。
附图说明
图1为一种缓存系统架构示意图;
图2为一种数据读取流程示意图之一;
图3为一种数据读取流程示意图之二;
图4为一种数据回写流程示意图;
图5为一种读取请求与回写请求冲突流程示意图;
图6为本申请实施例提供的一种数据读取方法流程示意图;
图7为一种读取请求冲突示意图;
图8为本申请实施例提供的一种数据读取方法流程示意图;
图9为本申请实施例提供的一种数据读取方法流程示意图;
图10为本申请实施例提供的一种装置结构示意图;
图11为本申请实施例提供的一种装置结构示意图。
具体实施方式
下面将结合附图对本发明作进一步地详细描述。
图1为一种缓存系统架构示意图,该系统包括存储器101和多核处理器102,其中,多核处理器102为一致性多核处理器(coherence multi-processor,CMP)。如图1所示,多核处理器102包括多个处理器核(core0至coreN,N大于0),以及多个缓存代理(cache agent,CA)(CA0至CAN),其中,多个处理器核与多个CA之间一一对应。例如,core0与CA0对应,则core0可以通过CA0读写缓存数据,又例如,core1与CA1对应,则core1可以通过CA1读写缓存数据。
此外,多核处理器102中还包括至少一个本地代理HA(比如HA0至HAM,M大于等于0)。存储器101用于存储数据,至少一个HA中的每个HA可以与存储器101连接,并管理存储器101中存储的数据。其中,HA的数量与存储器101中数据量大小有关,例如,在存储器101中存储的数据量较大时,可能需要多个HA分别管理存储器101中存储的部分数据,换言之,存储器101中数据量越大,HA的数量越多。图1中,多个HA与多个CA之间通过互联网络(interconnect network,ICN)互联,任一CA可以通过ICN与任一HA传输消息,也可以通过ICN与其它CA传输消息。为了便于表述,本申请实施例仅针对用于管理目标数据的HA而言,以下皆同,不再赘述。
图1中所示的存储器101可以是内存储器(memory),也可以是三级缓存系统中的最后一级缓存(last level cache,LLC)。为了便于理解,本申请实施例以内存储器101为例 进行说明。
在图1所示的多核处理器102中,任一CA至少包括存储单元和控制单元,存储单元用于存储CA所缓存的数据,控制单元用于管理CA对数据的读写权限。在本申请实施例中,CA对数据的读写权限包括独占权限、共享权限和无效权限。例如,若CA0对数据A的读写权限为独占权限,则CA0可以缓存数据A,并且CA0对应的core0可以对数据A进行读写操作。若CA0对数据A的读写权限为共享权限,则CA0缓存数据A,core0可以对数据A进行读操作,但不可以进行写操作。若CA0对数据A的读写权限为无效权限,则CA0不可以缓存数据A,或CA0所缓存的数据A无效。
相应的,数据A在CA0中的数据态可以如下表一所示:
表一
Figure PCTCN2018124035-appb-000001
应理解,本申请实施例中数据的数据态与数据的状态并不相同。数据的数据态表示数据在一个CA中的状态,而数据的状态则表示数据在多个CA中的读写权限分布情况。具体来说,若CA0对数据A的读写权限为独占权限,则数据A在CA0中既可以是修改态m,也可以是独占态e;若CA0对数据A的读写权限为共享权限,则数据A在CA0中可以是共享态s;若CA0对数据A的读写权限为无效权限,则数据A在CA0中的状态为无效态,即CA0中未缓存数据A或CA0中所缓存的数据A不可读写。
在图1所示多核处理器102中,任一HA也至少包括存储单元和控制单元,控制单元用于管理数据的状态,存储单元用于存储各个数据的状态。通常,HA中的存储单元会以目录的形式存储数据的状态,包括当前缓存有该数据的CA,以及缓存该数据的CA对该数据的读写权限,HA中的存储器存储各个数据所对应的目录,而控制单元通过更新存储单元中存储的目录完成对数据的状态的更新。
在本申请实施例中,可以为HA所管理的数据定义如表二所示的三种状态:
表二
Figure PCTCN2018124035-appb-000002
以数据A为例,基于表二所示的三种数据的状态,数据A的状态与CA0至CAN分别对数据A的读写权限之间的对应关系,具体可以为:若数据A的状态为CA0独占状态,则此时CA0对数据A的读写权限为独占权限,CA1至CAN对数据A的读写权限为无效权限。若数据A的状态为CA0和CA1共享状态,则此时CA0和CA1对数据A的读写权限为共享权限,CA2至CAN对数据A的读写权限为无效权限。若数据A的状态为无效状 态,则此时CA0至CAN对数据A的读写权限皆为无效权限。应理解,在本申请实施例中数据A的状态为CA0共享状态,包括了只有CA0缓存数据A的情况,以及CA0和其它一个或多个CA共同缓存数据A的情况。
基于上述读写权限和数据的状态,CA可以通过向HA发送不同类型的读写请求以改变对任一数据的读写权限。例如,读取请求可以如下表三所示:
表三
读取请求 请求定义
RdI 获取目标数据,但不申请权限
RdS 获取目标数据,且允许与其它CA共享目标数据
RdE 获取目标数据,以及对目标数据的独占权限
RdX 获取对目标数据的独占权限,不获取目标数据
InvX 所有CA对目标数据的读写权限为无效权限,不读取数据
具体而言,RdI为无效读取请求,CA可以向HA发送RdI以获取目标数据,但CA并不会缓存目标数据,即对目标数据的读写权限仍为无效权限。RdS为共享读取请求,CA可以向HA发送RdS以获取目标数据,以及对目标数据的共享权限。RdE为独占读取请求之一,CA可以向HA发送RdE以获取目标数据,以及对目标数据的独占权限。RdX为独占读取请求之二,CA可以向HA发送RdX以获取对目标数据的独占权限,但不获取目标数据。此外,CA还可以向HA发送InvX,以请求HA将所有CA中缓存的目标数据无效,即所有CA对目标数据皆为无效权限。
通过上述对读写权限的定义可见,在CA对目标数据的读写权限为独占权限时,与CA对应的处理器核才有可能对CA中所缓存的目标数据进行修改。基于此,具有独占权限的CA可以向HA发送回写请求,以请求HA根据CA中所缓存的目标数据更新内存储器中的目标数据,即回写目标数据。其中,回写请求可以如下表四所示:
表四
Figure PCTCN2018124035-appb-000003
具体而言,WbI为无效回写请求,CA可以向HA发送WbI以请求HA将CA中所缓存的目标数据写入内存储器,同时,CA对目标数据的读写权限变为无效权限,即CA无效其所缓存目标数据;WbS为共享回写请求,CA可以向HA发送WbS以请求HA将CA中所缓存的目标数据写入内存储器,同时,CA对目标数据的读写权限变为共享权限;WbE为独占回写请求,CA可以向HA发送WbE以请求HA将CA中所缓存的目标数据写入内存储器,同时,CA对目标数据的读写权限仍为独占权限。
可以理解,HA对目标数据的状态的管理牵涉到多个CA对目标数据的读写权限的更 改。例如,CA3向HA发送独占读取请求时,若当前CA4中缓存有目标数据,则HA需要使CA4对目标数据的读写权限修改为无效权限才可以使CA3获取对目标数据的独占权限。基于此,本申请实施例还提供如表五所示的侦听请求,HA向CA4发送侦听请求,以使CA4根据侦听请求更新对目标数据的读写权限。
表五
侦听请求 定义
SnpI 侦听获取目标数据,不需要修改读写权限
SnpS 侦听获取目标数据,并指示将读写权限修改为共享权限
SnpE 侦听获取目标数据,并指示将读写权限修改为无效权限
SnpX 指示将读写权限修改为无效权限
其中,SnpI为无效侦听请求,SnpS为共享侦听请求,SnpE为独占侦听请求之一,SnpE用于从CA4获取目标数据并指示CA4将读写权限修改为无效权限。SnpX为独占侦听请求之二,与SnpE的区别在于,SnpX只用于指示CA4将读写权限修改为无效权限,并不会用于从CA4获取目标数据。表五中各个侦听请求的具体的发送规则可以参见本申请实施例后续表九所示。
针对上述表三至表五所示的多种请求,本申请还提供如下表六所示的请求应答:
表六
Figure PCTCN2018124035-appb-000004
Figure PCTCN2018124035-appb-000005
其中,CA3为向HA发送读取请求的CA,CA4为接收到侦听请求,即被侦听的CA。表六中,读取应答为HA向CA3发送的针对于读取请求的应答,读取应答中包括目标数据和/或权限应答,如RspDataE为数据应答,表示目标数据的独占态e副本,CA3接收并缓存RspDataE从而获取目标数据。Comp为权限应答,CA3接收Comp从而可以将对目标数据的读写权限更新为独占权限。
表六中,侦听应答为CA4向HA发送的针对于侦听请求的应答,无数据应答中Rsp_Comp为HA向CA3发送的应答,用于指示读取流程结束,Rsp_Ack为CA向HA发送的应答,用于通知HA该CA已接收到HA发送的某一消息。
为了更具体的说明读取请求、回写请求与CA3对目标数据的读写权限之间的关系,本申请实施例还提供如下表七所示的CA状态转移规则表:
表七
请求 允许发起的读写权限 请求内容 接收到应答后的读写权限
RdI 无效 Data+Comp 无效
RdS 无效 Data+Comp 共享
RdE 无效/共享 Data+Comp 独占
RdX 无效/共享 Comp 独占
InvX 无效/共享/独占 Comp 无效
WbI 独占 Comp 无效
WbS 独占 Comp 共享
WbE 独占 Comp 独占
Evct 共享/独占 Comp 无效
其中,Data表示请求目标数据,Comp表示请求对目标数据的读写权限。如表七所示,当CA3对目标数据的读写权限为无效权限或共享权限时,CA3可以向HA发送RdE读取请求,以获取目标数据以及对目标数据的独占权限,CA3在接收到HA对RdE请求的应答之后,将对目标数据的读写权限更新为独占权限。其它请求以此类推,本申请实施例不再赘述。
可以理解,CA4在接收到侦听请求后,也需要根据侦听请求更新对目标数据的读写权限,例如,可以按照如表八所示规则进行更新:
表八
Figure PCTCN2018124035-appb-000006
举例说明,CA4在接收到无效侦听请求SnpI后,若CA4中目标数据的数据态为修改态m,对应的读写权限为独占权限,CA4保持对目标数据的独占权限并向HA发送侦听应答,同时,可以将目标数据的数据态更新为独占态e或保持修改态m。具体而言,若CA4将所缓存的目标数据的数据态更新为独占态e,则可以向HA发送独占侦听应答SnpRspEWb,SnpRspEWb包括CA4中目标数据的最新副本,HA接收到SnpRspEWb后可以将目标数据的最新副本写入内存储器中,即回写目标数据。以及,HA还可以将目标数据的最新副本进一步转发给CA3。如表八所示,CA4也可以向HA发送SnpRspFwdEWb,以指示HA完成回写目标数据,此外,CA4也会向CA3发送RspDataI,即目标数据的无效态i副本,从而完成对CA3无效读取请求RdI的响应。
可以理解,HA在收到CA3所发送的不同类型的读取请求后,也需要根据读取请求的类型和目标数据的当前的状态,通过读取内存储器或向CA4发送侦听请求以完成对CA3的应答。其具体的规则可以如下表九所示:
表九
Figure PCTCN2018124035-appb-000007
如表九所示,HA在接收到CA3发送的读取请求后,会根据读取请求从内存储器中读取目标数据并发送给CA3或者向CA4发送侦听请求,以指示CA4更新对目标数据的读写权限和/或向CA3提供目标数据。
例如表九中,HA在接收到CA3发送的RdI读取请求后,若目标数据的当前的状态为无效状态或共享状态,则HA可以直接从内存储器中读取目标数据并发送给CA3。若目标数据的当前的状态为独占状态,则HA可以向独占目标数据的CA4发送无效侦听请求,即SnpI,从而指示CA4将目标数据提供给CA3。与之类似,HA在接收到CA3发送的RdS读取请求或者RdE读取请求后,也会从内存储器中读取目标数据并发送给CA3,或者通过共享侦听请求SnpS或独占侦听请求SnpE从CA4获取目标数据,并提供给CA3。
可以理解,HA在接收到CA4返回的侦听应答后,也需要对应更新目标数据的状态,如表十所示:
表十
Figure PCTCN2018124035-appb-000008
Figure PCTCN2018124035-appb-000009
其中,读取请求为HA从CA3收到的读取请求,读取应答为HA向CA3发送的读取应答,侦听应答为HA根据接收到的读取请求向CA4发送侦听请求后,从CA4接收到的侦听应答。举例说明,若HA接收到了CA3发送的独占读取请求RdE,HA确定目标数据处于CA4独占状态,则向CA4发送独占侦听请求SnpE。HA在接收到CA4返回的独占侦听应答SnpRspI后,将目标数据的状态更新为CA3独占状态E,并向CA3发送独占读取应答RspDataE_Comp。
如表十所示,在侦听应答中包括回写请求wb时,HA还会回写目标数据。在本申请实施例中,HA还可以根据回写请求的类型,修改目标数据的状态,如表十一所示:
表十一
Figure PCTCN2018124035-appb-000010
如表十一所示,若HA收到的回写请求为无效回写请求WbI,则将目标数据写入内存储器,并将目标数据的状态更新为无效状态;若HA收到的回写请求为共享回写请求WbS,则将目标数据写入内存储器,并将目标数据的状态更新为共享状态;若HA收到的回写请求为独占回写请求WbE,则将目标数据写入内存储器,更新后目标数据的状态依旧为独占状态。
接下来,本申请实施例以具体的读取过程和回写过程为例对表一至表十一所示定义及规则作进一步说明。
读取过程示例之一
如图2所示,为一种数据读取流程示意图之一,图2中主要包括以下步骤:
S201:假设CA2当前对目标数据的读写权限为无效权限,则根据表七所示规则,CA2可以向HA发送独占读取请求RdE。
S202:HA根据RdE将目标数据的状态设置为CA2独占状态。具体而言,假设目标数据的状态为无效状态,则根据表九所示规则,HA从内存储器读取目标数据,将目标数据的状态修改为CA2独占状态,并执行S203。
S203:HA向CA2发送独占读取应答。根据表六所示定义,该独占读取应答可以为RspDataE_Comp。
S204:CA2接收到RspDataE_Comp后,根据表七所示规则,将对目标数据的读写权限更新为独占权限。
S205:假设CA1当前对目标数据的读写权限为无效权限,则根据表七所示规则,CA1可以向HA发送独占读取请求RdE。
S206:HA接收到CA1发送的RdE后,由于当前目标数据的状态为CA2独占状态,则根据表九所示规则,向CA2发送独占侦听请求SnpE。
S207:CA2接收到HA发送的独占侦听请求后,根据表八所示规则,将对目标数据的读写权限修改为无效权限,其所缓存的目标数据变为无效态。
S208:CA2向HA发送独占侦听应答。如表八所示,独占侦听应答可以为SnpRspISnpRspFwdI、SnpRspIWb、SnpRspFwdI和SnpRspFwdIWb中的任一种。假设S208中CA2向HA发送了SnpRspIWb。
S209:HA从SnpRspIWb中获取目标数据,由于独占侦听应答中包括了回写请求,则HA将从SnpRspIWb中获取的目标数据写入内存储器。以及,将目标数据的状态设置为CA1独占状态。
S210:HA向CA1发送独占读取应答RspDataE_Comp。
S211:CA1在接收到RspDataE_Comp后,根据表七所示规则,将对目标数据的读写权限更新为独占权限。
通过图2所示的过程,实现了独占权限在CA1和CA2之间的转移。
读取过程示例之二
如图3所示,为一种数据读取流程示意图之二,图3中主要包括以下步骤:
S301:CA1向HA发送共享读取请求RdS。
S302:HA接收到共享读取请求RdS后,若确定目标数据的状态为CA2独占状态,则根据表九所示规则执行S303。
S303:HA向CA2发送共享侦听请求SnpS。
S304:CA2接收到共享侦听请求SnpS后,根据表八所示规则,将对目标数据的读写权限更新为共享权限,将所缓存的目标数据变为共享态,并执行S305。
S305:CA2向HA发送共享侦听应答。如表八所示,共享侦听应答可以为SnpRspS、SnpRspFwdS、SnpRspSWb和SnpRspFwdSWb中的任一种。假设S305中CA2向HA发送了SnpRspFwdSWb,其同时向CA1发送了目标数据RspDataS。
S306:HA接收到SnpRspFwdSWb后,根据表十所示规则,将目标数据的状态设置为CA1和CA2共享状态。
S307:HA向CA1发送共享读取应答。根据表六所示定义,由于CA2已将目标数据发送给CA1,因此HA向CA1发送的共享读取应答可以为完成应答Rsp_Comp。
S308:CA1在接收到Rsp_Comp和RspDataS后,根据表七所示规则,将对目标数据的读写权限更新为共享权限。
通过图3所示的过程,CA1获取了目标数据的共享权限,以及,将CA2对目标数据的读写权限由独占权限变为共享权限。
回写过程示例
假设独占目标数据的CA1对所缓存的目标数据进行了修改,则CA1中所缓存的目标数据为m态。由于缓存溢出等原因,CA1需要将所缓存的目标数据回写到内存储器中。例如,可采用图4所示过程进行回写,图4为一种数据回写流程示意图,其中主要包括以下步骤:
S401:CA1向HA发送无效回写请求WbI。在无效回写请求WbI中,包括CA1所缓存的m态目标数据。
S402:HA在接收无效回写请求WbI,并从无效回写请求WbI中获取m态目标数据。HA将m态目标数据写入内存储器,从而实现内存储器中所存储的目标数据的更新。以及,根据表十一所示的规则,将目标数据的状态由CA1独占状态修改为无效状态。
S403:HA向CA1发送无效回写应答。通常,该无效回写应答可以为表六中所示的完成应答Rsp_Comp。
S404:CA1在接收到HA发送的无效回写应答后,可以确定HA已经完成目标数据的状态的修改,进而可以将对目标数据的读写权限更新为无效权限。
通过上述过程,可以将独占目标数据的CA1中所缓存的目标数据写入内存储器,即回写目标数据,进而可以释放CA1的缓存空间,甚至还可以将CA1对目标数据的读写权限由独占权限修改为其它权限。
读取请求与回写请求冲突示例
上述读取过程示例和回写过程示例皆为理想情况下的过程,在实际应用中,往往会出现请求冲突的问题。例如,CA2独占目标数据,则CA2向HA发送的回写请求有可能会与其它CA的读取请求发生冲突。以图5为例,图5为一种读取请求与回写请求冲突流程示意图,图5中主要包括以下步骤:
S501:CA1向HA发送共享读取请求RdS。
S502:由于当前目标数据的状态为CA2独占状态,HA向CA1发送共享侦听请求SnpS。
S503:CA2在接收到HA发送的共享侦听请求SnpS之前,向HA发送了无效回写请求WbI。
S504:HA接收CA2发送的无效读取请求WbI,根据无效读取请求WbI将目标数据写入内存储器,并将目标数据的状态更新为无效状态。
S505:HA向CA2发送无效回写应答Rsp_Comp。
S506:由于CA2在接收到HA发送的共享侦听请求SnpS之前,向HA发送了无效回写请求WbI,因此CA2在接收到共享侦听请求SnpS之后,将共享侦听请求SnpS挂起直至接收到无效回写应答Rsp_Comp后,CA2将对目标数据的读写权限更新为无效权限,并向HA发送共享侦听应答。由于此时CA2中所缓存的数据为i态,因此该共享侦听应答可以为SnpRspI。
S507:HA在接收到CA2发送的共享侦听应答SnpRspI后,从内存储器中读取目标数据并向CA1发送共享读取应答RspDataS_Comp。
S508:CA1接收共享读取应答RspDataS_Comp,根据共享读取应答RspDataS_Comp缓存s态目标数据,并将对目标数据的读写权限更新为共享权限。
在上述过程中,CA1的共享读取请求RdS与CA2的无效回写请求WbI之间出现了冲突,CA2通过挂起与共享读取请求RdS对应的共享侦听请求SnpS,确保回写过程可以正常完成。
可以理解,读取请求与读取请求之间也可能出现冲突。例如在图2所示的读取过程中,若CA2在接收到HA在S203中发送的独占读取应答之前,先接收到了HA在S206中发送的独占侦听请求,则CA2处便发生了独占读取请求与独占侦听请求之间的冲突,对于CA1、CA2和HA所属的系统而言,便是发生了读请求冲突。
基于此,本申请实施例提供一种数据读取方法,以提供一种读取请求冲突的处理机制。表十二为本申请实施例中,CA1在接收到侦听请求后的处理规则:
表十二
Figure PCTCN2018124035-appb-000011
Figure PCTCN2018124035-appb-000012
其中,侦听请求为CA1从HA接收到的侦听请求,侦听请求中包括目标数据的状态,CA1在接收到侦听请求后,可以从侦听请求中获取目标数据的状态。
此外,本申请实施例还提供一种CA1在接收到读取应答后的处理规则,如表十三所示:
表十三
Figure PCTCN2018124035-appb-000013
Figure PCTCN2018124035-appb-000014
通常,与独占权限有关的读取请求冲突会对CMP系统的缓存一致性造成影响,因此本申请实施例主要通过以下两种具体的、与独占权限有关的读取请求冲突的实施例,对本申请实施例所提供的数据读取方法以及表十二和表十三所示的规则进行说明。
实施例一,独占读取请求与侦听请求发生冲突的处理机制
图6为本申请实施例提供的一种数据读取方法流程示意图,如图6所示,主要包括以下步骤:
S601:CA1向HA发送第一独占读取请求,以获取对目标数据的独占权限。
S602:HA接收CA1发送的第一独占读取请求,并根据第一独占读取请求将目标数据的状态更新为CA1独占状态。
在S602的一种可能的实现方式中,HA接收到CA1发送的第一独占读取请求之前,若目标数据处于无效状态,则HA在接收到CA1发送的第一独占读取请求之后,可以从内存储器中获取目标数据,并将目标数据发送给CA1。
在S602的另一种可能的实现方式中,若目标数据的状态为CA3共享状态,则HA在接收到CA1发送的第一独占读取请求之后,可以向CA3发送独占侦听请求,以指示CA3将对目标数据的读写权限变为无效权限,以及,从内存储器中获取目标数据,并将目标数据发送给CA1。
在S602的另一种可能的实现方式中,若目标数据的状态为CA3独占状态,则HA在接收到CA1发送的第一独占读取请求之后,可以向CA3发送独占侦听请求,以指示CA3将对目标数据的读写权限变为无效权限,以及,指示CA3提供目标数据的最新副本,具体实现过程可以参考图2,本申请实施例不再赘述。
S603:HA向CA1发送第一独占读取应答。
S604:HA接收CA2发送的第二读取请求。在本申请实施例中,HA在接收到第一独占读取请求之后,接收到第二读取请求,因此HA一般会先处理第一独占读取请求。若HA在执行S602和S603时接收到了第二读取请求,则HA可以挂起第二读取请求直至执行完S603。
S605:HA根据第二读取请求向CA1发送第一侦听请求。
其中,第一侦听请求与第二读取请求的请求类型之间存在如下对应关系:若第二读取 请求为独占读取请求,则第一侦听请求为独占侦听请求;若第二读取请求为共享读取请求,则第一侦听请求为共享侦听请求;若第二读取请求为无效读取请求,则第一侦听请求为无效侦听请求,具体可以参考表九所示规则,本申请实施例不再赘述。
S606:由于ICN中出现报文乱序等情况,使得CA1在接收到第一独占读取应答之前,先接收到了第一侦听请求。基于表十二所示规则,CA1在接收到第一侦听请求后,若根据第一侦听请求确定目标数据的状态为CA1独占状态,则挂起第一侦听请求。这是因为,若根据第一侦听请求确定目标数据的状态为CA1独占状态,便意味着HA已经接收并处理了CA1所发送的第一独占读取请求,因此CA1在后续必然会收到HA所发送的第一独占读取应答。基于此,CA1可以挂起第一侦听请求,以等待第一独占读取应答的到来。
S607:CA1接收到第一独占读取应答后,根据表十三所示规则,根据第一侦听请求更新对目标数据的读写权限。
在一种可能的实现方式中,第一独占读取应答中包括目标数据,CA1可以从第一独占读取应答中获取目标数据。在另一种可能的实现方式中,CA1在接收第一独占读取应答时,还会接收到其它CA(如CA3)发送的目标数据。
CA1在接收到第一独占读取应答后,便可以开始处理第一侦听请求,根据第一侦听请求更新对目标数据的读写权限。以表八所示规则为例,若第一侦听请求为独占侦听请求,则CA1将对目标数据的读写权限更新为无效权限;若第一侦听请求为共享侦听请求,则CA1将对目标数据的读写权限更新为共享权限;若第一侦听请求为无效侦听请求,则CA1将对目标数据的读写权限更新为独占权限。
S608:CA1向HA发送第一侦听应答。第一侦听应答的具体类型可以参考表八所示规则,对此不再赘述。
S609:HA接收到第一侦听应答后,更新目标数据的状态。
以表八所示规则为例,若第二读取请求为独占读取请求,则HA将目标数据的状态更新为第二CA独占状态;若第二读取请求为共享读取请求,则HA将目标数据的状态更新为CA1和CA2共享状态;若第二读取请求为无效读取请求,则HA将目标数据的状态更新为CA1独占状态。
在一种可能的实现方式中,HA还可以根据第一侦听应答获取目标数据,并根据所获取的目标数据更新内存储器中的目标数据。
S610:HA向CA2发送第二读取应答,第二读取应答的具体类型可以参考表八所示规则,对此不再赘述。
S611:CA2接收到第二读取应答后,便可以更新对目标数据的读写权限。
以表七所示规则为例,若第二读取请求为独占读取请求RdE,则CA2将对目标数据的读写权限更新为独占权限;若第二读取请求为共享读取请求RdS,则CA2将对目标数据的读写权限更新为共享权限;若第二读取请求为无效读取请求RdI,则CA2将对目标数据的读写权限更新为无效权限。
为了提高对数据独占权限管理的准确性,在本申请实施例的一种可能的实现方式中,CA2将对目标数据的读写权限更新为独占权限之后,若在后续处理过程中又将对目标数据的独占权限修改为无效权限,则CA2需要向HA发送权限更改信息,以指示HA将目标数据的状态修改为无效状态。在一种可能的实现方式中,CA2可以向HA发送无效回写请求,该无效回写请求中包括CA2中所缓存的目标数据,以指示HA在接收到无效回写请求后, 将无效回写请求中的目标数据写入内存储器中。与之类似,CA2若将目标数据的独占权限修改为共享权限,也可以向HA发送共享回写请求以指示HA将目标数据的状态修改为CA2共享状态。
通过对独占权限的准确管理,可以避免一些读取冲突的发生。例如,CA1对目标数据的原始的读写权限为独占权限,相应的,HA中所记录的目标数据的状态为CA1独占状态。若CA1在后续处理过程中将对目标数据的读写权限修改为无效权限,却未向HA发送权限更改信息,便可能发送图7所示的读取请求冲突,如图7所示,主要包括以下步骤:
S701:CA2向HA发送独占读取请求a,以请求获取对目标数据的独占权限。
S702:HA根据目标数据的状态向CA1发送独占侦听请求a。
S703:CA1在接收到独占侦听请求a之前发送了独占读取请求b,并在接收到独占读取请求b对应的独占读取应答之前收到了独占侦听请求a,此时CA1处便发生了读取请求冲突。
由此可见,若CA1在将对目标数据的读写权限由独占权限修改为无效权限时,向HA发送权限修改信息,使得HA可以将目标数据的状态修改为无效状态,则在后续收到CA2发送的独占读取请求a时,便不会再向CA1发送独占侦听请求a,由此便可以避免图7所示读取请求冲突的情况的发生。
实施例二,共享读取请求与独占侦听请求发生冲突的处理机制
图8为本申请实施例提供的一种数据读取方法流程示意图,如图8所示,主要包括以下步骤:
S801:CA1向HA发送第一共享读取请求,以获取对目标数据的共享权限。
虽然HA在记录任一数据为共享状态时,往往还可以记录共享有该数据的CA。但是,由于CMP系统中一个数据往往可以由多个CA共享,若每个CA在无效所缓存的数据之后都向HA发送权限修改信息,则会消耗系统中过多的资源。因此,通常CA可以自行无效具有共享权限的数据而无需通知HA,假设CA1在S801之前的处理过程中曾获取过目标数据及对目标数据的共享权限,并在处理过程中删除了目标数据,则在S801中CA1对目标数据的读写权限为无效权限,而HA所记录的目标数据的状态仍为共享状态。
S802:HA接收到第一共享读取请求后,根据第一共享读取请求将目标数据的状态更新为CA1共享状态。
以表九所示规则为例,若目标数据的状态为CA3独占状态,则HA通过向CA3发送共享侦听请求,以指示CA3将对目标数据的独占权限修改为共享权限,并向HA或CA1发送目标数据,以及,HA将目标数据的状态修改为CA1和CA3共享状态;若目标数据的状态为无效状态,则HA从内存储器中获取目标数据,将目标数据提供给CA1并将目标数据的状态更新为CA1共享状态;若目标数据的状态为CA3共享状态,则HA从内存储器中获取目标数据,将目标数据提供给CA1并将目标数据的状态更新为CA1和CA3共享状态。
S803:HA向CA1发送第一共享读取请求的第一共享读取应答。
S804:CA2向HA发送第三独占读取请求。
S805:HA在接收到CA1发送的第一共享读取请求之后,接收到了CA2发送的第三独占读取请求。HA挂起第三独占读取请求直至向CA1发送完第一共享读取应答。之后, HA根据目标数据当前的状态向CA1发送第三独占侦听请求。
S806:由于ICN中出现报文乱序等情况,使得CA1在接收到第一共享读取请求的第一共享读取应答之前,接收到了第三独占侦听请求,从而发生了读取请求冲突。虽然第三独占侦听请求中也可以包括目标数据的状态信息,CA1可以根据第三独占侦听请求确定目标数据的状态为CA1共享状态,然而,由于HA在接收到第一共享读取请求之前,所记录的目标数据的状态便有可能为CA1共享状态,因此CA1无法根据第三独占侦听请求确定HA是否已处理其所发送的第一共享读取请求。基于此,根据表十二所示规则,CA1将对目标数据的读写权限更新为无效权限,并向HA发送第三独占侦听应答。在一种可能的实现方式中,该第三独占侦听应答中可以包括冲突信息,如表十二中SnpRespCnflt,以使HA可以根据冲突信息确定CA1处发生读取请求冲突。
S807:HA接收CA1发送的第三独占侦听应答,将目标数据的状态更新为第二CA独占状态。
S808:HA向CA2发送第三独占读取应答。CA2接收到第三独占读取应答后,便可以将对目标数据的读写权限修改为独占权限。
S809:CA1在接收到第三独占侦听请求之后收到了第一共享读取应答,由于无法确定第一共享读取请求和第三独占读取请求到达HA的先后顺序,因此无法确定其所获得的目标数据是否为最新副本。如图8所示,CA1接收到第一共享读取应答时,目标数据的状态为CA2独占状态,若CA2对目标数据进行了修改,则CA1通过第一共享读取请求获得的目标数据便不是目标数据的最新副本。因此,根据表十三所示规则,CA1可以无效通过第一共享读取应答获取的目标数据,并再次向HA发送第二共享读取请求,以向HA重新请求目标数据的共享权限。
在一种可能的实现方式中,CA2在接收到第三独占读取应答之后,还可以向HA返回第三独占读取应答的确收应答。HA在接收到第二共享读取请求之后,若还未收到第三独占读取应答的确收应答,则挂起该第二共享读取请求,直至收到第三独占读取应答的确收应答之后,再执行S810,以防止在CA2处发生读取请求冲突。
S810:HA根据目标数据的状态向CA2发送第二共享侦听请求。
S811:CA2根据第二共享侦听请求将对目标数据的读写权限更新为共享权限。
S812:CA2向HA发送第二共享侦听应答。
S813:HA在接收到CA2发送的第二共享侦听应答后,将目标数据的状态更新为CA1和CA2共享状态。
S814:HA向CA1发送第二共享读取应答。
在一种可能的实现方式中,第二共享读取请求还包括应答指示信息,HA在接收到第二共享读取请求后,开启确收应答机制,即HA在发送任一消息后,只有在接收到该消息的应答之后才会发送下一消息,以防止CA1的第二共享读取请求也发生读取请求冲突。
采用上述过程,CA1便可以确保在发生共享读取请求冲突的情况下仍可以获取目标数据的最新副本及共享权限。可以理解,虽然图8所示过程中HA先收到第一共享读取请求,后收到第三独占读取请求,但对于HA先收到第三独占读取请求,后收到第一共享读取请求的场景,CA1也可以按照图8中的步骤进行处理,该过程可以如图9所示,CA1和CA2所执行的步骤与图8类似,区别在于HA所执行的部分步骤(图9中虚线所示)。如图9所示,主要包括以下步骤:
S901:HA接收CA2发送的第三独占读取请求。
S902:HA根据目标数据的状态,向CA1发送第三独占侦听请求。
S903:CA1向HA返回第三独占侦听应答。
与图8中CA1的执行步骤类似,CA1是在收到第一共享读取应答之前收到了第三独占侦听请求,因此根据表十二所示规则,CA1依旧向HA发送第三独占侦听应答。在一种可能的实现方式中,第三独占侦听应答中可以包括冲突指示信息,如表十二中SnpRespCnflt,以使HA可以根据冲突指示信息确定CA1处发生读取请求冲突。
S904:HA将目标数据的状态更新为CA2独占状态。
S905:HA向CA2发送第三独占读取应答。CA2在接收到第三独占读取应答后,便可以将对目标数据的读写权限更新为独占权限。
S906:HA在接收到第三独占侦听请求之后,接收到了第一共享读取请求,由于HA已经开始处理第三独占读取请求,因此HA可以挂起第一共享读取请求,直至执行完S905(或接收到CA2发送的第三独占读取应答的确收应答)。
S907:HA根据目标数据的状态,向CA2发送第二共享侦听请求。
S908:CA2接收到第二共享侦听请求之后,将对目标数据的读写权限更新为共享权限。
S909:CA2向HA发送第二共享侦听应答。
S910:HA接收到CA2发送的第二共享侦听应答后,将目标数据的状态更新为CA1和CA2共享状态。
S911:HA向CA1发送第一共享读取应答。
S912:CA1接收到第一共享读取应答后,根据表十三所示规则,将通过第一共享读取应答获取的目标数据无效,并向HA发送第二共享读取请求。
S913:由于在S910中HA便已将目标数据的状态更新为CA1和CA2共享状态,因此HA在接收到第二共享读取请求后,可以直接从内存储器中获取目标数据
S914:HA通过第二共享读取应答将目标数据发送给CA1。
通过上述过程可见,虽然图9所示流程中HA向CA1发送的第一共享读取应答中包括的目标数据为目标数据的最新副本,然而,CA1无法区分图8和图9两种不同的读取请求冲突,因此在本申请实施例中,CA1若在接收到第一共享读取应答之前接收到了第三独占侦听请求,则CA1皆会在接收到第一共享读取应答之后无效所获取的目标数据并再次向HA发起第二共享读取请求,以确保最终所获取的目标数据为目标数据的最新副本。
上述主要从CA和HA之间交互的角度对本申请提供的方法进行了介绍。可以理解的是,为了实现上述功能,CA或HA可以包括执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
图10示出了本申请实施例中所涉及的装置的可能的示例性框图之一,该装置1000可以以软件的形式运行于CA中。如图10所示,装置1000可以包括:请求模块1001和权限模块1002,当装置1000运行于如图6所示实施例中的CA1时:
请求模块1001,用于向本地代理HA发送第一独占读取请求,第一独占读取请求用于指示HA将目标数据的状态更新为装置独占状态;权限模块1002,用于在接收到第一独占读取请求的第一独占读取应答前,若接收到HA发送的第一侦听请求,并根据第一侦听请求确定目标数据的状态为装置1000独占状态,则挂起第一侦听请求;在接收到第一独占读取应答后,根据第一侦听请求更新对目标数据的读写权限,并向HA发送第一侦听应答。
在一种可能的实现方式中,权限模块1002具体用于:若第一侦听请求为独占侦听请求,则将对目标数据的读写权限更新为无效权限;若第一侦听请求为共享侦听请求,则将对目标数据的读写权限更新为共享权限;若第一侦听请求为无效侦听请求,则将对目标数据的读写权限更新为独占权限。
当装置1000运行于如图6所示实施例中的CA2时:
请求模块1001,用于向本地代理HA发送第二读取请求;第二读取请求用于指示HA根据第二读取请求更新目标数据的状态;权限模块1102,用于接收HA发送的第二读取请求的第二读取应答,并更新对目标数据的读写权限。
在一种可能的实现方式中,权限模块1002具体用于:若第二读取请求为独占读取请求,则将对目标数据的读写权限更新为独占权限;权限模块1003还用于:若将对目标数据的读写权限由独占权限修改为无效权限,则通过请求模块1001向HA发送权限更改信息;其中,权限更改信息用于指示HA将目标数据的状态修改为无效状态。
当装置1000运行于如图8和/或图9所示实施例中的CA1时:
请求模块1001,用于向本地代理HA发送第一共享读取请求,第一共享读取请求用于指示HA将目标数据的状态更新为装置1000共享状态;权限模块1002,用于在接收到第一共享读取请求的第一共享读取应答前,若接收到HA发送的第三独占侦听请求,则将对目标数据的读写权限更新为无效权限,并向HA发送第三独占侦听应答;在接收到第一共享读取应答后,向HA发送第二共享读取请求,第二共享读取请求用于指示HA将目标数据的状态更新为装置1000共享状态。
当装置1000运行于如图8和/或图9所示实施例中的CA2时:
请求模块1001,用于向本地代理HA发送第三独占读取请求;第三独占读取请求用于指示HA将目标数据的状态更新为本装置独占状态;权限模块1002,用于接收HA发送的第三独占读取应答,并将对目标数据的读写权限更新为独占权限;接收HA发送的第二共享侦听请求,并根据第二共享侦听请求将对目标数据的读写权限更新为共享权限;向HA发送第二共享侦听应答。
在一种可能的实现方式中,权限模块1002在接收HA发送的第三独占读取应答之后,还用于:向HA发送所述第三独占读取应答的确收应答。
基于相同的技术构思,图11示出了本申请实施例中所涉及的装置的可能的示例性框图之二,该装置1100可以以软件的形式运行于HA中。装置1100可以包括:请求模块1101和状态模块1102。当装置1100运行于如图6所示实施例中的HA时:
请求模块1101,用于接收第一缓存代理CA发送的第一独占读取请求;状态模块1102, 用于根据第一独占请求将目标数据的状态更新为第一CA独占状态;请求模块1101,还用于若接收到第二CA的第二读取请求,则根据目标数据的状态向第一CA发送第一侦听请求;第一侦听请求用于指示第一CA若根据第一侦听请求确定目标数据的状态为第一CA独占状态,则挂起第一侦听请求,以及,接收到第一独占读取应答后,根据第一侦听请求更新对目标数据的读写权限;状态模块1102,还用于接收第一CA根据第一侦听请求返回的第一侦听应答,并更新目标数据的状态;向第二CA发送第二读取应答。
在一种可能的实现方式中,状态模块1102具体用于:若第二读取请求为独占读取请求,则将目标数据的状态更新为第二CA独占状态;若第二读取请求为共享读取请求,则将目标数据的状态更新为第一CA和第二CA共享状态;若第二读取请求为无效读取请求,则将目标数据的状态更新为第一CA独占状态。
当装置1100运行于如图7所示实施例中的HA时:
请求模块1101,用于接收第一缓存代理CA发送的第一共享读取请求;状态模块1102,用于根据第一共享读取请求将目标数据的状态更新为第一CA共享状态,并向第一CA发送第一共享读取应答;请求模块1101,还用于接收第二CA发送的第三独占读取请求,并根据目标数据的状态向第一CA发送第三独占侦听请求;第三独占侦听请求用于指示第一CA将对目标数据的读写权限更新为无效权限;在接收到第一CA发送的第三独占侦听请求的第三独占侦听应答后,向第二CA发送第三独占读取应答,并将目标数据的状态更新为第二CA独占状态;在接收到第一CA发送的第二共享读取请求后,向第二CA发送第二共享侦听请求;状态模块1102,还用于在接收到第二CA发送的第二共享侦听请求的第二共享侦听应答后,将目标数据的状态更新为第一CA和第二CA共享状态,并向第一CA发送第二共享读取请求的第二共享读取应答。
在一种可能的实现方式中,第三独占读取应答用于指示第二CA向装置返回第三独占读取应答的确收应答;请求模块1101向第二CA发送第二共享侦听请求之前,还用于:接收到第二CA发送的第三独占读取应答的确收应答。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部 分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
本领域技术人员应明白,本申请的实施例可提供为方法、装置(设备)、可读存储介质或程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式,这里将它们都统称为“模块”或“系统”。
本申请是参照本申请的方法、装置(设备)和程序产品的流程图和/或方框图来描述的。应理解可由程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些程序指令也可存储在能引导可编程数据处理设备以特定方式工作的可读存储器中,使得存储在该可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些程序指令也可装载到其他可编程数据处理设备上,使得在其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本发明进行了描述,显而易见的,在不脱离本发明的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本发明的示例性说明,且视为已覆盖本发明范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (16)

  1. 一种数据读取方法,其特征在于,包括:
    第一缓存代理CA向本地代理HA发送第一独占读取请求,所述第一独占读取请求用于指示所述HA将目标数据的状态更新为所述第一CA独占状态;
    所述第一CA在接收到第一独占读取请求的第一独占读取应答前,若接收到所述HA发送的第一侦听请求,并根据所述第一侦听请求确定所述目标数据的状态为所述第一CA独占状态,则挂起所述第一侦听请求;
    所述第一CA接收到第一独占读取应答后,根据所述第一侦听请求更新对所述目标数据的读写权限,并向所述HA发送第一侦听应答。
  2. 如权利要求1所述的方法,其特征在于,所述第一CA根据所述第一侦听请求更新对所述目标数据的读写权限,包括:
    若所述第一侦听请求为独占侦听请求,则所述第一CA将对所述目标数据的读写权限更新为无效权限;
    若所述第一侦听请求为共享侦听请求,则所述第一CA将对所述目标数据的读写权限更新为共享权限;
    若所述第一侦听请求为无效侦听请求,则所述第一CA将对所述目标数据的读写权限更新为独占权限。
  3. 一种数据读取方法,其特征在于,包括:
    本地代理HA接收第一缓存代理CA发送的第一独占读取请求;
    所述HA根据所述第一独占请求将所述目标数据的状态更新为所述第一CA独占状态;
    所述HA若接收到第二CA的第二读取请求,则根据所述目标数据的状态向所述第一CA发送第一侦听请求;所述第一侦听请求用于指示所述第一CA若根据所述第一侦听请求确定所述目标数据的状态为所述第一CA独占状态,则挂起所述第一侦听请求,以及,接收到所述第一独占读取应答后,根据所述第一侦听请求更新对所述目标数据的读写权限;
    所述HA接收所述第一CA根据所述第一侦听请求返回的第一侦听应答,并更新所述目标数据的状态;
    所述HA向所述第二CA发送第二读取应答。
  4. 如权利要求3所述的方法,其特征在于,所述HA更新所述目标数据的状态,包括:
    若所述第二读取请求为独占读取请求,则所述HA将所述目标数据的状态更新为所述第二CA独占状态;
    若所述第二读取请求为共享读取请求,则所述HA将所述目标数据的状态更新为所述第一CA和所述第二CA共享状态;
    若所述第二读取请求为无效读取请求,则所述HA将所述目标数据的状态更新为所述第一CA独占状态。
  5. 一种数据读取方法,其特征在于,包括:
    第一缓存代理CA向本地代理HA发送第一共享读取请求,所述第一共享读取请求用于指示所述HA将目标数据的状态更新为所述第一CA共享状态;
    所述第一CA在接收到第一共享读取请求的第一共享读取应答前,若接收到所述HA发送的第三独占侦听请求,则将对所述目标数据的读写权限更新为无效权限,并向所述HA 发送第三独占侦听应答;
    所述第一CA接收到所述第一共享读取应答后,向所述HA发送第二共享读取请求,所述第二共享读取请求用于指示所述HA将所述目标数据的状态更新为所述第一CA共享状态。
  6. 一种数据读取方法,其特征在于,包括:
    本地代理HA接收第一缓存代理CA发送的第一共享读取请求;
    所述HA根据所述第一共享读取请求将所述目标数据的状态更新为所述第一CA共享状态,并向所述第一CA发送第一共享读取应答;
    所述HA接收第二CA发送的第三独占读取请求,并根据所述目标数据的状态向所述第一CA发送第三独占侦听请求;所述第三独占侦听请求用于指示所述第一CA将对所述目标数据的读写权限更新为无效权限;
    所述HA在接收到所述第一CA发送的第三独占侦听请求的第三独占侦听应答后,向所述第二CA发送第三独占读取应答,并将所述目标数据的状态更新为所述第二CA独占状态;
    所述HA在接收到所述第一CA发送的第二共享读取请求后,向所述第二CA发送第二共享侦听请求;在接收到所述第二CA发送的所述第二共享侦听请求的第二共享侦听应答后,将所述目标数据的状态更新为所述第一CA和所述第二CA共享状态,并向所述第一CA发送第二共享读取请求的第二共享读取应答。
  7. 如权利要求6所述的方法,其特征在于,所述第三独占读取应答用于指示所述第二CA向所述HA返回所述第三独占读取应答的确收应答;
    所述HA向所述第二CA发送第二共享侦听请求之前,还包括:
    所述HA接收到所述第二CA发送的所述第三独占读取应答的确收应答。
  8. 一种装置,其特征在于,包括:请求模块、挂起模块和权限模块;
    所述请求模块,用于向本地代理HA发送第一独占读取请求,所述第一独占读取请求用于指示所述HA将目标数据的状态更新为所述装置独占状态;
    所述权限模块,用于在接收到第一独占读取请求的第一独占读取应答前,若接收到所述HA发送的第一侦听请求,并根据所述第一侦听请求确定所述目标数据的状态为所述装置独占状态,则挂起所述第一侦听请求;在接收到所述第一独占读取应答后,根据所述第一侦听请求更新对所述目标数据的读写权限,并向所述HA发送第一侦听应答。
  9. 如权利要求8所述的装置,其特征在于,所述权限模块具体用于:若所述第一侦听请求为独占侦听请求,则将对所述目标数据的读写权限更新为无效权限;若所述第一侦听请求为共享侦听请求,则将对所述目标数据的读写权限更新为共享权限;若所述第一侦听请求为无效侦听请求,则将对所述目标数据的读写权限更新为独占权限。
  10. 一种装置,其特征在于,包括:请求模块和状态模块;
    所述请求模块,用于接收第一缓存代理CA发送的第一独占读取请求;
    所述状态模块,用于根据所述第一独占请求将所述目标数据的状态更新为所述第一CA独占状态;
    所述请求模块,还用于若接收到第二CA的第二读取请求,则根据所述目标数据的状态向所述第一CA发送第一侦听请求;所述第一侦听请求用于指示所述第一CA若根据所述第一侦听请求确定所述目标数据的状态为所述第一CA独占状态,则挂起所述第一侦听 请求,以及,接收到所述第一独占读取应答后,根据所述第一侦听请求更新对所述目标数据的读写权限;
    所述状态模块,还用于接收所述第一CA根据所述第一侦听请求返回的第一侦听应答,并更新所述目标数据的状态;向所述第二CA发送第二读取应答。
  11. 如权利要求10所述的装置,其特征在于,所述状态模块具体用于:若所述第二读取请求为独占读取请求,则将所述目标数据的状态更新为所述第二CA独占状态;若所述第二读取请求为共享读取请求,则将所述目标数据的状态更新为所述第一CA和所述第二CA共享状态;若所述第二读取请求为无效读取请求,则将所述目标数据的状态更新为所述第一CA独占状态。
  12. 一种装置,其特征在于,包括:请求模块和权限模块;
    所述请求模块,用于向本地代理HA发送第一共享读取请求,所述第一共享读取请求用于指示所述HA将目标数据的状态更新为所述装置共享状态;
    所述权限模块,用于在接收到第一共享读取请求的第一共享读取应答前,若接收到所述HA发送的第三独占侦听请求,则将对所述目标数据的读写权限更新为无效权限,并向所述HA发送第三独占侦听应答;在接收到所述第一共享读取应答后,向所述HA发送第二共享读取请求,所述第二共享读取请求用于指示所述HA将所述目标数据的状态更新为所述装置共享状态。
  13. 一种装置,其特征在于,包括:请求模块和状态模块;
    所述请求模块,用于接收第一缓存代理CA发送的第一共享读取请求;
    所述状态模块,用于根据所述第一共享读取请求将所述目标数据的状态更新为所述第一CA共享状态,并向所述第一CA发送第一共享读取应答;
    所述请求模块,还用于接收第二CA发送的第三独占读取请求,并根据所述目标数据的状态向所述第一CA发送第三独占侦听请求;所述第三独占侦听请求用于指示所述第一CA将对所述目标数据的读写权限更新为无效权限;在接收到所述第一CA发送的第三独占侦听请求的第三独占侦听应答后,向所述第二CA发送第三独占读取应答,并将所述目标数据的状态更新为所述第二CA独占状态;在接收到所述第一CA发送的第二共享读取请求后,向所述第二CA发送第二共享侦听请求;
    所述状态模块,还用于在接收到所述第二CA发送的所述第二共享侦听请求的第二共享侦听应答后,将所述目标数据的状态更新为所述第一CA和所述第二CA共享状态,并向所述第一CA发送第二共享读取请求的第二共享读取应答。
  14. 如权利要求13所述的装置,其特征在于,所述第三独占读取应答用于指示所述第二CA向所述装置返回所述第三独占读取应答的确收应答;
    所述请求模块向所述第二CA发送第二共享侦听请求之前,还用于:
    接收到所述第二CA发送的所述第三独占读取应答的确收应答。
  15. 一种可读存储介质,其特征在于,所述可读存储介质存储有可执行指令,所述可执行指令用于使计算机执行如权利要求1至7中任一项所述的方法。
  16. 一种多核处理器,其特征在于,所述多核处理器包括多个处理器核、多个缓存代理CA和至少一个本地代理HA;其中,所述多个处理器核分别与所述多个CA一一对应;
    所述处理器核,用于读写与所述处理器核对应的CA中所缓存的数据;
    所述CA,用于执行如权利要求1或2所述的方法;所述HA,用于执行如权利要求3 或4所述的方法;
    或者,所述CA,用于执行如权利要求5所述的方法;所述HA,用于执行如权利要求6或7所述的方法。
PCT/CN2018/124035 2018-12-26 2018-12-26 一种数据读取方法、装置及多核处理器 WO2020132987A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2018/124035 WO2020132987A1 (zh) 2018-12-26 2018-12-26 一种数据读取方法、装置及多核处理器
CN201880099938.XA CN113168400A (zh) 2018-12-26 2018-12-26 一种数据读取方法、装置及多核处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/124035 WO2020132987A1 (zh) 2018-12-26 2018-12-26 一种数据读取方法、装置及多核处理器

Publications (1)

Publication Number Publication Date
WO2020132987A1 true WO2020132987A1 (zh) 2020-07-02

Family

ID=71125892

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/124035 WO2020132987A1 (zh) 2018-12-26 2018-12-26 一种数据读取方法、装置及多核处理器

Country Status (2)

Country Link
CN (1) CN113168400A (zh)
WO (1) WO2020132987A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114116531A (zh) * 2022-01-28 2022-03-01 苏州浪潮智能科技有限公司 一种缓存一致性写回的方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7213087B1 (en) * 2000-08-31 2007-05-01 Hewlett-Packard Development Company, L.P. Mechanism to control the allocation of an N-source shared buffer
CN102866923A (zh) * 2012-09-07 2013-01-09 杭州中天微系统有限公司 对称多核的高效一致性侦听过滤装置
CN104252423A (zh) * 2013-06-26 2014-12-31 华为技术有限公司 基于多内核处理器的一致性处理方法和装置
CN104520824A (zh) * 2012-07-31 2015-04-15 华为技术有限公司 为缓存一致性处理缓存回写和缓存淘汰

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7213087B1 (en) * 2000-08-31 2007-05-01 Hewlett-Packard Development Company, L.P. Mechanism to control the allocation of an N-source shared buffer
CN104520824A (zh) * 2012-07-31 2015-04-15 华为技术有限公司 为缓存一致性处理缓存回写和缓存淘汰
CN102866923A (zh) * 2012-09-07 2013-01-09 杭州中天微系统有限公司 对称多核的高效一致性侦听过滤装置
CN104252423A (zh) * 2013-06-26 2014-12-31 华为技术有限公司 基于多内核处理器的一致性处理方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114116531A (zh) * 2022-01-28 2022-03-01 苏州浪潮智能科技有限公司 一种缓存一致性写回的方法、装置、设备及介质
CN114116531B (zh) * 2022-01-28 2022-04-22 苏州浪潮智能科技有限公司 一种缓存一致性写回的方法、装置、设备及介质

Also Published As

Publication number Publication date
CN113168400A (zh) 2021-07-23

Similar Documents

Publication Publication Date Title
US10824565B2 (en) Configuration based cache coherency protocol selection
US9892043B2 (en) Nested cache coherency protocol in a tiered multi-node computer system
US10891228B2 (en) Cache line states identifying memory cache
US7814279B2 (en) Low-cost cache coherency for accelerators
US8205045B2 (en) Satisfying memory ordering requirements between partial writes and non-snoop accesses
JP7193547B2 (ja) キャッシュ・メモリ動作の調整
KR20010101193A (ko) 판독 요청을 원격 처리 노드에 추론적으로 전송하는비정형 메모리 액세스 데이터 처리 시스템
US10162757B2 (en) Proactive cache coherence
US9836326B2 (en) Cache probe request to optimize I/O directed caching
US20160350226A1 (en) In-memory caching with on-demand migration
CN108536473B (zh) 读取数据的方法和装置
CN115061972A (zh) 处理器、数据读写方法、装置和存储介质
WO2013101092A1 (en) Data control using last accessor information
EP4026005B1 (en) Producer-to-consumer active direct cache transfers
KR20050074310A (ko) 캐시 라인 소유권 이전 방법 및 장치
US10489294B2 (en) Hot cache line fairness arbitration in distributed modular SMP system
WO2018176397A1 (zh) 一种锁分配的方法、装置和计算设备
WO2020132987A1 (zh) 一种数据读取方法、装置及多核处理器
CN110413217B (zh) 管理存储系统的方法、设备和计算机程序产品
WO2019140885A1 (zh) 一种目录处理方法、装置及存储系统
WO2017016427A1 (zh) 根据目录信息维护Cache数据一致性的方法及装置
CN110083548B (zh) 数据处理方法及相关网元、设备、系统
CN114356839B (zh) 处理写操作的方法、设备、处理器及设备可读存储介质
EP3343380A1 (en) Data read method and apparatus
US9842050B2 (en) Add-on memory coherence directory

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18945012

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18945012

Country of ref document: EP

Kind code of ref document: A1