IP Library › Granted Patent US 12,430,042
Granted Patent B2
US 12,430,042 · App. 18/494,641 · Granted Sep 30, 2025

Memory buffer devices with modal encryption

Inventors: Evan Lawrence Erickson (Chapel Hill, NC); Michael Alexander Hamburg ('s-Hertogenbosch, NL); Helena Handschuh (Miami, FL); Mark Evan Marson (Carlsbad, CA)
Assignee: Rambus Inc.
G06F3/0622G06F3/0608G06F3/064G06F3/0673
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,430,042
App. No.
18/494,641
Granted
Sep 30, 2025
Kind
B2
Abstract

Technologies for modal encryption are described. One memory buffer device includes a compression block and an in-line memory encryption (IME) block. The compression block can output compressed data. The IME block can encrypt uncompressed data at a first granularity and encrypt the compressed data at a second granularity, wherein the second granularity is larger than the first granularity.

Claims (41)

1. A memory buffer device comprising:

a compression block to output compressed data; and

an in-line memory encryption (IME) block coupled to the compression block, wherein the IME block is to encrypt uncompressed data at a first granularity and encrypt the compressed data at a second granularity, wherein the second granularity is larger than the first granularity.

2. The memory buffer device of claim 1 , wherein the first granularity is a single cache line, and wherein the second granularity is multiple cache lines.

3. The memory buffer device of claim 1 , wherein the IME block is to generate a message authentication code (MAC) at a granularity of compression.

4. The memory buffer device of claim 1 , wherein the IME block is to generate a message authentication code (MAC) at a granularity of encryption.

5. The memory buffer device of claim 4 , wherein the granularity of encryption and a length of the MAC are adjusted based on a device-private data structure.

6. The memory buffer device of claim 5 , wherein the device-private data structure is a page table.

7. The memory buffer device of claim 4 , wherein the IME block is to determine the granularity of encryption based on an address being accessed.

8. The memory buffer device of claim 4 , wherein the IME block is to receive an indication of the granularity of encryption from a host coupled to the memory buffer device.

9. The memory buffer device of claim 1 , wherein the IME block is to:

verify one or more message authentication codes (MACs) associated with the uncompressed data, the one or more MACs being generated at the first granularity; and

generate a MAC for the compressed data at the second granularity.

10. The memory buffer device of claim 9 , wherein:

the IME block is to decrypt the uncompressed data into decrypted data; and

the compression block is to generate the compressed data using the decrypted data.

11. The memory buffer device of claim 1 , wherein the IME block is to send or receive encrypted data, wherein the encrypted data comprises a message authentication code (MAC) with a length that varies based on a degree of compression of the encrypted data.

12. The memory buffer device of claim 11 , wherein the length of the MAC for a region of memory is stored in a device-private data structure.

13. The memory buffer device of claim 1 , wherein the IME block is to encrypt the compressed data with additional data to obscure a length of the compressed data.

14. The memory buffer device of claim 1 , further comprising:

a CXL controller coupled to the compression block and one or more hosts;

an error correction code (ECC) block to detect and correct errors in cache lines being read from a dynamic random access memory (DRAM) device; and

a memory controller coupled to the ECC block and the DRAM device.

15. A memory module that supports a remote memory protocol, the memory module comprising:

one or more volatile memory devices;

a compression circuit to output compressed data; and

an encryption circuit coupled to the compression circuit, wherein the encryption circuit is to encrypt uncompressed data at a first granularity and encrypt the compressed data at a second granularity, wherein the second granularity is larger than the first granularity.

16. The memory module of claim 15 , further comprising:

an error correction code (ECC) circuit coupled to the encryption circuit, wherein the ECC circuit is to generate and verify first ECC information to be stored with each cache line of the uncompressed data and generate and verify second ECC information to be stored with a set of cache lines of the compressed data.

17. The memory module of claim 16 , wherein the encryption circuit is to:

generate a first message authentication code (MAC) to be stored with each cache line of the uncompressed data and verify the respective first MAC when accessing the respective cache line; and

generate a second MAC to be stored with the set of cache lines of the compressed data and verify the second MAC when accessing the set of cache lines.

18. A method comprising:

receiving encrypted and uncompressed data;

decrypting the encrypted and uncompressed data to obtain decrypted data, wherein the encrypted and uncompressed data is encrypted at a first granularity;

compressing the decrypted data to obtain compressed data; and

encrypting the compressed data at a second granularity to obtain encrypted and compressed data, wherein the second granularity is larger than the first granularity.

19. The method of claim 18 , wherein the first granularity is a single cache line, and wherein the second granularity is multiple cache lines.

20. The method of claim 19 , further comprising:

generating a message authentication code (MAC) corresponding to at least one of a granularity of compression or a granularity of encryption; and

generating error correction code (ECC) information corresponding to the encrypted and compressed data, wherein the ECC information is to be stored with a set of multiple cache lines of the encrypted and compressed data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2023
From: ERICKSON, EVAN LAWRENCE; HAMBURG, MICHAEL ALEXANDER; HANDSCHUH, HELENA; MARSON, MARK EVAN
To: RAMBUS INC.
Reel/Frame 065356/0017 →
Continuity (2)
Provisional Application 63421504 · Nov 1, 2022
Related Publication 20240143197A1 · May 2, 2024
References Cited (13)
US 6735673B2 · Kever · 2004 [cited by applicant]
US 7519833B2 · Henry et al. · 2009 [cited by applicant]
US 7529905B2 · Sinclair · 2009 [cited by applicant]
US 9152554B2 · Uno · 2015 [cited by applicant]
US 9158617B2 · Cho et al. · 2015 [cited by applicant]
US 9667422B1 · Androulaki et al. · 2017 [cited by applicant]
US 10061644B2 · Quach et al. · 2018 [cited by applicant]
US 10310774B2 · Chhabra et al. · 2019 [cited by applicant]
US 10657071B2 · Durham et al. · 2020 [cited by applicant]
US 20010044805A1 · Multer · 2001 [cited by examiner]
US 20170255402A1 · Narasimha · 2017 [cited by examiner]
US 20180040367A1 · Wu · 2018 [cited by examiner]
Taassori, Meysam et al., “VAULT: Reducing Paging Overheads in SGX with Efficient Integrity Verification Structures”, ASPLOS '18, Session 7B: Memory 2, Mar. 24-28, 2018, Williamsburg, VA, USA, pp. 665-678. https://doi.or… [cited by applicant]