IP Library Granted Patent US 12,411,767
Granted Patent B2
US 12,411,767 · App. 17/372,309 · Granted Sep 9, 2025

Coherent memory system

Inventors: Krishna T. Malladi (San Jose, CA); Andrew Z Chang (Los Altos, CA); Ehsan Najafabadi (Duluth, GA)
Assignee: Samsung Electronics Co., Ltd.
G06F12/0828G06F2212/621
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,411,767
App. No.
17/372,309
Granted
Sep 9, 2025
Kind
B2
Abstract

A coherent memory system. In some embodiments, the coherent memory system includes a first memory device. The first memory device may include a cache coherent controller; a volatile memory controller; a volatile memory; a nonvolatile memory controller; and a nonvolatile memory. The first memory device may be configured to receive a quality of service requirement and to selectively enable a first feature in response to the quality of service requirement.

Claims (104)

1. A system, comprising:

a first memory device, the first memory device comprising:

a cache coherent controller connected to a processing circuit over a cache coherent interface;

a volatile memory controller;

a volatile memory;

a nonvolatile memory controller; and

a nonvolatile memory,

wherein the first memory device is configured:

to receive a quality of service requirement; and

to selectively enable a first feature in response to the quality of service requirement;

wherein the cache coherent interface is configured to transport a first data packet between the processing circuit and the volatile memory via the cache coherent controller, and is further configured to transport a second data packet between the processing circuit and the nonvolatile memory via the cache coherent controller,

wherein the cache coherent controller is configured to translate at least the first data packet that is based on an interface of the volatile memory to a data packet that is based on the cache coherent interface,

wherein the first feature comprises a memory management unit cache in the first memory device; and

the first memory device is configured to:

allocate a portion of the volatile memory as the memory management unit cache, and

perform a physical address lookup, in the memory management unit cache, of a physical address, based on a virtual address.

2. The system of claim 1 , wherein performing the physical address lookup comprises:

looking up a base address, in a first page table of the memory management unit cache, based on a first portion of the virtual address;

determining a starting address of a second page table of the memory management unit cache based on the base address; and

looking up the physical address in the second page table, based on a second portion of the virtual address.

3. The system of claim 1 , further comprising a host, wherein:

the host comprises:

a memory management unit, and

a translation lookaside buffer; and

the host is configured to request, from the first memory device, the physical address lookup.

4. The system of claim 1 , wherein the first memory device is further configured:

to receive:

a first IO request, the first IO request comprising a first time tag indicating a time of issuance of the first IO request, and

a second IO request, the second IO request comprising a time tag indicating a time of issuance of the second IO request; and

to execute:

the second IO request, and

the first IO request,

wherein the time tag of the second IO request is less than the first time tag of the first IO request.

5. The system of claim 4 , wherein the first IO request further comprises a second time tag indicating a time of processing of the first IO request by a switch.

6. The system of claim 1 , wherein:

the first memory device comprises a first media type; and

the first memory device is further configured to report, through the cache coherent controller, a load value for the volatile memory.

7. The system of claim 6 , wherein:

the volatile memory is mapped to a first logical device,

the nonvolatile memory is mapped to a second logical device, and

the first memory device is further configured to report, through the cache coherent controller, a load value for the nonvolatile memory.

8. The system of claim 1 , further comprising a second memory device, wherein:

the first memory device is configured to store:

first data having a first physical address, and

second data having a second physical address; and

the second memory device is configured to store:

third data having a third physical address,

the third physical address being greater than the first physical address and less than the second physical address.

9. The system of claim 1 , wherein the first memory device is further configured to:

receive a read request;

read raw data from a first page;

decode the raw data, with an error correcting code;

determine that a number of errors corrected exceeds a threshold; and

send, through the cache coherent controller, a report requesting retirement of the first page.

10. The system of claim 1 , wherein the first memory device is further configured to:

receive a write request comprising unencrypted data;

encrypt the unencrypted data to form encrypted data; and

store the encrypted data in the nonvolatile memory.

11. The system of claim 1 , wherein the first memory device is further configured to:

receive a read request;

read encrypted data from the nonvolatile memory;

decrypt the encrypted data to form unencrypted data; and

transmit the unencrypted data through the cache coherent controller.

12. The system of claim 1 , wherein the cache coherent controller is a Compute Express Link (CXL) controller.

13. The system of claim 11 , wherein the first memory device is a Type-3 CXL device.

14. A system, comprising:

a first memory device, the first memory device comprising:

a cache coherent host interface;

a cache coherent controller connected to a processing circuit over the cache coherent host interface;

a volatile memory controller;

a volatile memory;

a nonvolatile memory controller; and

a nonvolatile memory,

the first memory device being configured to:

allocate a portion of the volatile memory as a memory management unit cache; and

perform a lookup, in the memory management unit cache, of a physical address, based on a virtual address,

wherein the cache coherent host interface is configured to transport a first data packet between the processing circuit and the volatile memory via the cache coherent controller, and is further configured to transport a second data packet between the processing circuit and the nonvolatile memory via the cache coherent controller;

wherein the cache coherent controller is configured to translate at least the first data packet that is based on an interface of the volatile memory to a data packet that is based on the cache coherent host interface.

15. A method, comprising:

receiving, by a first memory device, a quality of service requirement;

selectively enabling a first feature in response to the quality of service requirement,

wherein the first memory device comprises:

a cache coherent controller connected to a processing circuit over a cache coherent interface;

a volatile memory controller;

a volatile memory;

a nonvolatile memory controller; and

