IP Library Granted Patent US 11,815,939
Granted Patent B2
US 11,815,939 · App. 17/748,595 · Granted Nov 14, 2023

Low cost and low latency logical unit erase

Inventor: Stephen Hanna (Fort Collins, CO)
G06F12/1408G06F11/1004G06F12/0246G06F12/1475G06F21/602G06F21/79G11C16/14H03M13/1102H04L9/0861H04L9/0891G06F2212/1052G06F2212/202G06F2212/402G06F2212/7201G06F2212/7205
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 11,815,939
App. No.
17/748,595
Granted
Nov 14, 2023
Kind
B2
Abstract

A memory control unit of a memory device includes at least one hardware processor; and memory storing instructions that cause the at least one hardware processor to perform operations comprising: generating a scrambler seed and a logical block address (LBA) for a block of write data received by the memory control unit from a host device; generating a flash translation layer (FTL) to map the LBA to a physical address (PA); scrambling the block of data using the scrambler seed; encrypting the scrambler seed, the LBA, and the PA in the FTL using an encryption key; initiating writing a scrambled block of data and encrypted LBA and scrambler seed to a memory array; and decrypting the FTL using an incorrect encryption key in response to an erase command received by the memory control unit from the host device.

Claims (78)

1. A memory control unit of a memory device, the memory control unit comprising:

at least one hardware processor; and

memory storing instructions that cause the at least one hardware processor to perform operations comprising:

generating a scrambler seed and a logical block address (LBA) for a block of write data received by the memory control unit from a host device;

generating a flash translation layer (FTL) to map the LBA to a physical address (PA);

scrambling the block of data using the scrambler seed;

encrypting the scrambler seed, the LBA, and the PA in the FTL using an encryption key;

initiating writing a scrambled block of data and encrypted LBA and scrambler seed to a memory array; and

decrypting the FTL using an incorrect encryption key in response to an erase command received by the memory control unit from the host device.

2. The memory control unit of claim 1 , wherein the instructions cause the at least one hardware processor to generate a memory fault in response to a memory read request, wherein the memory read request accesses memory data descrambled using an incorrect scrambler seed decrypted using the incorrect encryption key.

3. The memory control unit of claim 1 , wherein the instructions cause the at least one hardware processor to:

generate the encryption key for the block of data;

store the encryption key in association with the block of data; and

overwrite the stored encryption key with the incorrect encryption key in response to the erase command.

4. The memory control unit of claim 1 , wherein the instructions cause the at least one hardware processor to scramble the block of data using an unencrypted scrambler seed in parallel with encrypting the scrambler seed and LBA.

5. The memory control unit of claim 1 , wherein the instructions cause the at least one hardware processor to:

queue unencrypted scrambler seed and data block pairs for data scrambling using a scrambler engine of the memory device; and

queue LBA and scrambler seed pairs for encryption using an encryption engine of the memory device in parallel to the data scramble.

6. The memory control unit of claim 1 , wherein the instructions cause the at least one hardware processor to:

read the scrambled block of data and encrypted LBA and scrambler seed from the memory array;

decrypt the read encrypted LBA and scrambler seed;

descramble the scrambled block of data using the decrypted scrambler seed to generate read data;

send the read data to a host when the scrambled block of data is descrambled using a scrambler seed decrypted using the encryption key; and

communicate a fault to the host device when the scrambled block of data is descrambled using a scrambler seed decrypted using the incorrect encryption key.

7. The memory control unit of claim 6 , wherein the instructions cause the at least one hardware processor to:

generate CRC data for the received block of data to be written;

scramble the CRC data using the scrambler seed;

descramble the CRC data;

sending the read data to the host when the descrambled CRC data is correct; and

communicating the fault to the host when the descrambled CRC data is incorrect.

8. The memory control unit of claim 6 , wherein the instructions cause the at least one hardware processor to send all zeros data to the host as the read data when the read encrypted LBA is decrypted using the incorrect encryption key.

9. The memory control unit of claim 1 , wherein the instructions cause the at least one hardware processor to:

stage user data for a memory write operation; and

stage LBA and scrambler seed pairs for one or both of an encryption engine and a decryption engine of the memory control unit in parallel with the staging of the user data.

10. A method of operating a memory device, the method comprising:

receiving a block of data to be written to a portion of a memory array of the memory device;

generating a logical block address (LBA) and cyclic redundancy code (CRC) data for a block of write data received by the memory device from a separate device;

generating a map that translates LBAs of a logical unit (LUN) of the memory array to physical addresses (PAs) of the memory array;

encrypting the LBA and CRC data and the map using a first encryption key;

initiating writing encrypted LBA and CRC data to the memory array; and

decrypting the map using an incorrect encryption key in response to an erase command received by the memory device.

11. The method of claim 10 , including:

generating the first encryption key for the block of data;

storing the first encryption key in association with the block of data; and

overwriting the stored first encryption key with the incorrect encryption key in response to the erase command.

12. The method of claim 10 , including:

reading the block of data, encrypted LBA, and encrypted CRC from the memory array;

decrypting the read encrypted LBA and CRC data;

sending the read data to a host when the LBA and CRC are decrypted using the first encryption key; and

sending all zeros data to the host when the LBA and CRC are decrypted using the incorrect encryption key.

13. The method of claim 10 , including:

reading the block of data, encrypted LBA, and encrypted CRC from the memory array;

decrypting the read encrypted LBA and CRC data;

sending the read data to a host when the LBA and CRC are decrypted using the first encryption key; and

sending incorrect read data and a memory fault to the host when the LBA and CRC are decrypted using the incorrect encryption key.

14. The method of claim 10 , including:

scrambling the block of data and the CRC using a scrambler seed;

encrypting the scrambler seed using the first encryption key;

decrypting the scrambler seed using the incorrect encryption key in response to the erase command.

15. The method of claim 10 , wherein scrambling the block of data and CRC includes scrambling the block of data and the CRC using a scrambler seed including a random number and a memory page number.

16. The method of claim 10 , wherein scrambling the block of data and CRC includes:

scrambling the block of data and the CRC and encrypting the scrambler seed in parallel with the scrambling; and

storing the encrypted LBA of the LUN, encrypted CRC, and encrypted scrambler seed in association with the scrambled block of data.

17. The method of claim 10 , including building a new map to translate the LBAs of the LUN to the PAs subsequent to the erase command.

18. A memory system comprising:

means for receiving a block of data to be written to a portion of a memory array of the memory system;

means for generating a logical block address (LBA) for the block of data and a scrambler seed;

means for creating a flash translation layer (FTL) that maps the LBA to a physical address (PA);

means for scrambling the block of data using the scrambler seed;

means for encrypting the scrambler seed, the LBA, and the PA in the FTL using a first encryption key;

means for writing a scrambled block of data and encrypted LBA and scrambler seed to the memory array;

means for receiving an erase command to erase the block of data of the memory array; and

means for decrypting the PA using an incorrect encryption key in response to the erase command.

19. The memory system of claim 18 , including:

means for generating the encryption key for the block of data;

means for storing the first encryption key in association with the block of data; and

means for overwriting the stored encryption key with the incorrect encryption key in response to the erase command.

20. The memory system of claim 18 , including means for scrambling the block of data in parallel with encrypting the scrambler seed and the LBA.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2023
From: MICRON TECHNOLOGY, INC.
To: LODESTAR LICENSING GROUP, LLC
Reel/Frame 064908/0933 →