IP Library › Granted Patent US 12,189,545
Granted Patent B2
US 12,189,545 · App. 17/443,379 · Granted Jan 7, 2025

System, apparatus and methods for handling consistent memory transactions according to a CXL protocol

Inventors: Karthik Kumar (Chandler, AZ); Francesc Guim Bernat (Barcelona, ES)
Assignee: Intel Corporation
G06F13/1668G06F13/4022G06F13/4068G06F13/4221
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,189,545
App. No.
17/443,379
Granted
Jan 7, 2025
Kind
B2
Abstract

In one embodiment, an apparatus includes: an interface to couple a plurality of devices of a system and enable communication according to a Compute Express Link (CXL) protocol. The interface may receive a consistent memory request having a type indicator to indicate a type of consistency to be applied to the consistent memory request. A request scheduler coupled to the interface may receive the consistent memory request and schedule it for execution according to the type of consistency, based at least in part on a priority of the consistent memory request and one or more pending consistent memory requests. Other embodiments are described and claimed.

Claims (41)

1. An apparatus comprising:

an interface to couple a plurality of devices of a system, the system including a plurality of central processing units (CPUs) and at least one memory, the interface to enable communication according to a Compute Express Link (CXL) protocol, wherein the interface is to receive, from a first CPU of the plurality of CPUs, a consistent memory request having a type indicator to indicate a type of consistency to be applied to the consistent memory request; and

a request scheduler coupled to the interface to receive the consistent memory request and schedule the consistent memory request for execution according to the type of consistency, based at least in part on a priority of the consistent memory request and one or more pending consistent memory requests.

2. The apparatus of claim 1 , wherein the request scheduler is to schedule the consistent memory request ahead of at least one of the one or more pending consistent memory requests based at least in part on the type of consistency of the consistent memory request.

3. The apparatus of claim 1 , wherein the apparatus further comprises:

a first storage having a plurality of entries, each of the plurality of entries to store, for a consistent memory request, an identifier for the consistent memory request, the priority of the consistent memory request, the type of the consistent memory request, and address information of the consistent memory request; and

a second storage having a plurality of second entries, each of the plurality of second entries to store, for a memory request that conflicts with a consistent memory request, an identifier for the consistent memory request and address information of the conflicting memory request.

4. The apparatus of claim 3 , wherein the request scheduler is to receive, after the consistent memory request, a first memory request that conflicts with the consistent memory request and store the first memory request in the second storage.

5. The apparatus of claim 4 , wherein after the consistent memory request is completed, the request scheduler is to schedule the first memory request for execution.

6. The apparatus of claim 3 , wherein the request scheduler is to schedule for execution one or more conflicting memory transactions that conflict with the consistent memory transaction, after the conflicting memory request is completed.

7. The apparatus of claim 1 , wherein the request scheduler, when the type of consistency is a first consistency level, is to schedule the consistent memory request for execution after one or more non-consistent memory requests.

8. The apparatus claim 1 , wherein the interface is to receive the consistent memory request from a first platform, direct one or more cache coherency requests for a memory location of the consistent memory request to one or more remote platforms, and after receipt of cache coherency responses from the one or more remote platforms, the request scheduler is to schedule the consistent memory request for execution.

9. The apparatus of claim 1 , wherein the apparatus comprises a CXL hub and the interface is to receive the consistent memory request according to a CXL.memory protocol.

10. The apparatus of claim 9 , wherein the interface, after the consistent memory transaction is completed, is to send an acknowledgement to the first CPU, the acknowledgement comprising read data, wherein the read data is obtained from a remote platform coupled to the CXL hub.

11. At least one computer readable storage medium comprising instructions that when executed enable a system to:

receive, in a caching agent of a central processing unit (CPU), a memory request from an application in execution on the CPU;

translate the memory request to a consistent memory request having a type indicator to indicate a type of consistency to be applied to the memory request; and

send the consistent memory request to a Compute Express Link (CXL) hub coupled to the CPU via a CXL.memory protocol, to cause the CXL hub to schedule and direct the consistent memory request to a target memory.

12. The at least one computer readable storage medium of claim 11 , further comprising instructions that when executed enable the system, when the memory request is a write request, to invalidate one or more cache lines associated with an address of the write request.

13. The at least one computer readable storage medium of claim 12 , further comprising instructions that when executed enable the system to send one or more cache coherency messages to a remote platform, to cause the remote platform to invalidate one or more cache lines in the remote platform associated with the address of the write request.