a nonvolatile memory,

wherein the cache coherent interface is configured to transport a first data packet between the processing circuit and the volatile memory via the cache coherent controller, and is further configured to transport a second data packet between the processing circuit and the nonvolatile memory via the cache coherent controller,

wherein the cache coherent controller translates at least the first data packet that is based on an interface of the volatile memory to a data packet that is based on the cache coherent interface;

allocating, by the first memory device, a portion of the volatile memory as a memory management unit cache; and

performing, by the first memory device, a lookup, in the memory management unit cache, of a physical address, based on a virtual address.

16. The method of claim 15 , wherein the performing of the lookup comprises:

looking up a base address, in a first page table of the memory management unit cache, based on a first portion of the virtual address;

determining a starting address of a second page table of the memory management unit cache based on the base address; and

looking up the physical address in the second page table, based on a second portion of the virtual address.

17. The method of claim 15 , further comprising:

receiving:

a first IO request, the first IO request comprising a first time tag indicating a time of issuance of the first IO request, and

a second IO request, the second IO request comprising a time tag indicating a time of issuance of the second IO request; and

executing:

the second IO request, and

the first IO request,

wherein the time tag of the second IO request is less than the first time tag of the first IO request.

18. The method of claim 17 , wherein the first IO request further comprises a second time tag indicating a time of processing of the first IO request by a switch.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2021
From: MALLADI, KRISHNA T.; CHANG, ANDREW Z.; NAJAFABADI, EHSAN
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 057229/0207 →
Continuity (2)
Provisional Application 63185842 · May 7, 2021
Related Publication 20220358042A1 · Nov 10, 2022
References Cited (37)
US 9235519B2 · Lih et al. · 2016 [cited by applicant]
US 9483318B2 · Vajapeyam · 2016 [cited by applicant]
US 9916241B2 · McKean et al. · 2018 [cited by applicant]
US 20040136393A1 · Riveiro Insua · 2004 [cited by examiner]
US 20060092957A1 · Yamazaki · 2006 [cited by examiner]
US 20130262736A1 · Kegel · 2013 [cited by examiner]
US 20130318308A1 · Jayasimha et al. · 2013 [cited by applicant]
US 20160267209A1 · Ikram et al. · 2016 [cited by applicant]
US 20160321012A1 · Clark · 2016 [cited by examiner]
US 20170194053A1 · Micheloni · 2017 [cited by examiner]
US 20200104275A1 · Sen et al. · 2020 [cited by applicant]
US 20200125503A1 · Graniello · 2020 [cited by examiner]
US 20200150734A1 · Ma · 2020 [cited by examiner]
US 20200278935A1 · Borikar · 2020 [cited by examiner]
US 20200322287A1 · Connor et al. · 2020 [cited by applicant]
US 20200327088A1 · Choudhary · 2020 [cited by examiner]
US 20200371953A1 · Guo et al. · 2020 [cited by applicant]
US 20210011864A1 · Guim Bernat · 2021 [cited by examiner]
US 20210014324A1 · Chilikin · 2021 [cited by examiner]
US 20210091984A1 · Kuchi · 2021 [cited by examiner]
US 20210117249A1 · Doshi et al. · 2021 [cited by applicant]
US 20210117334A1 · Guim Bernat · 2021 [cited by examiner]
US 20210117340A1 · Trikalinou et al. · 2021 [cited by applicant]
US 20210209035A1 · Galbi · 2021 [cited by examiner]
US 20210278998A1 · Li · 2021 [cited by examiner]
US 20210311643A1 · Shanbhogue · 2021 [cited by examiner]
US 20210311900A1 · Malladi · 2021 [cited by examiner]
US 20210374056A1 · Malladi · 2021 [cited by examiner]
US 20220014588A1 · Guim Bernat · 2022 [cited by examiner]
W. Cheong et al., “A flash memory controller for 15 μs ultra-low-latency SSD using high-speed 3D Nand flash with 3 μs read time,” 2018 IEEE International Solid—State Circuits Conference—(ISSCC), 2018, pp. 338-340. [cited by examiner]
A. Awad, B. Kettering and Y. Solihin, “Non-volatile memory host controller interface performance analysis in high-performance I/O systems,” 2015 IEEE International Symposium on Performance Analysis of Systems and Softwa… [cited by examiner]
A. Charlesworth, “The Sun Fireplane System Interconnect,” SC '01: Proceedings of the 2001 ACM/IEEE Conference on Supercomputing, Denver, Co, USA, 2001, pp. 2-2. [cited by examiner]
Shantharama, Prateek, et al., “Hardware-Accelerated Platforms and Infrastructures for Network Functions: A Survey of Enabling Technologies and Research Studies,” IEEE Access, IEEE, vol. 8, Jul. 2020, pp. 132021-132085. [cited by applicant]
EPO Extended European Search Report dated Oct. 10, 2022, issued in corresponding European Patent Application No. 22171332.4 (8 pages). [cited by applicant]
Gurumurthi, Sudhnva, et al., “An Overview of Reliability, Availability, and Serviceability (RAS) in Compute Express Link(TM) 2.0,” Compute Express Link, Jan. 30, 2021, XP093169375, 18 pages, Retrieved from the Internet:… [cited by applicant]
EPO European Office Action dated Oct. 28, 2024, issued in corresponding European Patent Application No. 22171332.4 (6 pages). [cited by applicant]
Korean Office Action dated Nov. 26, 2024, issued in corresponding Korean Patent Application No. 10-2022-0042144 (8 pages). [cited by applicant]