14. The at least one computer readable storage medium of claim 13 , further comprising instructions that when executed enable the system to send the consistent memory request to the CXL hub after the one or more cache lines in the remote platform have been invalidated.

15. A system comprising:

a first central processing unit (CPU) having a first plurality of cores and a first caching agent (CA);

a second CPU coupled to the first CPU, the second CPU having a second plurality of cores and a second caching agent (CA); and

a Compute Express Link (CXL) hub coupled to the first CPU and the second CPU, the CXL hub having a request scheduler, wherein the request scheduler is to:

receive a consistent memory request from the first CPU according to a CXL.memory protocol; and

schedule the consistent memory request for execution according to a type of consistency indicated in the consistent memory request, based at least in part on a priority associated with the consistent memory request and the type of consistency.

16. The system of claim 15 , wherein the CXL hub comprises:

a first storage having a plurality of entries, each of the plurality of entries to store, for a consistent memory request, an identifier for the consistent memory request, the priority associated with the consistent memory request, the type of consistency, and address information of the consistent memory request; and

a second storage having a plurality of second entries, each of the plurality of second entries to store, for a memory request that conflicts with a consistent memory request, an identifier for the consistent memory request and address information of the conflicting memory request.

17. The system of claim 16 , wherein the request scheduler is to receive, after the consistent memory request, a first memory request that conflicts with the consistent memory request and store the first memory request in the second storage.

18. The system of claim 17 , wherein after the consistent memory request is completed, the request scheduler is to schedule the first memory request for execution.

19. The system of claim 16 , wherein when the type of consistency is a first type of consistency, the request scheduler is to:

store the consistent memory request in the first storage;

schedule one or more other memory requests for execution; and

thereafter schedule the consistent memory request for execution.

20. The system of claim 15 , wherein the first CA is to receive a memory write request from an application, and in response to the memory write request:

invalidate one or more cache lines of a cache memory of the first CPU;

send at least one invalidation message to one or more remote cache memories;

receive an acknowledgement for the at least one invalidation message; and

after receipt of the acknowledgement, send the consistent memory request to the CXL hub.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2021
From: KUMAR, KARTHIK; BERNAT, FRANCESC GUIM
To: CORPORATION, INTEL
Reel/Frame 058043/0546 →
Continuity (1)
Related Publication 20210349840A1 · Nov 11, 2021
References Cited (22)
US 8843772B2 · Hormuth · 2014 [cited by applicant]
US 9477279B1 · Piszczek et al. · 2016 [cited by applicant]
US 11416056B2 · Knoth et al. · 2022 [cited by applicant]
US 20130318371A1 · Hormuth · 2013 [cited by applicant]
US 20200133367A1 · Wang et al. · 2020 [cited by applicant]
US 20200192798A1 · Natu · 2020 [cited by applicant]
US 20200285420A1 · Guim Bernat · 2020 [cited by examiner]
US 20200409441A1 · Hatch et al. · 2020 [cited by applicant]
US 20210011864A1 · Guim Bernat · 2021 [cited by examiner]
US 20210200545A1 · Marolia et al. · 2021 [cited by applicant]
US 20210349512A1 · Guim Bernat et al. · 2021 [cited by applicant]
US 20210374056A1 · Malladi · 2021 [cited by examiner]
US 20220358042A1 · Malladi · 2022 [cited by examiner]
CN 113129205A · 2021 [cited by applicant]
WO 2016014044A1 · 2016 [cited by applicant]
European Patent Office, Office Action dated Sep. 22, 2022 in European Patent Application No. 22165696.0 (11 pages). [cited by applicant]
European Patent Office, Response to the Communication under Rules 69 and 70a(1) EPC dated Jul. 28, 2023 in European Patent Application No. 22165696.0 (60 pages). [cited by applicant]
United States Patent Office, Non-Final Office Action dated Aug. 29, 2024 in U.S. Appl. No. 17/443,374 (36 pages). [cited by applicant]
European Patent Office, Office Action dated Aug. 5, 2022 in European Patent Application No. 22159326.2 (10 pages). [cited by applicant]
U.S. Appl. No. 17/032,056, filed Sep. 25, 2020, entitled “System, Apparatus and Method for Dynamically Providing Coherent Memory Domains,” by Francesc Guim Bernat et al. [cited by applicant]
Intel Corporation, “Compute Express Link, Specification, Mar. 2019, Revision 1.0,” Mar. 2019, 206 pages. [cited by applicant]
Intel Corporation, Compute Express Link™ 2.0 White Paper, Dec. 2020, 4 pages. [cited by applicant]